diff --git a/.changes/2.1534.0.json b/.changes/2.1534.0.json new file mode 100644 index 0000000000..eda2d3c29d --- /dev/null +++ b/.changes/2.1534.0.json @@ -0,0 +1,27 @@ +[ + { + "type": "feature", + "category": "EC2", + "description": "This release adds support for adding an ElasticBlockStorage volume configurations in ECS RunTask/StartTask/CreateService/UpdateService APIs. The configuration allows for attaching EBS volumes to ECS Tasks." + }, + { + "type": "feature", + "category": "ECS", + "description": "This release adds support for adding an ElasticBlockStorage volume configurations in ECS RunTask/StartTask/CreateService/UpdateService APIs. The configuration allows for attaching EBS volumes to ECS Tasks." + }, + { + "type": "feature", + "category": "EventBridge", + "description": "Adding AppSync as an EventBridge Target" + }, + { + "type": "feature", + "category": "IoTFleetWise", + "description": "The following dataTypes have been removed: CUSTOMER_DECODED_INTERFACE in NetworkInterfaceType; CUSTOMER_DECODED_SIGNAL_INFO_IS_NULL in SignalDecoderFailureReason; CUSTOMER_DECODED_SIGNAL_NETWORK_INTERFACE_INFO_IS_NULL in NetworkInterfaceFailureReason; CUSTOMER_DECODED_SIGNAL in SignalDecoderType" + }, + { + "type": "feature", + "category": "Iot", + "description": "Add ConflictException to Update APIs of AWS IoT Software Package Catalog" + } +] \ No newline at end of file diff --git a/CHANGELOG.md b/CHANGELOG.md index 317af481c8..6c4438a4dc 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,7 +1,14 @@ # Changelog for AWS SDK for JavaScript - + +## 2.1534.0 +* feature: EC2: This release adds support for adding an ElasticBlockStorage volume configurations in ECS RunTask/StartTask/CreateService/UpdateService APIs. The configuration allows for attaching EBS volumes to ECS Tasks. +* feature: ECS: This release adds support for adding an ElasticBlockStorage volume configurations in ECS RunTask/StartTask/CreateService/UpdateService APIs. The configuration allows for attaching EBS volumes to ECS Tasks. +* feature: EventBridge: Adding AppSync as an EventBridge Target +* feature: IoTFleetWise: The following dataTypes have been removed: CUSTOMER_DECODED_INTERFACE in NetworkInterfaceType; CUSTOMER_DECODED_SIGNAL_INFO_IS_NULL in SignalDecoderFailureReason; CUSTOMER_DECODED_SIGNAL_NETWORK_INTERFACE_INFO_IS_NULL in NetworkInterfaceFailureReason; CUSTOMER_DECODED_SIGNAL in SignalDecoderType +* feature: Iot: Add ConflictException to Update APIs of AWS IoT Software Package Catalog + ## 2.1533.0 * feature: CloudWatchLogs: Add support for account level subscription filter policies to PutAccountPolicy, DescribeAccountPolicies, and DeleteAccountPolicy APIs. Additionally, PutAccountPolicy has been modified with new optional "selectionCriteria" parameter for resource selection. * feature: ConnectCampaigns: Minor pattern updates for Campaign and Dial Request API fields. diff --git a/README.md b/README.md index c5b5d0ea2a..8698f4e57c 100644 --- a/README.md +++ b/README.md @@ -69,7 +69,7 @@ require('aws-sdk/lib/maintenance_mode_message').suppress = true; To use the SDK in the browser, simply add the following script tag to your HTML pages: - + You can also build a custom browser SDK with your specified set of AWS services. This can allow you to reduce the SDK's size, specify different API versions of diff --git a/apis/ec2-2016-11-15.min.json b/apis/ec2-2016-11-15.min.json index 1de6d852af..7310340810 100644 --- a/apis/ec2-2016-11-15.min.json +++ b/apis/ec2-2016-11-15.min.json @@ -26639,6 +26639,12 @@ "DeleteOnTermination": { "locationName": "deleteOnTermination", "type": "boolean" + }, + "AssociatedResource": { + "locationName": "associatedResource" + }, + "InstanceOwningService": { + "locationName": "instanceOwningService" } } }, @@ -32987,6 +32993,12 @@ }, "VolumeId": { "locationName": "volumeId" + }, + "AssociatedResource": { + "locationName": "associatedResource" + }, + "VolumeOwnerId": { + "locationName": "volumeOwnerId" } } } diff --git a/apis/ec2-2016-11-15.normal.json b/apis/ec2-2016-11-15.normal.json index b54fb7ee06..d553ef37a2 100644 --- a/apis/ec2-2016-11-15.normal.json +++ b/apis/ec2-2016-11-15.normal.json @@ -5145,7 +5145,7 @@ "output": { "shape": "VolumeAttachment" }, - "documentation": "
Detaches an EBS volume from an instance. Make sure to unmount any file systems on the device within your operating system before detaching the volume. Failure to do so can result in the volume becoming stuck in the busy
state while detaching. If this happens, detachment can be delayed indefinitely until you unmount the volume, force detachment, reboot the instance, or all three. If an EBS volume is the root device of an instance, it can't be detached while the instance is running. To detach the root volume, stop the instance first.
When a volume with an Amazon Web Services Marketplace product code is detached from an instance, the product code is no longer associated with the instance.
For more information, see Detach an Amazon EBS volume in the Amazon Elastic Compute Cloud User Guide.
" + "documentation": "Detaches an EBS volume from an instance. Make sure to unmount any file systems on the device within your operating system before detaching the volume. Failure to do so can result in the volume becoming stuck in the busy
state while detaching. If this happens, detachment can be delayed indefinitely until you unmount the volume, force detachment, reboot the instance, or all three. If an EBS volume is the root device of an instance, it can't be detached while the instance is running. To detach the root volume, stop the instance first.
When a volume with an Amazon Web Services Marketplace product code is detached from an instance, the product code is no longer associated with the instance.
You can't detach or force detach volumes that are attached to Amazon ECS or Fargate tasks. Attempting to do this results in the UnsupportedOperationException
exception with the Unable to detach volume attached to ECS tasks
error message.
For more information, see Detach an Amazon EBS volume in the Amazon Elastic Compute Cloud User Guide.
" }, "DetachVpnGateway": { "name": "DetachVpnGateway", @@ -21740,7 +21740,7 @@ }, "MaxResults": { "shape": "DescribeCapacityBlockOfferingsMaxResults", - "documentation": "The maximum number of results to return for the request in a single page. The remaining results can be seen by sending another request with the returned nextToken
value. This value can be between 5 and 500. If maxResults
is given a larger value than 500, you receive an error.
The maximum number of items to return for this request. To get the next page of items, make another request with the token returned in the output. For more information, see Pagination.
" } } }, @@ -21778,7 +21778,7 @@ }, "MaxResults": { "shape": "DescribeCapacityReservationFleetsMaxResults", - "documentation": "The maximum number of results to return for the request in a single page. The remaining results can be seen by sending another request with the returned nextToken
value. This value can be between 5 and 500. If maxResults
is given a larger value than 500, you receive an error.
The maximum number of items to return for this request. To get the next page of items, make another request with the token returned in the output. For more information, see Pagination.
" }, "Filters": { "shape": "FilterList", @@ -21825,7 +21825,7 @@ }, "MaxResults": { "shape": "DescribeCapacityReservationsMaxResults", - "documentation": "The maximum number of results to return for the request in a single page. The remaining results can be seen by sending another request with the returned nextToken
value. This value can be between 5 and 500. If maxResults
is given a larger value than 500, you receive an error.
The maximum number of items to return for this request. To get the next page of items, make another request with the token returned in the output. For more information, see Pagination.
" }, "Filters": { "shape": "FilterList", @@ -29795,6 +29795,16 @@ "shape": "String", "documentation": "The ID of the EBS volume.
", "locationName": "volumeId" + }, + "AssociatedResource": { + "shape": "String", + "documentation": "The ARN of the Amazon ECS or Fargate task to which the volume is attached.
", + "locationName": "associatedResource" + }, + "VolumeOwnerId": { + "shape": "String", + "documentation": "The ID of the Amazon Web Services account that owns the volume.
This parameter is returned only for volumes that are attached to Fargate tasks.
", + "locationName": "volumeOwnerId" } }, "documentation": "Describes a parameter used to set up an EBS volume in a block device mapping.
" @@ -30794,7 +30804,7 @@ "members": { "State": { "shape": "SnapshotBlockPublicAccessState", - "documentation": "The mode in which to enable block public access for snapshots for the Region. Specify one of the following values:
block-all-sharing
- Prevents all public sharing of snapshots in the Region. Users in the account will no longer be able to request new public sharing. Additionally, snapshots that are already publicly shared are treated as private and they are no longer publicly available.
If you enable block public access for snapshots in block-all-sharing
mode, it does not change the permissions for snapshots that are already publicly shared. Instead, it prevents these snapshots from be publicly visible and publicly accessible. Therefore, the attributes for these snapshots still indicate that they are publicly shared, even though they are not publicly available.
block-new-sharing
- Prevents only new public sharing of snapshots in the Region. Users in the account will no longer be able to request new public sharing. However, snapshots that are already publicly shared, remain publicly available.
The mode in which to enable block public access for snapshots for the Region. Specify one of the following values:
block-all-sharing
- Prevents all public sharing of snapshots in the Region. Users in the account will no longer be able to request new public sharing. Additionally, snapshots that are already publicly shared are treated as private and they are no longer publicly available.
If you enable block public access for snapshots in block-all-sharing
mode, it does not change the permissions for snapshots that are already publicly shared. Instead, it prevents these snapshots from be publicly visible and publicly accessible. Therefore, the attributes for these snapshots still indicate that they are publicly shared, even though they are not publicly available.
block-new-sharing
- Prevents only new public sharing of snapshots in the Region. Users in the account will no longer be able to request new public sharing. However, snapshots that are already publicly shared, remain publicly available.
unblocked
is not a valid value for EnableSnapshotBlockPublicAccess.
The maximum number of results to return for the request in a single page. The remaining results can be seen by sending another request with the returned nextToken
value. This value can be between 5 and 500. If maxResults
is given a larger value than 500, you receive an error.
Valid range: Minimum value of 1. Maximum value of 1000.
" + "documentation": "The maximum number of items to return for this request. To get the next page of items, make another request with the token returned in the output. For more information, see Pagination.
" }, "DryRun": { "shape": "Boolean", @@ -33393,7 +33403,7 @@ }, "MaxResults": { "shape": "GetGroupsForCapacityReservationRequestMaxResults", - "documentation": "The maximum number of results to return for the request in a single page. The remaining results can be seen by sending another request with the returned nextToken
value. This value can be between 5 and 500. If maxResults
is given a larger value than 500, you receive an error.
The maximum number of items to return for this request. To get the next page of items, make another request with the token returned in the output. For more information, see Pagination.
" }, "DryRun": { "shape": "Boolean", @@ -34336,7 +34346,7 @@ }, "TargetCapacityUnitType": { "shape": "TargetCapacityUnitType", - "documentation": "The unit for the target capacity.
Default: units
(translates to number of instances)
The unit for the target capacity.
" }, "SingleAvailabilityZone": { "shape": "Boolean", @@ -37943,7 +37953,7 @@ "members": { "HttpTokens": { "shape": "HttpTokensState", - "documentation": "IMDSv2 uses token-backed sessions. Set the use of HTTP tokens to optional
(in other words, set the use of IMDSv2 to optional
) or required
(in other words, set the use of IMDSv2 to required
).
optional
- When IMDSv2 is optional, you can choose to retrieve instance metadata with or without a session token in your request. If you retrieve the IAM role credentials without a token, the IMDSv1 role credentials are returned. If you retrieve the IAM role credentials using a valid session token, the IMDSv2 role credentials are returned.
required
- When IMDSv2 is required, you must send a session token with any instance metadata retrieval requests. In this state, retrieving the IAM role credentials always returns IMDSv2 credentials; IMDSv1 credentials are not available.
Default: optional
Indicates whether IMDSv2 is required.
optional
- IMDSv2 is optional. You can choose whether to send a session token in your instance metadata retrieval requests. If you retrieve IAM role credentials without a session token, you receive the IMDSv1 role credentials. If you retrieve IAM role credentials using a valid session token, you receive the IMDSv2 role credentials.
required
- IMDSv2 is required. You must send a session token in your instance metadata retrieval requests. With this option, retrieving the IAM role credentials always returns IMDSv2 credentials; IMDSv1 credentials are not available.
Default: If the value of ImdsSupport
for the Amazon Machine Image (AMI) for your instance is v2.0
, the default is required
.
IMDSv2 uses token-backed sessions. Indicates whether the use of HTTP tokens is optional
(in other words, indicates whether the use of IMDSv2 is optional
) or required
(in other words, indicates whether the use of IMDSv2 is required
).
optional
- When IMDSv2 is optional, you can choose to retrieve instance metadata with or without a session token in your request. If you retrieve the IAM role credentials without a token, the IMDSv1 role credentials are returned. If you retrieve the IAM role credentials using a valid session token, the IMDSv2 role credentials are returned.
required
- When IMDSv2 is required, you must send a session token with any instance metadata retrieval requests. In this state, retrieving the IAM role credentials always returns IMDSv2 credentials; IMDSv1 credentials are not available.
Default: optional
Indicates whether IMDSv2 is required.
optional
- IMDSv2 is optional. You can choose whether to send a session token in your instance metadata retrieval requests. If you retrieve IAM role credentials without a session token, you receive the IMDSv1 role credentials. If you retrieve IAM role credentials using a valid session token, you receive the IMDSv2 role credentials.
required
- IMDSv2 is required. You must send a session token in your instance metadata retrieval requests. With this option, retrieving the IAM role credentials always returns IMDSv2 credentials; IMDSv1 credentials are not available.
Modifies the DeleteOnTermination
attribute for volumes that are currently attached. The volume must be owned by the caller. If no value is specified for DeleteOnTermination
, the default is true
and the volume is deleted when the instance is terminated.
To add instance store volumes to an Amazon EBS-backed instance, you must add them when you launch the instance. For more information, see Update the block device mapping when launching an instance in the Amazon EC2 User Guide.
", + "documentation": "Modifies the DeleteOnTermination
attribute for volumes that are currently attached. The volume must be owned by the caller. If no value is specified for DeleteOnTermination
, the default is true
and the volume is deleted when the instance is terminated. You can't modify the DeleteOnTermination
attribute for volumes that are attached to Fargate tasks.
To add instance store volumes to an Amazon EBS-backed instance, you must add them when you launch the instance. For more information, see Update the block device mapping when launching an instance in the Amazon EC2 User Guide.
", "locationName": "blockDeviceMapping" }, "DisableApiTermination": { @@ -45266,7 +45276,7 @@ }, "HttpTokens": { "shape": "HttpTokensState", - "documentation": "IMDSv2 uses token-backed sessions. Set the use of HTTP tokens to optional
(in other words, set the use of IMDSv2 to optional
) or required
(in other words, set the use of IMDSv2 to required
).
optional
- When IMDSv2 is optional, you can choose to retrieve instance metadata with or without a session token in your request. If you retrieve the IAM role credentials without a token, the IMDSv1 role credentials are returned. If you retrieve the IAM role credentials using a valid session token, the IMDSv2 role credentials are returned.
required
- When IMDSv2 is required, you must send a session token with any instance metadata retrieval requests. In this state, retrieving the IAM role credentials always returns IMDSv2 credentials; IMDSv1 credentials are not available.
Default: optional
Indicates whether IMDSv2 is required.
optional
- IMDSv2 is optional. You can choose whether to send a session token in your instance metadata retrieval requests. If you retrieve IAM role credentials without a session token, you receive the IMDSv1 role credentials. If you retrieve IAM role credentials using a valid session token, you receive the IMDSv2 role credentials.
required
- IMDSv2 is required. You must send a session token in your instance metadata retrieval requests. With this option, retrieving the IAM role credentials always returns IMDSv2 credentials; IMDSv1 credentials are not available.
Default: If the value of ImdsSupport
for the Amazon Machine Image (AMI) for your instance is v2.0
, the default is required
.
Indicates whether to assign a public IPv4 address to instances launched in a VPC. The public IPv4 address can only be assigned to a network interface for eth0, and can only be assigned to a new network interface, not an existing one. You cannot specify more than one network interface in the request. If launching into a default subnet, the default value is true
.
Indicates whether to assign a public IPv4 address to instances launched in a VPC. The public IPv4 address can only be assigned to a network interface for eth0, and can only be assigned to a new network interface, not an existing one. You cannot specify more than one network interface in the request. If launching into a default subnet, the default value is true
.
Starting on February 1, 2024, Amazon Web Services will charge for all public IPv4 addresses, including public IPv4 addresses associated with running instances and Elastic IP addresses. For more information, see the Public IPv4 Address tab on the Amazon VPC pricing page.
" }, "DeleteOnTermination": { "shape": "Boolean", @@ -56856,7 +56866,7 @@ }, "TargetCapacityUnitType": { "shape": "TargetCapacityUnitType", - "documentation": "The unit for the target capacity. TargetCapacityUnitType
can only be specified when InstanceRequirements
is specified.
Default: units
(translates to number of instances)
The unit for the target capacity. You can specify this parameter only when using attribute-based instance type selection.
Default: units
(the number of instances)
The message for the state change.
Server.InsufficientInstanceCapacity
: There was insufficient capacity available to satisfy the launch request.
Server.InternalError
: An internal error caused the instance to terminate during launch.
Server.ScheduledStop
: The instance was stopped due to a scheduled retirement.
Server.SpotInstanceShutdown
: The instance was stopped because the number of Spot requests with a maximum price equal to or higher than the Spot price exceeded available capacity or because of an increase in the Spot price.
Server.SpotInstanceTermination
: The instance was terminated because the number of Spot requests with a maximum price equal to or higher than the Spot price exceeded available capacity or because of an increase in the Spot price.
Client.InstanceInitiatedShutdown
: The instance was shut down using the shutdown -h
command from the instance.
Client.InstanceTerminated
: The instance was terminated or rebooted during AMI creation.
Client.InternalError
: A client error caused the instance to terminate during launch.
Client.InvalidSnapshot.NotFound
: The specified snapshot was not found.
Client.UserInitiatedHibernate
: Hibernation was initiated on the instance.
Client.UserInitiatedShutdown
: The instance was shut down using the Amazon EC2 API.
Client.VolumeLimitExceeded
: The limit on the number of EBS volumes or total storage was exceeded. Decrease usage or request an increase in your account limits.
The message for the state change.
Server.InsufficientInstanceCapacity
: There was insufficient capacity available to satisfy the launch request.
Server.InternalError
: An internal error caused the instance to terminate during launch.
Server.ScheduledStop
: The instance was stopped due to a scheduled retirement.
Server.SpotInstanceShutdown
: The instance was stopped because the number of Spot requests with a maximum price equal to or higher than the Spot price exceeded available capacity or because of an increase in the Spot price.
Server.SpotInstanceTermination
: The instance was terminated because the number of Spot requests with a maximum price equal to or higher than the Spot price exceeded available capacity or because of an increase in the Spot price.
Client.InstanceInitiatedShutdown
: The instance was shut down from the operating system of the instance.
Client.InstanceTerminated
: The instance was terminated or rebooted during AMI creation.
Client.InternalError
: A client error caused the instance to terminate during launch.
Client.InvalidSnapshot.NotFound
: The specified snapshot was not found.
Client.UserInitiatedHibernate
: Hibernation was initiated on the instance.
Client.UserInitiatedShutdown
: The instance was shut down using the Amazon EC2 API.
Client.VolumeLimitExceeded
: The limit on the number of EBS volumes or total storage was exceeded. Decrease usage or request an increase in your account limits.
The number of units to request, filled using DefaultTargetCapacityType
.
The number of units to request, filled the default target capacity type.
", "locationName": "totalTargetCapacity" }, "OnDemandTargetCapacity": { @@ -58245,12 +58255,12 @@ }, "DefaultTargetCapacityType": { "shape": "DefaultTargetCapacityType", - "documentation": "The default TotalTargetCapacity
, which is either Spot
or On-Demand
.
The default target capacity type.
", "locationName": "defaultTargetCapacityType" }, "TargetCapacityUnitType": { "shape": "TargetCapacityUnitType", - "documentation": "The unit for the target capacity. TargetCapacityUnitType
can only be specified when InstanceRequirements
is specified.
Default: units
(translates to number of instances)
The unit for the target capacity.
", "locationName": "targetCapacityUnitType" } }, @@ -58264,7 +58274,7 @@ "members": { "TotalTargetCapacity": { "shape": "Integer", - "documentation": "The number of units to request, filled using DefaultTargetCapacityType
.
The number of units to request, filled using the default target capacity type.
" }, "OnDemandTargetCapacity": { "shape": "Integer", @@ -58276,14 +58286,14 @@ }, "DefaultTargetCapacityType": { "shape": "DefaultTargetCapacityType", - "documentation": "The default TotalTargetCapacity
, which is either Spot
or On-Demand
.
The default target capacity type.
" }, "TargetCapacityUnitType": { "shape": "TargetCapacityUnitType", - "documentation": "The unit for the target capacity. TargetCapacityUnitType
can only be specified when InstanceRequirements
is specified.
Default: units
(translates to number of instances)
The unit for the target capacity. You can specify this parameter only when using attributed-based instance type selection.
Default: units
(the number of instances)
The number of units to request. You can choose to set the target capacity as the number of instances. Or you can set the target capacity to a performance characteristic that is important to your application workload, such as vCPUs, memory, or I/O. If the request type is maintain
, you can specify a target capacity of 0 and add capacity later.
You can use the On-Demand Instance MaxTotalPrice
parameter, the Spot Instance MaxTotalPrice
parameter, or both parameters to ensure that your fleet cost does not exceed your budget. If you set a maximum price per hour for the On-Demand Instances and Spot Instances in your request, EC2 Fleet will launch instances until it reaches the maximum amount that you're willing to pay. When the maximum amount you're willing to pay is reached, the fleet stops launching instances even if it hasn’t met the target capacity. The MaxTotalPrice
parameters are located in OnDemandOptionsRequest and SpotOptionsRequest.
The number of units to request. You can choose to set the target capacity as the number of instances. Or you can set the target capacity to a performance characteristic that is important to your application workload, such as vCPUs, memory, or I/O. If the request type is maintain
, you can specify a target capacity of 0 and add capacity later.
You can use the On-Demand Instance MaxTotalPrice
parameter, the Spot Instance MaxTotalPrice
parameter, or both parameters to ensure that your fleet cost does not exceed your budget. If you set a maximum price per hour for the On-Demand Instances and Spot Instances in your request, EC2 Fleet will launch instances until it reaches the maximum amount that you're willing to pay. When the maximum amount you're willing to pay is reached, the fleet stops launching instances even if it hasn't met the target capacity. The MaxTotalPrice
parameters are located in OnDemandOptionsRequest and SpotOptionsRequest.
The device name.
", + "documentation": "The device name.
If the volume is attached to a Fargate task, this parameter returns null
.
The ID of the instance.
", + "documentation": "The ID of the instance.
If the volume is attached to a Fargate task, this parameter returns null
.
Indicates whether the EBS volume is deleted on instance termination.
", "locationName": "deleteOnTermination" + }, + "AssociatedResource": { + "shape": "String", + "documentation": "The ARN of the Amazon ECS or Fargate task to which the volume is attached.
", + "locationName": "associatedResource" + }, + "InstanceOwningService": { + "shape": "String", + "documentation": "The service principal of Amazon Web Services service that owns the underlying instance to which the volume is attached.
This parameter is returned only for volumes that are attached to Fargate tasks.
", + "locationName": "instanceOwningService" } }, "documentation": "Describes volume attachment details.
" diff --git a/apis/ecs-2014-11-13.min.json b/apis/ecs-2014-11-13.min.json index 7d3235decc..2d278414dc 100644 --- a/apis/ecs-2014-11-13.min.json +++ b/apis/ecs-2014-11-13.min.json @@ -130,6 +130,9 @@ }, "serviceConnectConfiguration": { "shape": "S1u" + }, + "volumeConfigurations": { + "shape": "S25" } } }, @@ -137,7 +140,7 @@ "type": "structure", "members": { "service": { - "shape": "S26" + "shape": "S2j" } } } @@ -170,7 +173,7 @@ }, "platformVersion": {}, "scale": { - "shape": "S2a" + "shape": "S2n" }, "clientToken": {}, "tags": { @@ -182,7 +185,7 @@ "type": "structure", "members": { "taskSet": { - "shape": "S28" + "shape": "S2l" } } } @@ -202,7 +205,7 @@ "type": "structure", "members": { "setting": { - "shape": "S2q" + "shape": "S33" } } } @@ -216,7 +219,7 @@ "members": { "cluster": {}, "attributes": { - "shape": "S2t" + "shape": "S36" } } }, @@ -224,7 +227,7 @@ "type": "structure", "members": { "attributes": { - "shape": "S2t" + "shape": "S36" } } } @@ -285,7 +288,7 @@ "type": "structure", "members": { "service": { - "shape": "S26" + "shape": "S2j" } } } @@ -308,11 +311,11 @@ "taskDefinitions": { "type": "list", "member": { - "shape": "S37" + "shape": "S3j" } }, "failures": { - "shape": "S58" + "shape": "S5k" } } } @@ -338,7 +341,7 @@ "type": "structure", "members": { "taskSet": { - "shape": "S28" + "shape": "S2l" } } } @@ -361,7 +364,7 @@ "type": "structure", "members": { "containerInstance": { - "shape": "S5e" + "shape": "S5q" } } } @@ -380,7 +383,7 @@ "type": "structure", "members": { "taskDefinition": { - "shape": "S37" + "shape": "S3j" } } } @@ -412,7 +415,7 @@ } }, "failures": { - "shape": "S58" + "shape": "S5k" }, "nextToken": {} } @@ -441,7 +444,7 @@ } }, "failures": { - "shape": "S58" + "shape": "S5k" } } } @@ -467,10 +470,10 @@ "type": "structure", "members": { "containerInstances": { - "shape": "S65" + "shape": "S6h" }, "failures": { - "shape": "S58" + "shape": "S5k" } } } @@ -498,11 +501,11 @@ "services": { "type": "list", "member": { - "shape": "S26" + "shape": "S2j" } }, "failures": { - "shape": "S58" + "shape": "S5k" } } } @@ -525,7 +528,7 @@ "type": "structure", "members": { "taskDefinition": { - "shape": "S37" + "shape": "S3j" }, "tags": { "shape": "Sb" @@ -556,10 +559,10 @@ "type": "structure", "members": { "taskSets": { - "shape": "S27" + "shape": "S2k" }, "failures": { - "shape": "S58" + "shape": "S5k" } } } @@ -585,10 +588,10 @@ "type": "structure", "members": { "tasks": { - "shape": "S6n" + "shape": "S6z" }, "failures": { - "shape": "S58" + "shape": "S5k" } } } @@ -669,10 +672,10 @@ "type": "structure", "members": { "protectedTasks": { - "shape": "S7f" + "shape": "S7r" }, "failures": { - "shape": "S58" + "shape": "S5k" } } } @@ -699,7 +702,7 @@ "settings": { "type": "list", "member": { - "shape": "S2q" + "shape": "S33" } }, "nextToken": {} @@ -727,7 +730,7 @@ "type": "structure", "members": { "attributes": { - "shape": "S2t" + "shape": "S36" }, "nextToken": {} } @@ -931,7 +934,7 @@ "type": "structure", "members": { "setting": { - "shape": "S2q" + "shape": "S33" } } } @@ -952,7 +955,7 @@ "type": "structure", "members": { "setting": { - "shape": "S2q" + "shape": "S33" } } } @@ -966,7 +969,7 @@ "members": { "cluster": {}, "attributes": { - "shape": "S2t" + "shape": "S36" } } }, @@ -974,7 +977,7 @@ "type": "structure", "members": { "attributes": { - "shape": "S2t" + "shape": "S36" } } } @@ -1014,14 +1017,14 @@ "instanceIdentityDocument": {}, "instanceIdentityDocumentSignature": {}, "totalResources": { - "shape": "S5h" + "shape": "S5t" }, "versionInfo": { - "shape": "S5g" + "shape": "S5s" }, "containerInstanceArn": {}, "attributes": { - "shape": "S2t" + "shape": "S36" }, "platformDevices": { "type": "list", @@ -1046,7 +1049,7 @@ "type": "structure", "members": { "containerInstance": { - "shape": "S5e" + "shape": "S5q" } } } @@ -1064,16 +1067,16 @@ "executionRoleArn": {}, "networkMode": {}, "containerDefinitions": { - "shape": "S38" + "shape": "S3k" }, "volumes": { - "shape": "S4e" + "shape": "S4q" }, "placementConstraints": { - "shape": "S4s" + "shape": "S54" }, "requiresCompatibilities": { - "shape": "S4v" + "shape": "S57" }, "cpu": {}, "memory": {}, @@ -1083,16 +1086,16 @@ "pidMode": {}, "ipcMode": {}, "proxyConfiguration": { - "shape": "S54" + "shape": "S5g" }, "inferenceAccelerators": { - "shape": "S50" + "shape": "S5c" }, "ephemeralStorage": { - "shape": "S57" + "shape": "S5j" }, "runtimePlatform": { - "shape": "S4x" + "shape": "S59" } } }, @@ -1100,7 +1103,7 @@ "type": "structure", "members": { "taskDefinition": { - "shape": "S37" + "shape": "S3j" }, "tags": { "shape": "Sb" @@ -1134,7 +1137,7 @@ "shape": "S1n" }, "overrides": { - "shape": "S71" + "shape": "S7d" }, "placementConstraints": { "shape": "S1h" @@ -1152,6 +1155,9 @@ "taskDefinition": {}, "clientToken": { "idempotencyToken": true + }, + "volumeConfigurations": { + "shape": "S8y" } } }, @@ -1159,10 +1165,10 @@ "type": "structure", "members": { "tasks": { - "shape": "S6n" + "shape": "S6z" }, "failures": { - "shape": "S58" + "shape": "S5k" } } } @@ -1190,7 +1196,7 @@ "shape": "S1n" }, "overrides": { - "shape": "S71" + "shape": "S7d" }, "propagateTags": {}, "referenceId": {}, @@ -1198,17 +1204,20 @@ "tags": { "shape": "Sb" }, - "taskDefinition": {} + "taskDefinition": {}, + "volumeConfigurations": { + "shape": "S8y" + } } }, "output": { "type": "structure", "members": { "tasks": { - "shape": "S6n" + "shape": "S6z" }, "failures": { - "shape": "S58" + "shape": "S5k" } } } @@ -1229,7 +1238,7 @@ "type": "structure", "members": { "task": { - "shape": "S6o" + "shape": "S70" } } } @@ -1243,7 +1252,7 @@ "members": { "cluster": {}, "attachments": { - "shape": "S8s" + "shape": "S98" } } }, @@ -1268,7 +1277,7 @@ }, "reason": {}, "networkBindings": { - "shape": "S6s" + "shape": "S74" } } }, @@ -1299,7 +1308,7 @@ "type": "integer" }, "networkBindings": { - "shape": "S6s" + "shape": "S74" }, "reason": {}, "status": {} @@ -1307,7 +1316,7 @@ } }, "attachments": { - "shape": "S8s" + "shape": "S98" }, "managedAgents": { "type": "list", @@ -1479,7 +1488,7 @@ "type": "structure", "members": { "containerInstance": { - "shape": "S5e" + "shape": "S5q" } } } @@ -1503,10 +1512,10 @@ "type": "structure", "members": { "containerInstances": { - "shape": "S65" + "shape": "S6h" }, "failures": { - "shape": "S58" + "shape": "S5k" } } } @@ -1561,6 +1570,9 @@ }, "serviceConnectConfiguration": { "shape": "S1u" + }, + "volumeConfigurations": { + "shape": "S25" } } }, @@ -1568,7 +1580,7 @@ "type": "structure", "members": { "service": { - "shape": "S26" + "shape": "S2j" } } } @@ -1591,7 +1603,7 @@ "type": "structure", "members": { "taskSet": { - "shape": "S28" + "shape": "S2l" } } } @@ -1621,10 +1633,10 @@ "type": "structure", "members": { "protectedTasks": { - "shape": "S7f" + "shape": "S7r" }, "failures": { - "shape": "S58" + "shape": "S5k" } } } @@ -1643,7 +1655,7 @@ "service": {}, "taskSet": {}, "scale": { - "shape": "S2a" + "shape": "S2n" } } }, @@ -1651,7 +1663,7 @@ "type": "structure", "members": { "taskSet": { - "shape": "S28" + "shape": "S2l" } } } @@ -2059,7 +2071,63 @@ } } }, - "S26": { + "S25": { + "type": "list", + "member": { + "type": "structure", + "required": [ + "name" + ], + "members": { + "name": {}, + "managedEBSVolume": { + "type": "structure", + "required": [ + "roleArn" + ], + "members": { + "encrypted": { + "type": "boolean" + }, + "kmsKeyId": {}, + "volumeType": {}, + "sizeInGiB": { + "type": "integer" + }, + "snapshotId": {}, + "iops": { + "type": "integer" + }, + "throughput": { + "type": "integer" + }, + "tagSpecifications": { + "shape": "S2d" + }, + "roleArn": {}, + "filesystemType": {} + } + } + } + } + }, + "S2d": { + "type": "list", + "member": { + "type": "structure", + "required": [ + "resourceType" + ], + "members": { + "resourceType": {}, + "tags": { + "shape": "Sb" + }, + "propagateTags": {} + } + } + }, + "S2j": { "type": "structure", "members": { "serviceArn": {}, @@ -2092,7 +2160,7 @@ "shape": "S1e" }, "taskSets": { - "shape": "S27" + "shape": "S2k" }, "deployments": { "type": "list", @@ -2143,6 +2211,9 @@ "discoveryArn": {} } } + }, + "volumeConfigurations": { + "shape": "S25" } } } @@ -2193,13 +2264,13 @@ } } }, - "S27": { + "S2k": { "type": "list", "member": { - "shape": "S28" + "shape": "S2l" } }, - "S28": { + "S2l": { "type": "structure", "members": { "id": {}, @@ -2241,7 +2312,7 @@ "shape": "S1b" }, "scale": { - "shape": "S2a" + "shape": "S2n" }, "stabilityStatus": {}, "stabilityStatusAt": { @@ -2252,7 +2323,7 @@ } } }, - "S2a": { + "S2n": { "type": "structure", "members": { "value": { @@ -2261,7 +2332,7 @@ "unit": {} } }, - "S2q": { + "S33": { "type": "structure", "members": { "name": {}, @@ -2270,13 +2341,13 @@ "type": {} } }, - "S2t": { + "S36": { "type": "list", "member": { - "shape": "S2u" + "shape": "S37" } }, - "S2u": { + "S37": { "type": "structure", "required": [ "name" @@ -2288,12 +2359,12 @@ "targetId": {} } }, - "S37": { + "S3j": { "type": "structure", "members": { "taskDefinitionArn": {}, "containerDefinitions": { - "shape": "S38" + "shape": "S3k" }, "family": {}, "taskRoleArn": {}, @@ -2303,36 +2374,36 @@ "type": "integer" }, "volumes": { - "shape": "S4e" + "shape": "S4q" }, "status": {}, "requiresAttributes": { "type": "list", "member": { - "shape": "S2u" + "shape": "S37" } }, "placementConstraints": { - "shape": "S4s" + "shape": "S54" }, "compatibilities": { - "shape": "S4v" + "shape": "S57" }, "runtimePlatform": { - "shape": "S4x" + "shape": "S59" }, "requiresCompatibilities": { - "shape": "S4v" + "shape": "S57" }, "cpu": {}, "memory": {}, "inferenceAccelerators": { - "shape": "S50" + "shape": "S5c" }, "pidMode": {}, "ipcMode": {}, "proxyConfiguration": { - "shape": "S54" + "shape": "S5g" }, "registeredAt": { "type": "timestamp" @@ -2342,11 +2413,11 @@ }, "registeredBy": {}, "ephemeralStorage": { - "shape": "S57" + "shape": "S5j" } } }, - "S38": { + "S3k": { "type": "list", "member": { "type": "structure", @@ -2402,10 +2473,10 @@ "shape": "Ss" }, "environment": { - "shape": "S3f" + "shape": "S3r" }, "environmentFiles": { - "shape": "S3g" + "shape": "S3s" }, "mountPoints": { "type": "list", @@ -2622,7 +2693,7 @@ } }, "resourceRequirements": { - "shape": "S47" + "shape": "S4j" }, "firelensConfiguration": { "type": "structure", @@ -2644,13 +2715,13 @@ } } }, - "S3f": { + "S3r": { "type": "list", "member": { "shape": "S12" } }, - "S3g": { + "S3s": { "type": "list", "member": { "type": "structure", @@ -2664,7 +2735,7 @@ } } }, - "S47": { + "S4j": { "type": "list", "member": { "type": "structure", @@ -2678,7 +2749,7 @@ } } }, - "S4e": { + "S4q": { "type": "list", "member": { "type": "structure", @@ -2699,10 +2770,10 @@ }, "driver": {}, "driverOpts": { - "shape": "S4j" + "shape": "S4v" }, "labels": { - "shape": "S4j" + "shape": "S4v" } } }, @@ -2749,16 +2820,19 @@ } } } + }, + "configuredAtLaunch": { + "type": "boolean" } } } }, - "S4j": { + "S4v": { "type": "map", "key": {}, "value": {} }, - "S4s": { + "S54": { "type": "list", "member": { "type": "structure", @@ -2768,18 +2842,18 @@ } } }, - "S4v": { + "S57": { "type": "list", "member": {} }, - "S4x": { + "S59": { "type": "structure", "members": { "cpuArchitecture": {}, "operatingSystemFamily": {} } }, - "S50": { + "S5c": { "type": "list", "member": { "type": "structure", @@ -2793,7 +2867,7 @@ } } }, - "S54": { + "S5g": { "type": "structure", "required": [ "containerName" @@ -2809,7 +2883,7 @@ } } }, - "S57": { + "S5j": { "type": "structure", "required": [ "sizeInGiB" @@ -2820,7 +2894,7 @@ } } }, - "S58": { + "S5k": { "type": "list", "member": { "type": "structure", @@ -2831,7 +2905,7 @@ } } }, - "S5e": { + "S5q": { "type": "structure", "members": { "containerInstanceArn": {}, @@ -2841,13 +2915,13 @@ "type": "long" }, "versionInfo": { - "shape": "S5g" + "shape": "S5s" }, "remainingResources": { - "shape": "S5h" + "shape": "S5t" }, "registeredResources": { - "shape": "S5h" + "shape": "S5t" }, "status": {}, "statusReason": {}, @@ -2862,7 +2936,7 @@ }, "agentUpdateStatus": {}, "attributes": { - "shape": "S2t" + "shape": "S36" }, "registeredAt": { "type": "timestamp" @@ -2897,7 +2971,7 @@ } } }, - "S5g": { + "S5s": { "type": "structure", "members": { "agentVersion": {}, @@ -2905,7 +2979,7 @@ "dockerVersion": {} } }, - "S5h": { + "S5t": { "type": "list", "member": { "type": "structure", @@ -2927,26 +3001,26 @@ } } }, - "S65": { + "S6h": { "type": "list", "member": { - "shape": "S5e" + "shape": "S5q" } }, - "S6n": { + "S6z": { "type": "list", "member": { - "shape": "S6o" + "shape": "S70" } }, - "S6o": { + "S70": { "type": "structure", "members": { "attachments": { "shape": "S13" }, "attributes": { - "shape": "S2t" + "shape": "S36" }, "availabilityZone": {}, "capacityProviderName": {}, @@ -2973,7 +3047,7 @@ }, "reason": {}, "networkBindings": { - "shape": "S6s" + "shape": "S74" }, "networkInterfaces": { "type": "list", @@ -3025,13 +3099,13 @@ "group": {}, "healthStatus": {}, "inferenceAccelerators": { - "shape": "S50" + "shape": "S5c" }, "lastStatus": {}, "launchType": {}, "memory": {}, "overrides": { - "shape": "S71" + "shape": "S7d" }, "platformVersion": {}, "platformFamily": {}, @@ -3062,11 +3136,11 @@ "type": "long" }, "ephemeralStorage": { - "shape": "S57" + "shape": "S5j" } } }, - "S6s": { + "S74": { "type": "list", "member": { "type": "structure", @@ -3084,7 +3158,7 @@ } } }, - "S71": { + "S7d": { "type": "structure", "members": { "containerOverrides": { @@ -3097,10 +3171,10 @@ "shape": "Ss" }, "environment": { - "shape": "S3f" + "shape": "S3r" }, "environmentFiles": { - "shape": "S3g" + "shape": "S3s" }, "cpu": { "type": "integer" @@ -3112,7 +3186,7 @@ "type": "integer" }, "resourceRequirements": { - "shape": "S47" + "shape": "S4j" } } } @@ -3132,11 +3206,11 @@ "memory": {}, "taskRoleArn": {}, "ephemeralStorage": { - "shape": "S57" + "shape": "S5j" } } }, - "S7f": { + "S7r": { "type": "list", "member": { "type": "structure", @@ -3151,7 +3225,58 @@ } } }, - "S8s": { + "S8y": { + "type": "list", + "member": { + "type": "structure", + "required": [ + "name" + ], + "members": { + "name": {}, + "managedEBSVolume": { + "type": "structure", + "required": [ + "roleArn" + ], + "members": { + "encrypted": { + "type": "boolean" + }, + "kmsKeyId": {}, + "volumeType": {}, + "sizeInGiB": { + "type": "integer" + }, + "snapshotId": {}, + "iops": { + "type": "integer" + }, + "throughput": { + "type": "integer" + }, + "tagSpecifications": { + "shape": "S2d" + }, + "roleArn": {}, + "terminationPolicy": { + "type": "structure", + "required": [ + "deleteOnTermination" + ], + "members": { + "deleteOnTermination": { + "type": "boolean" + } + } + }, + "filesystemType": {} + } + } + } + } + }, + "S98": { "type": "list", "member": { "type": "structure", diff --git a/apis/ecs-2014-11-13.normal.json b/apis/ecs-2014-11-13.normal.json index e39af14d19..b4c606ab0a 100644 --- a/apis/ecs-2014-11-13.normal.json +++ b/apis/ecs-2014-11-13.normal.json @@ -113,7 +113,7 @@ "shape": "NamespaceNotFoundException" } ], - "documentation": "Runs and maintains your desired number of tasks from a specified task definition. If the number of tasks running in a service drops below the desiredCount
, Amazon ECS runs another copy of the task in the specified cluster. To update an existing service, see the UpdateService action.
Starting April 15, 2023, Amazon Web Services will not onboard new customers to Amazon Elastic Inference (EI), and will help current customers migrate their workloads to options that offer better price and performance. After April 15, 2023, new customers will not be able to launch instances with Amazon EI accelerators in Amazon SageMaker, Amazon ECS, or Amazon EC2. However, customers who have used Amazon EI at least once during the past 30-day period are considered current customers and will be able to continue using the service.
In addition to maintaining the desired count of tasks in your service, you can optionally run your service behind one or more load balancers. The load balancers distribute traffic across the tasks that are associated with the service. For more information, see Service load balancing in the Amazon Elastic Container Service Developer Guide.
Tasks for services that don't use a load balancer are considered healthy if they're in the RUNNING
state. Tasks for services that use a load balancer are considered healthy if they're in the RUNNING
state and are reported as healthy by the load balancer.
There are two service scheduler strategies available:
REPLICA
- The replica scheduling strategy places and maintains your desired number of tasks across your cluster. By default, the service scheduler spreads tasks across Availability Zones. You can use task placement strategies and constraints to customize task placement decisions. For more information, see Service scheduler concepts in the Amazon Elastic Container Service Developer Guide.
DAEMON
- The daemon scheduling strategy deploys exactly one task on each active container instance that meets all of the task placement constraints that you specify in your cluster. The service scheduler also evaluates the task placement constraints for running tasks. It also stops tasks that don't meet the placement constraints. When using this strategy, you don't need to specify a desired number of tasks, a task placement strategy, or use Service Auto Scaling policies. For more information, see Service scheduler concepts in the Amazon Elastic Container Service Developer Guide.
You can optionally specify a deployment configuration for your service. The deployment is initiated by changing properties. For example, the deployment might be initiated by the task definition or by your desired count of a service. This is done with an UpdateService operation. The default value for a replica service for minimumHealthyPercent
is 100%. The default value for a daemon service for minimumHealthyPercent
is 0%.
If a service uses the ECS
deployment controller, the minimum healthy percent represents a lower limit on the number of tasks in a service that must remain in the RUNNING
state during a deployment. Specifically, it represents it as a percentage of your desired number of tasks (rounded up to the nearest integer). This happens when any of your container instances are in the DRAINING
state if the service contains tasks using the EC2 launch type. Using this parameter, you can deploy without using additional cluster capacity. For example, if you set your service to have desired number of four tasks and a minimum healthy percent of 50%, the scheduler might stop two existing tasks to free up cluster capacity before starting two new tasks. If they're in the RUNNING
state, tasks for services that don't use a load balancer are considered healthy . If they're in the RUNNING
state and reported as healthy by the load balancer, tasks for services that do use a load balancer are considered healthy . The default value for minimum healthy percent is 100%.
If a service uses the ECS
deployment controller, the maximum percent parameter represents an upper limit on the number of tasks in a service that are allowed in the RUNNING
or PENDING
state during a deployment. Specifically, it represents it as a percentage of the desired number of tasks (rounded down to the nearest integer). This happens when any of your container instances are in the DRAINING
state if the service contains tasks using the EC2 launch type. Using this parameter, you can define the deployment batch size. For example, if your service has a desired number of four tasks and a maximum percent value of 200%, the scheduler may start four new tasks before stopping the four older tasks (provided that the cluster resources required to do this are available). The default value for maximum percent is 200%.
If a service uses either the CODE_DEPLOY
or EXTERNAL
deployment controller types and tasks that use the EC2 launch type, the minimum healthy percent and maximum percent values are used only to define the lower and upper limit on the number of the tasks in the service that remain in the RUNNING
state. This is while the container instances are in the DRAINING
state. If the tasks in the service use the Fargate launch type, the minimum healthy percent and maximum percent values aren't used. This is the case even if they're currently visible when describing your service.
When creating a service that uses the EXTERNAL
deployment controller, you can specify only parameters that aren't controlled at the task set level. The only required parameter is the service name. You control your services using the CreateTaskSet operation. For more information, see Amazon ECS deployment types in the Amazon Elastic Container Service Developer Guide.
When the service scheduler launches new tasks, it determines task placement. For information about task placement and task placement strategies, see Amazon ECS task placement in the Amazon Elastic Container Service Developer Guide.
" + "documentation": "Runs and maintains your desired number of tasks from a specified task definition. If the number of tasks running in a service drops below the desiredCount
, Amazon ECS runs another copy of the task in the specified cluster. To update an existing service, see the UpdateService action.
Starting April 15, 2023, Amazon Web Services will not onboard new customers to Amazon Elastic Inference (EI), and will help current customers migrate their workloads to options that offer better price and performance. After April 15, 2023, new customers will not be able to launch instances with Amazon EI accelerators in Amazon SageMaker, Amazon ECS, or Amazon EC2. However, customers who have used Amazon EI at least once during the past 30-day period are considered current customers and will be able to continue using the service.
In addition to maintaining the desired count of tasks in your service, you can optionally run your service behind one or more load balancers. The load balancers distribute traffic across the tasks that are associated with the service. For more information, see Service load balancing in the Amazon Elastic Container Service Developer Guide.
You can attach Amazon EBS volumes to Amazon ECS tasks by configuring the volume when creating or updating a service. volumeConfigurations
is only supported for REPLICA service and not DAEMON service. For more infomation, see Amazon EBS volumes in the Amazon Elastic Container Service Developer Guide.
Tasks for services that don't use a load balancer are considered healthy if they're in the RUNNING
state. Tasks for services that use a load balancer are considered healthy if they're in the RUNNING
state and are reported as healthy by the load balancer.
There are two service scheduler strategies available:
REPLICA
- The replica scheduling strategy places and maintains your desired number of tasks across your cluster. By default, the service scheduler spreads tasks across Availability Zones. You can use task placement strategies and constraints to customize task placement decisions. For more information, see Service scheduler concepts in the Amazon Elastic Container Service Developer Guide.
DAEMON
- The daemon scheduling strategy deploys exactly one task on each active container instance that meets all of the task placement constraints that you specify in your cluster. The service scheduler also evaluates the task placement constraints for running tasks. It also stops tasks that don't meet the placement constraints. When using this strategy, you don't need to specify a desired number of tasks, a task placement strategy, or use Service Auto Scaling policies. For more information, see Service scheduler concepts in the Amazon Elastic Container Service Developer Guide.
You can optionally specify a deployment configuration for your service. The deployment is initiated by changing properties. For example, the deployment might be initiated by the task definition or by your desired count of a service. This is done with an UpdateService operation. The default value for a replica service for minimumHealthyPercent
is 100%. The default value for a daemon service for minimumHealthyPercent
is 0%.
If a service uses the ECS
deployment controller, the minimum healthy percent represents a lower limit on the number of tasks in a service that must remain in the RUNNING
state during a deployment. Specifically, it represents it as a percentage of your desired number of tasks (rounded up to the nearest integer). This happens when any of your container instances are in the DRAINING
state if the service contains tasks using the EC2 launch type. Using this parameter, you can deploy without using additional cluster capacity. For example, if you set your service to have desired number of four tasks and a minimum healthy percent of 50%, the scheduler might stop two existing tasks to free up cluster capacity before starting two new tasks. If they're in the RUNNING
state, tasks for services that don't use a load balancer are considered healthy . If they're in the RUNNING
state and reported as healthy by the load balancer, tasks for services that do use a load balancer are considered healthy . The default value for minimum healthy percent is 100%.
If a service uses the ECS
deployment controller, the maximum percent parameter represents an upper limit on the number of tasks in a service that are allowed in the RUNNING
or PENDING
state during a deployment. Specifically, it represents it as a percentage of the desired number of tasks (rounded down to the nearest integer). This happens when any of your container instances are in the DRAINING
state if the service contains tasks using the EC2 launch type. Using this parameter, you can define the deployment batch size. For example, if your service has a desired number of four tasks and a maximum percent value of 200%, the scheduler may start four new tasks before stopping the four older tasks (provided that the cluster resources required to do this are available). The default value for maximum percent is 200%.
If a service uses either the CODE_DEPLOY
or EXTERNAL
deployment controller types and tasks that use the EC2 launch type, the minimum healthy percent and maximum percent values are used only to define the lower and upper limit on the number of the tasks in the service that remain in the RUNNING
state. This is while the container instances are in the DRAINING
state. If the tasks in the service use the Fargate launch type, the minimum healthy percent and maximum percent values aren't used. This is the case even if they're currently visible when describing your service.
When creating a service that uses the EXTERNAL
deployment controller, you can specify only parameters that aren't controlled at the task set level. The only required parameter is the service name. You control your services using the CreateTaskSet operation. For more information, see Amazon ECS deployment types in the Amazon Elastic Container Service Developer Guide.
When the service scheduler launches new tasks, it determines task placement. For information about task placement and task placement strategies, see Amazon ECS task placement in the Amazon Elastic Container Service Developer Guide.
" }, "CreateTaskSet": { "name": "CreateTaskSet", @@ -1197,7 +1197,7 @@ "shape": "ConflictException" } ], - "documentation": "Starts a new task using the specified task definition.
You can allow Amazon ECS to place tasks for you, or you can customize how Amazon ECS places tasks using placement constraints and placement strategies. For more information, see Scheduling Tasks in the Amazon Elastic Container Service Developer Guide.
Alternatively, you can use StartTask to use your own scheduler or place tasks manually on specific container instances.
Starting April 15, 2023, Amazon Web Services will not onboard new customers to Amazon Elastic Inference (EI), and will help current customers migrate their workloads to options that offer better price and performance. After April 15, 2023, new customers will not be able to launch instances with Amazon EI accelerators in Amazon SageMaker, Amazon ECS, or Amazon EC2. However, customers who have used Amazon EI at least once during the past 30-day period are considered current customers and will be able to continue using the service.
The Amazon ECS API follows an eventual consistency model. This is because of the distributed nature of the system supporting the API. This means that the result of an API command you run that affects your Amazon ECS resources might not be immediately visible to all subsequent commands you run. Keep this in mind when you carry out an API command that immediately follows a previous API command.
To manage eventual consistency, you can do the following:
Confirm the state of the resource before you run a command to modify it. Run the DescribeTasks command using an exponential backoff algorithm to ensure that you allow enough time for the previous command to propagate through the system. To do this, run the DescribeTasks command repeatedly, starting with a couple of seconds of wait time and increasing gradually up to five minutes of wait time.
Add wait time between subsequent commands, even if the DescribeTasks command returns an accurate response. Apply an exponential backoff algorithm starting with a couple of seconds of wait time, and increase gradually up to about five minutes of wait time.
Starts a new task using the specified task definition.
You can allow Amazon ECS to place tasks for you, or you can customize how Amazon ECS places tasks using placement constraints and placement strategies. For more information, see Scheduling Tasks in the Amazon Elastic Container Service Developer Guide.
Alternatively, you can use StartTask to use your own scheduler or place tasks manually on specific container instances.
Starting April 15, 2023, Amazon Web Services will not onboard new customers to Amazon Elastic Inference (EI), and will help current customers migrate their workloads to options that offer better price and performance. After April 15, 2023, new customers will not be able to launch instances with Amazon EI accelerators in Amazon SageMaker, Amazon ECS, or Amazon EC2. However, customers who have used Amazon EI at least once during the past 30-day period are considered current customers and will be able to continue using the service.
You can attach Amazon EBS volumes to Amazon ECS tasks by configuring the volume when creating or updating a service. For more infomation, see Amazon EBS volumes in the Amazon Elastic Container Service Developer Guide.
The Amazon ECS API follows an eventual consistency model. This is because of the distributed nature of the system supporting the API. This means that the result of an API command you run that affects your Amazon ECS resources might not be immediately visible to all subsequent commands you run. Keep this in mind when you carry out an API command that immediately follows a previous API command.
To manage eventual consistency, you can do the following:
Confirm the state of the resource before you run a command to modify it. Run the DescribeTasks command using an exponential backoff algorithm to ensure that you allow enough time for the previous command to propagate through the system. To do this, run the DescribeTasks command repeatedly, starting with a couple of seconds of wait time and increasing gradually up to five minutes of wait time.
Add wait time between subsequent commands, even if the DescribeTasks command returns an accurate response. Apply an exponential backoff algorithm starting with a couple of seconds of wait time, and increase gradually up to about five minutes of wait time.
Starts a new task from the specified task definition on the specified container instance or instances.
Starting April 15, 2023, Amazon Web Services will not onboard new customers to Amazon Elastic Inference (EI), and will help current customers migrate their workloads to options that offer better price and performance. After April 15, 2023, new customers will not be able to launch instances with Amazon EI accelerators in Amazon SageMaker, Amazon ECS, or Amazon EC2. However, customers who have used Amazon EI at least once during the past 30-day period are considered current customers and will be able to continue using the service.
Alternatively, you can use RunTask to place tasks for you. For more information, see Scheduling Tasks in the Amazon Elastic Container Service Developer Guide.
" + "documentation": "Starts a new task from the specified task definition on the specified container instance or instances.
Starting April 15, 2023, Amazon Web Services will not onboard new customers to Amazon Elastic Inference (EI), and will help current customers migrate their workloads to options that offer better price and performance. After April 15, 2023, new customers will not be able to launch instances with Amazon EI accelerators in Amazon SageMaker, Amazon ECS, or Amazon EC2. However, customers who have used Amazon EI at least once during the past 30-day period are considered current customers and will be able to continue using the service.
Alternatively, you can use RunTask to place tasks for you. For more information, see Scheduling Tasks in the Amazon Elastic Container Service Developer Guide.
You can attach Amazon EBS volumes to Amazon ECS tasks by configuring the volume when creating or updating a service. For more infomation, see Amazon EBS volumes in the Amazon Elastic Container Service Developer Guide.
" }, "StopTask": { "name": "StopTask", @@ -1589,9 +1592,12 @@ }, { "shape": "NamespaceNotFoundException" + }, + { + "shape": "UnsupportedFeatureException" } ], - "documentation": "Modifies the parameters of a service.
For services using the rolling update (ECS
) you can update the desired count, deployment configuration, network configuration, load balancers, service registries, enable ECS managed tags option, propagate tags option, task placement constraints and strategies, and task definition. When you update any of these parameters, Amazon ECS starts new tasks with the new configuration.
For services using the blue/green (CODE_DEPLOY
) deployment controller, only the desired count, deployment configuration, health check grace period, task placement constraints and strategies, enable ECS managed tags option, and propagate tags can be updated using this API. If the network configuration, platform version, task definition, or load balancer need to be updated, create a new CodeDeploy deployment. For more information, see CreateDeployment in the CodeDeploy API Reference.
For services using an external deployment controller, you can update only the desired count, task placement constraints and strategies, health check grace period, enable ECS managed tags option, and propagate tags option, using this API. If the launch type, load balancer, network configuration, platform version, or task definition need to be updated, create a new task set For more information, see CreateTaskSet.
You can add to or subtract from the number of instantiations of a task definition in a service by specifying the cluster that the service is running in and a new desiredCount
parameter.
If you have updated the Docker image of your application, you can create a new task definition with that image and deploy it to your service. The service scheduler uses the minimum healthy percent and maximum percent parameters (in the service's deployment configuration) to determine the deployment strategy.
If your updated Docker image uses the same tag as what is in the existing task definition for your service (for example, my_image:latest
), you don't need to create a new revision of your task definition. You can update the service using the forceNewDeployment
option. The new tasks launched by the deployment pull the current image/tag combination from your repository when they start.
You can also update the deployment configuration of a service. When a deployment is triggered by updating the task definition of a service, the service scheduler uses the deployment configuration parameters, minimumHealthyPercent
and maximumPercent
, to determine the deployment strategy.
If minimumHealthyPercent
is below 100%, the scheduler can ignore desiredCount
temporarily during a deployment. For example, if desiredCount
is four tasks, a minimum of 50% allows the scheduler to stop two existing tasks before starting two new tasks. Tasks for services that don't use a load balancer are considered healthy if they're in the RUNNING
state. Tasks for services that use a load balancer are considered healthy if they're in the RUNNING
state and are reported as healthy by the load balancer.
The maximumPercent
parameter represents an upper limit on the number of running tasks during a deployment. You can use it to define the deployment batch size. For example, if desiredCount
is four tasks, a maximum of 200% starts four new tasks before stopping the four older tasks (provided that the cluster resources required to do this are available).
When UpdateService stops a task during a deployment, the equivalent of docker stop
is issued to the containers running in the task. This results in a SIGTERM
and a 30-second timeout. After this, SIGKILL
is sent and the containers are forcibly stopped. If the container handles the SIGTERM
gracefully and exits within 30 seconds from receiving it, no SIGKILL
is sent.
When the service scheduler launches new tasks, it determines task placement in your cluster with the following logic.
Determine which of the container instances in your cluster can support your service's task definition. For example, they have the required CPU, memory, ports, and container instance attributes.
By default, the service scheduler attempts to balance tasks across Availability Zones in this manner even though you can choose a different placement strategy.
Sort the valid container instances by the fewest number of running tasks for this service in the same Availability Zone as the instance. For example, if zone A has one running service task and zones B and C each have zero, valid container instances in either zone B or C are considered optimal for placement.
Place the new service task on a valid container instance in an optimal Availability Zone (based on the previous steps), favoring container instances with the fewest number of running tasks for this service.
When the service scheduler stops running tasks, it attempts to maintain balance across the Availability Zones in your cluster using the following logic:
Sort the container instances by the largest number of running tasks for this service in the same Availability Zone as the instance. For example, if zone A has one running service task and zones B and C each have two, container instances in either zone B or C are considered optimal for termination.
Stop the task on a container instance in an optimal Availability Zone (based on the previous steps), favoring container instances with the largest number of running tasks for this service.
You must have a service-linked role when you update any of the following service properties:
loadBalancers
,
serviceRegistries
For more information about the role see the CreateService
request parameter role
.
Modifies the parameters of a service.
For services using the rolling update (ECS
) you can update the desired count, deployment configuration, network configuration, load balancers, service registries, enable ECS managed tags option, propagate tags option, task placement constraints and strategies, and task definition. When you update any of these parameters, Amazon ECS starts new tasks with the new configuration.
You can attach Amazon EBS volumes to Amazon ECS tasks by configuring the volume when starting or running a task, or when creating or updating a service. For more infomation, see Amazon EBS volumes in the Amazon Elastic Container Service Developer Guide. You can update your volume configurations and trigger a new deployment. volumeConfigurations
is only supported for REPLICA service and not DAEMON service. If you leave volumeConfigurations
null
, it doesn't trigger a new deployment. For more infomation on volumes, see Amazon EBS volumes in the Amazon Elastic Container Service Developer Guide.
For services using the blue/green (CODE_DEPLOY
) deployment controller, only the desired count, deployment configuration, health check grace period, task placement constraints and strategies, enable ECS managed tags option, and propagate tags can be updated using this API. If the network configuration, platform version, task definition, or load balancer need to be updated, create a new CodeDeploy deployment. For more information, see CreateDeployment in the CodeDeploy API Reference.
For services using an external deployment controller, you can update only the desired count, task placement constraints and strategies, health check grace period, enable ECS managed tags option, and propagate tags option, using this API. If the launch type, load balancer, network configuration, platform version, or task definition need to be updated, create a new task set For more information, see CreateTaskSet.
You can add to or subtract from the number of instantiations of a task definition in a service by specifying the cluster that the service is running in and a new desiredCount
parameter.
You can attach Amazon EBS volumes to Amazon ECS tasks by configuring the volume when starting or running a task, or when creating or updating a service. For more infomation, see Amazon EBS volumes in the Amazon Elastic Container Service Developer Guide.
If you have updated the container image of your application, you can create a new task definition with that image and deploy it to your service. The service scheduler uses the minimum healthy percent and maximum percent parameters (in the service's deployment configuration) to determine the deployment strategy.
If your updated Docker image uses the same tag as what is in the existing task definition for your service (for example, my_image:latest
), you don't need to create a new revision of your task definition. You can update the service using the forceNewDeployment
option. The new tasks launched by the deployment pull the current image/tag combination from your repository when they start.
You can also update the deployment configuration of a service. When a deployment is triggered by updating the task definition of a service, the service scheduler uses the deployment configuration parameters, minimumHealthyPercent
and maximumPercent
, to determine the deployment strategy.
If minimumHealthyPercent
is below 100%, the scheduler can ignore desiredCount
temporarily during a deployment. For example, if desiredCount
is four tasks, a minimum of 50% allows the scheduler to stop two existing tasks before starting two new tasks. Tasks for services that don't use a load balancer are considered healthy if they're in the RUNNING
state. Tasks for services that use a load balancer are considered healthy if they're in the RUNNING
state and are reported as healthy by the load balancer.
The maximumPercent
parameter represents an upper limit on the number of running tasks during a deployment. You can use it to define the deployment batch size. For example, if desiredCount
is four tasks, a maximum of 200% starts four new tasks before stopping the four older tasks (provided that the cluster resources required to do this are available).
When UpdateService stops a task during a deployment, the equivalent of docker stop
is issued to the containers running in the task. This results in a SIGTERM
and a 30-second timeout. After this, SIGKILL
is sent and the containers are forcibly stopped. If the container handles the SIGTERM
gracefully and exits within 30 seconds from receiving it, no SIGKILL
is sent.
When the service scheduler launches new tasks, it determines task placement in your cluster with the following logic.
Determine which of the container instances in your cluster can support your service's task definition. For example, they have the required CPU, memory, ports, and container instance attributes.
By default, the service scheduler attempts to balance tasks across Availability Zones in this manner even though you can choose a different placement strategy.
Sort the valid container instances by the fewest number of running tasks for this service in the same Availability Zone as the instance. For example, if zone A has one running service task and zones B and C each have zero, valid container instances in either zone B or C are considered optimal for placement.
Place the new service task on a valid container instance in an optimal Availability Zone (based on the previous steps), favoring container instances with the fewest number of running tasks for this service.
When the service scheduler stops running tasks, it attempts to maintain balance across the Availability Zones in your cluster using the following logic:
Sort the container instances by the largest number of running tasks for this service in the same Availability Zone as the instance. For example, if zone A has one running service task and zones B and C each have two, container instances in either zone B or C are considered optimal for termination.
Stop the task on a container instance in an optimal Availability Zone (based on the previous steps), favoring container instances with the largest number of running tasks for this service.
You must have a service-linked role when you update any of the following service properties:
loadBalancers
,
serviceRegistries
For more information about the role see the CreateService
request parameter role
.
The type of the attachment, such as ElasticNetworkInterface
.
The type of the attachment, such as ElasticNetworkInterface
, Service Connect
, and AmazonElasticBlockStorage
.
Details of the attachment. For elastic network interfaces, this includes the network interface ID, the MAC address, the subnet ID, and the private IPv4 address.
" + "documentation": "Details of the attachment.
For elastic network interfaces, this includes the network interface ID, the MAC address, the subnet ID, and the private IPv4 address.
For Service Connect services, this includes portName
, clientAliases
, discoveryName
, and ingressPortOverride
.
For elastic block storage, this includes roleArn
, encrypted
, filesystemType
, iops
, kmsKeyId
, sizeInGiB
, snapshotId
, tagSpecifications
, throughput
, and volumeType
.
An object representing a container instance or task attachment.
" @@ -1853,7 +1859,7 @@ }, "managedDraining": { "shape": "ManagedDraining", - "documentation": "The managed draining option for the Auto Scaling group capacity provider. When you enable this, Amazon ECS manages and gracefully drains the EC2 container instances that are in the Auto Scaling group capacity provider.
The default is ENABLED
.
The managed draining option for the Auto Scaling group capacity provider. When you enable this, Amazon ECS manages and gracefully drains the EC2 container instances that are in the Auto Scaling group capacity provider.
" } }, "documentation": "The details of the Auto Scaling group for the capacity provider.
" @@ -1871,7 +1877,7 @@ }, "managedDraining": { "shape": "ManagedDraining", - "documentation": "The managed draining option for the Auto Scaling group capacity provider. When you enable this, Amazon ECS manages and gracefully drains the EC2 container instances that are in the Auto Scaling group capacity provider.
The default is ENABLED
.
The managed draining option for the Auto Scaling group capacity provider. When you enable this, Amazon ECS manages and gracefully drains the EC2 container instances that are in the Auto Scaling group capacity provider.
" } }, "documentation": "The details of the Auto Scaling group capacity provider to update.
" @@ -2853,6 +2859,10 @@ "serviceConnectConfiguration": { "shape": "ServiceConnectConfiguration", "documentation": "The configuration for this service to discover and connect to services, and be discovered by, and connected from, other services within a namespace.
Tasks that run in a namespace can use short names to connect to services in the namespace. Tasks can connect to services across all of the clusters in the namespace. Tasks connect through a managed proxy container that collects logs and metrics for increased visibility. Only the tasks that Amazon ECS services create are supported with Service Connect. For more information, see Service Connect in the Amazon Elastic Container Service Developer Guide.
" + }, + "volumeConfigurations": { + "shape": "ServiceVolumeConfigurations", + "documentation": "The configuration for a volume specified in the task definition as a volume that is configured at launch time. Currently, the only supported volume type is an Amazon EBS volume.
" } } }, @@ -3191,6 +3201,10 @@ "serviceConnectResources": { "shape": "ServiceConnectServiceResourceList", "documentation": "The list of Service Connect resources that are associated with this deployment. Each list entry maps a discovery name to a Cloud Map service name.
" + }, + "volumeConfigurations": { + "shape": "ServiceVolumeConfigurations", + "documentation": "The details of the volume that was configuredAtLaunch
. You can configure different settings like the size, throughput, volumeType, and ecryption in ServiceManagedEBSVolumeConfiguration. The name
of the volume must match the name
from the task definition.
The details of an Amazon ECS service deployment. This is used only when a service uses the ECS
deployment controller type.
The type of volume resource.
" + }, + "tags": { + "shape": "Tags", + "documentation": "The tags applied to this Amazon EBS volume. AmazonECSCreated
and AmazonECSManaged
are reserved tags that can't be used.
Determines whether to propagate the tags from the task definition to
the Amazon EBS volume. Tags can only propagate to a SERVICE
specified in
ServiceVolumeConfiguration
. If no value is specified, the tags aren't
propagated.
The tag specifications of an Amazon EBS volume.
" + }, + "EBSTagSpecifications": { + "type": "list", + "member": { + "shape": "EBSTagSpecification" + } + }, + "EBSVolumeType": { + "type": "string" + }, + "ECSVolumeName": { + "type": "string" + }, "EFSAuthorizationConfig": { "type": "structure", "members": { @@ -4111,6 +4170,9 @@ }, "documentation": "Details on a container instance bind mount host volume.
" }, + "IAMRoleArn": { + "type": "string" + }, "InferenceAccelerator": { "type": "structure", "required": [ @@ -5582,6 +5644,10 @@ "shape": "String", "documentation": "An identifier that you provide to ensure the idempotency of the request. It must be unique and is case sensitive. Up to 64 characters are allowed. The valid characters are characters in the range of 33-126, inclusive. For more information, see Ensuring idempotency.
", "idempotencyToken": true + }, + "volumeConfigurations": { + "shape": "TaskVolumeConfigurations", + "documentation": "The details of the volume that was configuredAtLaunch
. You can configure the size, volumeType, IOPS, throughput, snapshot and encryption in in TaskManagedEBSVolumeConfiguration. The name
of the volume must match the name
from the task definition.
Indicates whether the volume should be encrypted. If no value is specified, encryption is turned on by default. This parameter maps 1:1 with the Encrypted
parameter of the CreateVolume API in the Amazon EC2 API Reference.
The Amazon Resource Name (ARN) identifier of the Amazon Web Services Key Management Service key to use for Amazon EBS encryption. When encryption is turned on and no Amazon Web Services Key Management Service key is specified, the default Amazon Web Services managed key for Amazon EBS volumes is used. This parameter maps 1:1 with the KmsKeyId
parameter of the CreateVolume API in the Amazon EC2 API Reference.
Amazon Web Services authenticates the Amazon Web Services Key Management Service key asynchronously. Therefore, if you specify an ID, alias, or ARN that is invalid, the action can appear to complete, but eventually fails.
The volume type. This parameter maps 1:1 with the VolumeType
parameter of the CreateVolume API in the Amazon EC2 API Reference. For more information, see Amazon EBS volume types in the Amazon EC2 User Guide.
The following are the supported volume types.
General Purpose SSD: gp2
|gp3
Provisioned IOPS SSD: io1
|io2
Throughput Optimized HDD: st1
Cold HDD: sc1
Magnetic: standard
The magnetic volume type is not supported on Fargate.
The size of the volume in GiB. You must specify either a volume size or a snapshot ID. If you specify a snapshot ID, the snapshot size is used for the volume size by default. You can optionally specify a volume size greater than or equal to the snapshot size. This parameter maps 1:1 with the Size
parameter of the CreateVolume API in the Amazon EC2 API Reference.
The following are the supported volume size values for each volume type.
gp2
and gp3
: 1-16,384
io1
and io2
: 4-16,384
st1
and sc1
: 125-16,384
standard
: 1-1,024
The snapshot that Amazon ECS uses to create the volume. You must specify either a snapshot ID or a volume size. This parameter maps 1:1 with the SnapshotId
parameter of the CreateVolume API in the Amazon EC2 API Reference.
The number of I/O operations per second (IOPS). For gp3
, io1
, and io2
volumes, this represents the number of IOPS that are provisioned for the volume. For gp2
volumes, this represents the baseline performance of the volume and the rate at which the volume accumulates I/O credits for bursting.
The following are the supported values for each volume type.
gp3
: 3,000 - 16,000 IOPS
io1
: 100 - 64,000 IOPS
io2
: 100 - 256,000 IOPS
This parameter is required for io1
and io2
volume types. The default for gp3
volumes is 3,000 IOPS
. This parameter is not supported for st1
, sc1
, or standard
volume types.
This parameter maps 1:1 with the Iops
parameter of the CreateVolume API in the Amazon EC2 API Reference.
The throughput to provision for a volume, in MiB/s, with a maximum of 1,000 MiB/s. This parameter maps 1:1 with the Throughput
parameter of the CreateVolume API in the Amazon EC2 API Reference.
This parameter is only supported for the gp3
volume type.
The tags to apply to the volume. Amazon ECS applies service-managed tags by default. This parameter maps 1:1 with the TagSpecifications.N
parameter of the CreateVolume API in the Amazon EC2 API Reference.
The ARN of the IAM role to associate with this volume. This is the Amazon ECS infrastructure IAM role that is used to manage your Amazon Web Services infrastructure. We recommend using the Amazon ECS-managed AmazonECSInfrastructureRolePolicyForVolumes
IAM policy with this role. For more information, see Amazon ECS infrastructure IAM role in the Amazon ECS Developer Guide.
The Linux filesystem type for the volume. For volumes created from a snapshot, you must specify the same filesystem type that the volume was using when the snapshot was created. If there is a filesystem type mismatch, the task will fail to start.
The available filesystem types are
ext3
, ext4
, and xfs
. If no value is specified, the xfs
filesystem type is used by default.
The configuration for the Amazon EBS volume that Amazon ECS creates and manages on your behalf. These settings are used to create each Amazon EBS volume, with one volume created for each task in the service.
Many of these parameters map 1:1 with the Amazon EBS CreateVolume
API request parameters.
The details for the service registry.
Each service may be associated with one service registry. Multiple service registries for each service are not supported.
When you add, update, or remove the service registries configuration, Amazon ECS starts a new deployment. New tasks are registered and deregistered to the updated service registry configuration.
" }, + "ServiceVolumeConfiguration": { + "type": "structure", + "required": [ + "name" + ], + "members": { + "name": { + "shape": "ECSVolumeName", + "documentation": "The name of the volume. This value must match the volume name from the Volume
object in the task definition.
The configuration for the Amazon EBS volume that Amazon ECS creates and manages on your behalf. These settings are used to create each Amazon EBS volume, with one volume created for each task in the service. The Amazon EBS volumes are visible in your account in the Amazon EC2 console once they are created.
" + } + }, + "documentation": "The configuration for a volume specified in the task definition as a volume that is configured at launch time. Currently, the only supported volume type is an Amazon EBS volume.
" + }, + "ServiceVolumeConfigurations": { + "type": "list", + "member": { + "shape": "ServiceVolumeConfiguration" + } + }, "Services": { "type": "list", "member": { @@ -6107,6 +6245,10 @@ "taskDefinition": { "shape": "String", "documentation": "The family
and revision
(family:revision
) or full ARN of the task definition to start. If a revision
isn't specified, the latest ACTIVE
revision is used.
The details of the volume that was configuredAtLaunch
. You can configure the size, volumeType, IOPS, throughput, snapshot and encryption in TaskManagedEBSVolumeConfiguration. The name
of the volume must match the name
from the task definition.
Indicates whether the volume should be encrypted. If no value is specified, encryption is turned on by default. This parameter maps 1:1 with the Encrypted
parameter of the CreateVolume API in the Amazon EC2 API Reference.
The Amazon Resource Name (ARN) identifier of the Amazon Web Services Key Management Service key to use for Amazon EBS encryption. When encryption is turned on and no Amazon Web Services Key Management Service key is specified, the default Amazon Web Services managed key for Amazon EBS volumes is used. This parameter maps 1:1 with the KmsKeyId
parameter of the CreateVolume API in the Amazon EC2 API Reference.
Amazon Web Services authenticates the Amazon Web Services Key Management Service key asynchronously. Therefore, if you specify an ID, alias, or ARN that is invalid, the action can appear to complete, but eventually fails.
The volume type. This parameter maps 1:1 with the VolumeType
parameter of the CreateVolume API in the Amazon EC2 API Reference. For more information, see Amazon EBS volume types in the Amazon EC2 User Guide.
The following are the supported volume types.
General Purpose SSD: gp2
|gp3
Provisioned IOPS SSD: io1
|io2
Throughput Optimized HDD: st1
Cold HDD: sc1
Magnetic: standard
The magnetic volume type is not supported on Fargate.
The size of the volume in GiB. You must specify either a volume size or a snapshot ID. If you specify a snapshot ID, the snapshot size is used for the volume size by default. You can optionally specify a volume size greater than or equal to the snapshot size. This parameter maps 1:1 with the Size
parameter of the CreateVolume API in the Amazon EC2 API Reference.
The following are the supported volume size values for each volume type.
gp2
and gp3
: 1-16,384
io1
and io2
: 4-16,384
st1
and sc1
: 125-16,384
standard
: 1-1,024
The snapshot that Amazon ECS uses to create the volume. You must specify either a snapshot ID or a volume size. This parameter maps 1:1 with the SnapshotId
parameter of the CreateVolume API in the Amazon EC2 API Reference.
The number of I/O operations per second (IOPS). For gp3
, io1
, and io2
volumes, this represents the number of IOPS that are provisioned for the volume. For gp2
volumes, this represents the baseline performance of the volume and the rate at which the volume accumulates I/O credits for bursting.
The following are the supported values for each volume type.
gp3
: 3,000 - 16,000 IOPS
io1
: 100 - 64,000 IOPS
io2
: 100 - 256,000 IOPS
This parameter is required for io1
and io2
volume types. The default for gp3
volumes is 3,000 IOPS
. This parameter is not supported for st1
, sc1
, or standard
volume types.
This parameter maps 1:1 with the Iops
parameter of the CreateVolume API in the Amazon EC2 API Reference.
The throughput to provision for a volume, in MiB/s, with a maximum of 1,000 MiB/s. This parameter maps 1:1 with the Throughput
parameter of the CreateVolume API in the Amazon EC2 API Reference.
This parameter is only supported for the gp3
volume type.
The tags to apply to the volume. Amazon ECS applies service-managed tags by default. This parameter maps 1:1 with the TagSpecifications.N
parameter of the CreateVolume API in the Amazon EC2 API Reference.
The ARN of the IAM role to associate with this volume. This is the Amazon ECS infrastructure IAM role that is used to manage your Amazon Web Services infrastructure. We recommend using the Amazon ECS-managed AmazonECSInfrastructureRolePolicyForVolumes
IAM policy with this role. For more information, see Amazon ECS infrastructure IAM role in the Amazon ECS Developer Guide.
The termination policy for the volume when the task exits. This provides a way to control whether Amazon ECS terminates the Amazon EBS volume when the task stops.
" + }, + "filesystemType": { + "shape": "TaskFilesystemType", + "documentation": "The Linux filesystem type for the volume. For volumes created from a snapshot, you must specify the same filesystem type that the volume was using when the snapshot was created. If there is a filesystem type mismatch, the task will fail to start.
The available filesystem types are
ext3
, ext4
, and xfs
. If no value is specified, the xfs
filesystem type is used by default.
The configuration for the Amazon EBS volume that Amazon ECS creates and manages on your behalf. These settings are used to create each Amazon EBS volume, with one volume created for each task.
" + }, + "TaskManagedEBSVolumeTerminationPolicy": { + "type": "structure", + "required": [ + "deleteOnTermination" + ], + "members": { + "deleteOnTermination": { + "shape": "BoxedBoolean", + "documentation": "Indicates whether the volume should be deleted on when the task stops. If a value of true
is specified,
Amazon ECS deletes the Amazon EBS volume on your behalf when the task goes into the STOPPED
state. If no value is specified, the
default value is true
is used. When set to false
, Amazon ECS leaves the volume in your
account.
The termination policy for the Amazon EBS volume when the task exits. For more information, see Amazon ECS volume termination policy.
" + }, "TaskOverride": { "type": "structure", "members": { @@ -6877,6 +7093,29 @@ "TerminationNotice" ] }, + "TaskVolumeConfiguration": { + "type": "structure", + "required": [ + "name" + ], + "members": { + "name": { + "shape": "ECSVolumeName", + "documentation": "The name of the volume. This value must match the volume name from the Volume
object in the task definition.
The configuration for the Amazon EBS volume that Amazon ECS creates and manages on your behalf. These settings are used to create each Amazon EBS volume, with one volume created for each task. The Amazon EBS volumes are visible in your account in the Amazon EC2 console once they are created.
" + } + }, + "documentation": "Configuration settings for the task volume that was configuredAtLaunch
that weren't set during RegisterTaskDef
.
The configuration for this service to discover and connect to services, and be discovered by, and connected from, other services within a namespace.
Tasks that run in a namespace can use short names to connect to services in the namespace. Tasks can connect to services across all of the clusters in the namespace. Tasks connect through a managed proxy container that collects logs and metrics for increased visibility. Only the tasks that Amazon ECS services create are supported with Service Connect. For more information, see Service Connect in the Amazon Elastic Container Service Developer Guide.
" + }, + "volumeConfigurations": { + "shape": "ServiceVolumeConfigurations", + "documentation": "The details of the volume that was configuredAtLaunch
. You can configure the size, volumeType, IOPS, throughput, snapshot and encryption in ServiceManagedEBSVolumeConfiguration. The name
of the volume must match the name
from the task definition. If set to null, no new deployment is triggered. Otherwise, if this configuration differs from the existing one, it triggers a new deployment.
The name of the volume. Up to 255 letters (uppercase and lowercase), numbers, underscores, and hyphens are allowed. This name is referenced in the sourceVolume
parameter of container definition mountPoints
.
This is required wwhen you use an Amazon EFS volume.
" + "documentation": "The name of the volume. Up to 255 letters (uppercase and lowercase), numbers, underscores, and hyphens are allowed.
When using a volume configured at launch, the name
is required and must also be specified as the volume name in the ServiceVolumeConfiguration
or TaskVolumeConfiguration
parameter when creating your service or standalone task.
For all other types of volumes, this name is referenced in the sourceVolume
parameter of the mountPoints
object in the container definition.
When a volume is using the efsVolumeConfiguration
, the name is required.
This parameter is specified when you use Amazon FSx for Windows File Server file system for task storage.
" + }, + "configuredAtLaunch": { + "shape": "BoxedBoolean", + "documentation": "Indicates whether the volume should be configured at launch time. This is used to create Amazon EBS volumes for standalone tasks or tasks created as part of a service. Each task definition revision may only have one volume configured at launch in the volume configuration.
To configure a volume at launch time, use this task definition revision and specify a volumeConfigurations
object when calling the CreateService
, UpdateService
, RunTask
or StartTask
APIs.
A data volume that's used in a task definition. For tasks that use the Amazon Elastic File System (Amazon EFS), specify an efsVolumeConfiguration
. For Windows tasks that use Amazon FSx for Windows File Server file system, specify a fsxWindowsFileServerVolumeConfiguration
. For tasks that use a Docker volume, specify a DockerVolumeConfiguration
. For tasks that use a bind mount host volume, specify a host
and optional sourcePath
. For more information, see Using Data Volumes in Tasks.
The data volume configuration for tasks launched using this task definition. Specifying a volume configuration in a task definition is optional. The volume configuration may contain multiple volumes but only one volume configured at launch is supported. Each volume defined in the volume configuration may only specify a name
and one of either configuredAtLaunch
, dockerVolumeConfiguration
, efsVolumeConfiguration
, fsxWindowsFileServerVolumeConfiguration
, or host
. If an empty volume configuration is specified, by default Amazon ECS uses a host volume. For more information, see Using data volumes in tasks.
The GraphQL operation; that is, the query, mutation, or subscription to be parsed and executed by the GraphQL service.
For more information, see Operations in the AppSync User Guide.
" + } + }, + "documentation": "Contains the GraphQL operation to be parsed and executed, if the event target is an AppSync API.
" + }, "Archive": { "type": "structure", "members": { @@ -3475,6 +3485,12 @@ }, "documentation": "The failover configuration for an endpoint. This includes what triggers failover and what happens when it's triggered.
" }, + "GraphQLOperation": { + "type": "string", + "max": 1048576, + "min": 1, + "sensitive": true + }, "HeaderKey": { "type": "string", "max": 512, @@ -4470,7 +4486,7 @@ }, "State": { "shape": "RuleState", - "documentation": "The state of the rule.
Valid values include:
DISABLED
: The rule is disabled. EventBridge does not match any events against the rule.
ENABLED
: The rule is enabled. EventBridge matches events against the rule, except for Amazon Web Services management events delivered through CloudTrail.
ENABLED_WITH_ALL_CLOUDTRAIL_MANAGEMENT_EVENTS
: The rule is enabled for all events, including Amazon Web Services management events delivered through CloudTrail.
Management events provide visibility into management operations that are performed on resources in your Amazon Web Services account. These are also known as control plane operations. For more information, see Logging management events in the CloudTrail User Guide, and Filtering management events from Amazon Web Services services in the Amazon EventBridge User Guide.
This value is only valid for rules on the default event bus or custom event buses. It does not apply to partner event buses.
Indicates whether the rule is enabled or disabled.
" }, "Description": { "shape": "RuleDescription", @@ -4894,7 +4910,7 @@ }, "State": { "shape": "RuleState", - "documentation": "The state of the rule.
Valid values include:
DISABLED
: The rule is disabled. EventBridge does not match any events against the rule.
ENABLED
: The rule is enabled. EventBridge matches events against the rule, except for Amazon Web Services management events delivered through CloudTrail.
ENABLED_WITH_ALL_CLOUDTRAIL_MANAGEMENT_EVENTS
: The rule is enabled for all events, including Amazon Web Services management events delivered through CloudTrail.
Management events provide visibility into management operations that are performed on resources in your Amazon Web Services account. These are also known as control plane operations. For more information, see Logging management events in the CloudTrail User Guide, and Filtering management events from Amazon Web Services services in the Amazon EventBridge User Guide.
This value is only valid for rules on the default event bus or custom event buses. It does not apply to partner event buses.
The state of the rule.
" }, "Description": { "shape": "RuleDescription", @@ -5321,6 +5337,10 @@ "RetryPolicy": { "shape": "RetryPolicy", "documentation": "The RetryPolicy
object that contains the retry policy configuration to use for the dead-letter queue.
Contains the GraphQL operation to be parsed and executed, if the event target is an AppSync API.
" } }, "documentation": "Targets are the resources to be invoked when a rule is triggered. For a complete list of services and resources that can be set as a target, see PutTargets.
If you are setting the event bus of another account as the target, and that account granted permission to your account through an organization instead of directly by the account ID, then you must specify a RoleArn
with proper permissions in the Target
structure. For more information, see Sending and Receiving Events Between Amazon Web Services Accounts in the Amazon EventBridge User Guide.
The package version Amazon Resource Names (ARNs) that are installed on the device when the job successfully completes.
Note:The following Length Constraints relates to a single ARN. Up to 25 package version ARNs are allowed.
" + "documentation": "The package version Amazon Resource Names (ARNs) that are installed on the device when the job successfully completes. The package version must be in either the Published or Deprecated state when the job deploys. For more information, see Package version lifecycle.
Note:The following Length Constraints relates to a single ARN. Up to 25 package version ARNs are allowed.
" } } }, @@ -11036,7 +11045,7 @@ }, "destinationPackageVersions": { "shape": "DestinationPackageVersions", - "documentation": "The package version Amazon Resource Names (ARNs) that are installed on the device when the job successfully completes.
Note:The following Length Constraints relates to a single ARN. Up to 25 package version ARNs are allowed.
" + "documentation": "The package version Amazon Resource Names (ARNs) that are installed on the device when the job successfully completes. The package version must be in either the Published or Deprecated state when the job deploys. For more information, see Package version lifecycle.
Note:The following Length Constraints relates to a single ARN. Up to 25 package version ARNs are allowed.
" } } }, @@ -13584,7 +13593,7 @@ }, "destinationPackageVersions": { "shape": "DestinationPackageVersions", - "documentation": "The package version Amazon Resource Names (ARNs) that are installed on the device when the job successfully completes.
Note:The following Length Constraints relates to a single ARN. Up to 25 package version ARNs are allowed.
" + "documentation": "The package version Amazon Resource Names (ARNs) that are installed on the device when the job successfully completes. The package version must be in either the Published or Deprecated state when the job deploys. For more information, see Package version lifecycle.
Note:The following Length Constraints relates to a single ARN. Up to 25 package version ARNs are allowed.
" } } }, @@ -16248,7 +16257,7 @@ }, "destinationPackageVersions": { "shape": "DestinationPackageVersions", - "documentation": "The package version Amazon Resource Names (ARNs) that are installed on the device when the job successfully completes.
Note:The following Length Constraints relates to a single ARN. Up to 25 package version ARNs are allowed.
" + "documentation": "The package version Amazon Resource Names (ARNs) that are installed on the device when the job successfully completes. The package version must be in either the Published or Deprecated state when the job deploys. For more information, see Package version lifecycle.The package version must be in either the Published or Deprecated state when the job deploys. For more information, see Package version lifecycle.
Note:The following Length Constraints relates to a single ARN. Up to 25 package version ARNs are allowed.
" } }, "documentation": "The Job
object contains details about a job.
Generates a random password. We recommend that you specify the maximum length and include every character type that the system you are generating a password for can support.
Secrets Manager generates a CloudTrail log entry when you call this action. Do not include sensitive information in request parameters because it might be logged. For more information, see Logging Secrets Manager events with CloudTrail.
Required permissions: secretsmanager:GetRandomPassword
. For more information, see IAM policy actions for Secrets Manager and Authentication and access control in Secrets Manager.
Generates a random password. We recommend that you specify the maximum length and include every character type that the system you are generating a password for can support. By default, Secrets Manager uses uppercase and lowercase letters, numbers, and the following characters in passwords: !\\\"#$%&'()*+,-./:;<=>?@[\\\\]^_`{|}~
Secrets Manager generates a CloudTrail log entry when you call this action. Do not include sensitive information in request parameters because it might be logged. For more information, see Logging Secrets Manager events with CloudTrail.
Required permissions: secretsmanager:GetRandomPassword
. For more information, see IAM policy actions for Secrets Manager and Authentication and access control in Secrets Manager.
Replicates the secret to a new Regions. See Multi-Region secrets.
Secrets Manager generates a CloudTrail log entry when you call this action. Do not include sensitive information in request parameters because it might be logged. For more information, see Logging Secrets Manager events with CloudTrail.
Required permissions: secretsmanager:ReplicateSecretToRegions
. For more information, see IAM policy actions for Secrets Manager and Authentication and access control in Secrets Manager.
Replicates the secret to a new Regions. See Multi-Region secrets.
Secrets Manager generates a CloudTrail log entry when you call this action. Do not include sensitive information in request parameters because it might be logged. For more information, see Logging Secrets Manager events with CloudTrail.
Required permissions: secretsmanager:ReplicateSecretToRegions
. If the primary secret is encrypted with a KMS key other than aws/secretsmanager
, you also need kms:Decrypt
permission to the key. To encrypt the replicated secret with a KMS key other than aws/secretsmanager
, you need kms:GenerateDataKey
and kms:Encrypt
to the key. For more information, see IAM policy actions for Secrets Manager and Authentication and access control in Secrets Manager.
The last date and time that Secrets Manager rotated the secret. If the secret isn't configured for rotation, Secrets Manager returns null.
", + "documentation": "The last date and time that Secrets Manager rotated the secret. If the secret isn't configured for rotation or rotation has been disabled, Secrets Manager returns null.
", "box": true }, "LastChangedDate": { @@ -1034,7 +1034,7 @@ }, "NextRotationDate": { "shape": "NextRotationDateType", - "documentation": "The next rotation is scheduled to occur on or before this date. If the secret isn't configured for rotation, Secrets Manager returns null.
" + "documentation": "The next rotation is scheduled to occur on or before this date. If the secret isn't configured for rotation or rotation has been disabled, Secrets Manager returns null.
" }, "Tags": { "shape": "TagListType", @@ -1261,7 +1261,7 @@ }, "SecretBinary": { "shape": "SecretBinaryType", - "documentation": "The decrypted secret value, if the secret value was originally provided as binary data in the form of a byte array. The response parameter represents the binary data as a base64-encoded string.
If the secret was created by using the Secrets Manager console, or if the secret value was originally provided as a string, then this field is omitted. The secret value appears in SecretString
instead.
The decrypted secret value, if the secret value was originally provided as binary data in the form of a byte array. When you retrieve a SecretBinary
using the HTTP API, the Python SDK, or the Amazon Web Services CLI, the value is Base64-encoded. Otherwise, it is not encoded.
If the secret was created by using the Secrets Manager console, or if the secret value was originally provided as a string, then this field is omitted. The secret value appears in SecretString
instead.
The next rotation is scheduled to occur on or before this date. If the secret isn't configured for rotation, Secrets Manager returns null.
" + "documentation": "The next rotation is scheduled to occur on or before this date. If the secret isn't configured for rotation or rotation has been disabled, Secrets Manager returns null.
" }, "Tags": { "shape": "TagListType", diff --git a/apis/workspaces-2015-04-08.normal.json b/apis/workspaces-2015-04-08.normal.json index d61fb455c0..22465ac30b 100644 --- a/apis/workspaces-2015-04-08.normal.json +++ b/apis/workspaces-2015-04-08.normal.json @@ -474,7 +474,7 @@ "shape": "InvalidParameterValuesException" } ], - "documentation": "Creates one or more WorkSpaces.
This operation is asynchronous and returns before the WorkSpaces are created.
The MANUAL
running mode value is only supported by Amazon WorkSpaces Core. Contact your account team to be allow-listed to use this value. For more information, see Amazon WorkSpaces Core.
You don't need to specify the PCOIP
protocol for Linux bundles because WSP
is the default protocol for those bundles.
Ensure you review your running mode to ensure you are using a running mode that is optimal for your needs and budget. For more information on switching running modes, see Can I switch between hourly and monthly billing?
Creates one or more WorkSpaces.
This operation is asynchronous and returns before the WorkSpaces are created.
The MANUAL
running mode value is only supported by Amazon WorkSpaces Core. Contact your account team to be allow-listed to use this value. For more information, see Amazon WorkSpaces Core.
You don't need to specify the PCOIP
protocol for Linux bundles because WSP
is the default protocol for those bundles.
Reboots the specified WorkSpaces.
You cannot reboot a WorkSpace unless its state is AVAILABLE
or UNHEALTHY
.
This operation is asynchronous and returns before the WorkSpaces have rebooted.
" + "documentation": "Reboots the specified WorkSpaces.
You cannot reboot a WorkSpace unless its state is AVAILABLE
, UNHEALTHY
, or REBOOTING
. Reboot a WorkSpace in the REBOOTING
state only if your WorkSpace has been stuck in the REBOOTING
state for over 20 minutes.
This operation is asynchronous and returns before the WorkSpaces have rebooted.
" }, "RebuildWorkspaces": { "name": "RebuildWorkspaces", @@ -6294,7 +6294,7 @@ "members": { "RunningMode": { "shape": "RunningMode", - "documentation": "The running mode. For more information, see Manage the WorkSpace Running Mode.
The MANUAL
value is only supported by Amazon WorkSpaces Core. Contact your account team to be allow-listed to use this value. For more information, see Amazon WorkSpaces Core.
Ensure you review your running mode to ensure you are using a running mode that is optimal for your needs and budget. For more information on switching running modes, see Can I switch between hourly and monthly billing?
The running mode. For more information, see Manage the WorkSpace Running Mode.
The MANUAL
value is only supported by Amazon WorkSpaces Core. Contact your account team to be allow-listed to use this value. For more information, see Amazon WorkSpaces Core.
>1,l=23===i?Math.pow(2,-24)-Math.pow(2,-77):0,d=a?0:s-1,y=a?1:-1,b=t<0||0===t&&1/t<0?1:0;for(t=Math.abs(t),isNaN(t)||t===1/0?(n=isNaN(t)?1:0,o=m):(o=Math.floor(Math.log(t)/Math.LN2),t*(u=Math.pow(2,-o))<1&&(o--,u*=2),t+=o+c>=1?l/u:l*Math.pow(2,1-c),t*u>=2&&(o++,u/=2),o+c>=m?(n=0,o=m):o+c>=1?(n=(t*u-1)*Math.pow(2,i),o+=c):(n=t*Math.pow(2,c-1)*Math.pow(2,i),o=0));i>=8;e[r+d]=255&n,d+=y,n/=256,i-=8);for(o=o<0;e[r+d]=255&o,d+=y,o/=256,p-=8);e[r+d-y]|=128*b}},{}],443:[function(e,t,r){var a={}.toString;t.exports=Array.isArray||function(e){return"[object Array]"==a.call(e)}},{}],444:[function(e,t,r){!function(e){"use strict";function t(e){return null!==e&&"[object Array]"===Object.prototype.toString.call(e)}function r(e){return null!==e&&"[object Object]"===Object.prototype.toString.call(e)}function a(e,i){if(e===i)return!0;if(Object.prototype.toString.call(e)!==Object.prototype.toString.call(i))return!1;if(!0===t(e)){if(e.length!==i.length)return!1;for(var s=0;s G((f-r)/g)&&i("overflow"),r+=(p-t)*g,t=p,u=0;u =0?(c=b.substr(0,S),l=b.substr(S+1)):(c=b,l=""),d=decodeURIComponent(c),y=decodeURIComponent(l),a(o,d)?i(o[d])?o[d].push(y):o[d]=[o[d],y]:o[d]=y}return o};var i=Array.isArray||function(e){return"[object Array]"===Object.prototype.toString.call(e)}},{}],448:[function(e,t,r){"use strict";function a(e,t){if(e.map)return e.map(t);for(var r=[],a=0;a >1,l=23===i?Math.pow(2,-24)-Math.pow(2,-77):0,d=a?0:s-1,y=a?1:-1,b=t<0||0===t&&1/t<0?1:0;for(t=Math.abs(t),isNaN(t)||t===1/0?(n=isNaN(t)?1:0,o=m):(o=Math.floor(Math.log(t)/Math.LN2),t*(u=Math.pow(2,-o))<1&&(o--,u*=2),t+=o+c>=1?l/u:l*Math.pow(2,1-c),t*u>=2&&(o++,u/=2),o+c>=m?(n=0,o=m):o+c>=1?(n=(t*u-1)*Math.pow(2,i),o+=c):(n=t*Math.pow(2,c-1)*Math.pow(2,i),o=0));i>=8;e[r+d]=255&n,d+=y,n/=256,i-=8);for(o=o<0;e[r+d]=255&o,d+=y,o/=256,p-=8);e[r+d-y]|=128*b}},{}],443:[function(e,t,r){var a={}.toString;t.exports=Array.isArray||function(e){return"[object Array]"==a.call(e)}},{}],444:[function(e,t,r){!function(e){"use strict";function t(e){return null!==e&&"[object Array]"===Object.prototype.toString.call(e)}function r(e){return null!==e&&"[object Object]"===Object.prototype.toString.call(e)}function a(e,i){if(e===i)return!0;if(Object.prototype.toString.call(e)!==Object.prototype.toString.call(i))return!1;if(!0===t(e)){if(e.length!==i.length)return!1;for(var s=0;s G((f-r)/g)&&i("overflow"),r+=(p-t)*g,t=p,u=0;u =0?(c=b.substr(0,S),l=b.substr(S+1)):(c=b,l=""),d=decodeURIComponent(c),y=decodeURIComponent(l),a(o,d)?i(o[d])?o[d].push(y):o[d]=[o[d],y]:o[d]=y}return o};var i=Array.isArray||function(e){return"[object Array]"===Object.prototype.toString.call(e)}},{}],448:[function(e,t,r){"use strict";function a(e,t){if(e.map)return e.map(t);for(var r=[],a=0;a=55296&&t<=56319&&i65535&&(e-=65536,t+=w(e>>>10&1023|55296),e=56320|1023&e),t+=w(e)}).join("")}function p(e){return e-48<10?e-22:e-65<26?e-65:e-97<26?e-97:T}function m(e,t){return e+22+75*(e<26)-((0!=t)<<5)}function c(e,t,r){var a=0;for(e=r?G(e/R):e>>1,e+=G(e/t);e>L*k>>1;a+=T)e=G(e/L);return G(a+(L+1)*e/(e+A))}function l(e){var t,r,a,s,o,n,m,l,d,y,b=[],S=e.length,g=0,h=v,I=D;for(r=e.lastIndexOf(x),r<0&&(r=0),a=0;a=S&&i("invalid-input"),l=p(e.charCodeAt(s++)),(l>=T||l>G((f-g)/n))&&i("overflow"),g+=l*n,d=m<=I?C:m>=I+k?k:m-I,!(l=t&&bf&&i("overflow"),b==t){for(l=r,d=T;y=d<=o?C:d>=o+k?k:d-o,!(l=0&&delete e.httpRequest.headers["Content-Length"]}function i(e){var t=new l,r=e.service.api.operations[e.operation].input;if(r.payload){var a={},i=r.members[r.payload];a=e.params[r.payload],"structure"===i.type?(e.httpRequest.body=t.build(a||{},i),s(e)):void 0!==a&&(e.httpRequest.body=a,("binary"===i.type||i.isStreaming)&&s(e,!0))}else e.httpRequest.body=t.build(e.params,r),s(e)}function s(e,t){if(!e.httpRequest.headers["Content-Type"]){var r=t?"binary/octet-stream":"application/json";e.httpRequest.headers["Content-Type"]=r}}function o(e){m.buildRequest(e),y.indexOf(e.httpRequest.method)<0&&i(e)}function n(e){c.extractError(e)}function u(e){m.extractData(e);var t,r=e.request,a=r.service.api.operations[r.operation],i=r.service.api.operations[r.operation].output||{};a.hasEventOutput;if(i.payload){var s=i.members[i.payload],o=e.httpResponse.body;if(s.isEventStream)t=new d,e.data[payload]=p.createEventStream(2===AWS.HttpClient.streamsApiVersion?e.httpResponse.stream:o,t,s);else if("structure"===s.type||"list"===s.type){var t=new d;e.data[i.payload]=t.parse(o,s)}else"binary"===s.type||s.isStreaming?e.data[i.payload]=o:e.data[i.payload]=s.toType(o)}else{var n=e.data;c.extractData(e),e.data=p.merge(n,e.data)}}var p=e("../util"),m=e("./rest"),c=e("./json"),l=e("../json/builder"),d=e("../json/parser"),y=["GET","HEAD","DELETE"];t.exports={buildRequest:o,extractError:n,extractData:u,unsetContentLength:a}},{"../json/builder":374,"../json/parser":375,"../util":428,"./json":386,"./rest":388}],390:[function(e,t,r){function a(e){var t=e.service.api.operations[e.operation].input,r=new n.XML.Builder,a=e.params,i=t.payload;if(i){var s=t.members[i];if(void 0===(a=a[i]))return;if("structure"===s.type){var o=s.name;e.httpRequest.body=r.toXML(a,s,o,!0)}else e.httpRequest.body=a}else e.httpRequest.body=r.toXML(a,t,t.name||t.shape||u.string.upperFirst(e.operation)+"Request")}function i(e){p.buildRequest(e),["GET","HEAD"].indexOf(e.httpRequest.method)<0&&a(e)}function s(e){p.extractError(e);var t;try{t=(new n.XML.Parser).parse(e.httpResponse.body.toString())}catch(r){t={Code:e.httpResponse.statusCode,Message:e.httpResponse.statusMessage}}t.Errors&&(t=t.Errors),t.Error&&(t=t.Error),t.Code?e.error=u.error(new Error,{code:t.Code,message:t.Message}):e.error=u.error(new Error,{code:e.httpResponse.statusCode,message:null})}function o(e){p.extractData(e);var t,r=e.request,a=e.httpResponse.body,i=r.service.api.operations[r.operation],s=i.output,o=(i.hasEventOutput,s.payload);if(o){var m=s.members[o];m.isEventStream?(t=new n.XML.Parser,e.data[o]=u.createEventStream(2===n.HttpClient.streamsApiVersion?e.httpResponse.stream:e.httpResponse.body,t,m)):"structure"===m.type?(t=new n.XML.Parser,e.data[o]=t.parse(a.toString(),m)):"binary"===m.type||m.isStreaming?e.data[o]=a:e.data[o]=m.toType(a)}else if(a.length>0){t=new n.XML.Parser;var c=t.parse(a.toString(),s);u.update(e.data,c)}}var n=e("../core"),u=e("../util"),p=e("./rest");t.exports={buildRequest:i,extractError:s,extractData:o}},{"../core":350,"../util":428,"./rest":388}],391:[function(e,t,r){function a(){}function i(e){return e.isQueryName||"ec2"!==e.api.protocol?e.name:e.name[0].toUpperCase()+e.name.substr(1)}function s(e,t,r,a){p.each(r.members,function(r,s){var o=t[r];if(null!==o&&void 0!==o){var n=i(s);n=e?e+"."+n:n,u(n,o,s,a)}})}function o(e,t,r,a){var i=1;p.each(t,function(t,s){var o=r.flattened?".":".entry.",n=o+i+++".",p=n+(r.key.name||"key"),m=n+(r.value.name||"value");u(e+p,t,r.key,a),u(e+m,s,r.value,a)})}function n(e,t,r,a){var s=r.member||{};if(0===t.length)return void a.call(this,e,null);p.arrayEach(t,function(t,o){var n="."+(o+1);if("ec2"===r.api.protocol)n+="";else if(r.flattened){if(s.name){var p=e.split(".");p.pop(),p.push(i(s)),e=p.join(".")}}else n="."+(s.name?s.name:"member")+n;u(e+n,t,s,a)})}function u(e,t,r,a){null!==t&&void 0!==t&&("structure"===r.type?s(e,t,r,a):"list"===r.type?n(e,t,r,a):"map"===r.type?o(e,t,r,a):a(e,r.toWireFormat(t).toString()))}var p=e("../util");a.prototype.serialize=function(e,t,r){s("",e,t,r)},t.exports=a},{"../util":428}],392:[function(e,t,r){var a=e("../core"),i=null,s={signatureVersion:"v4",signingName:"rds-db",operations:{}},o={region:"string",hostname:"string",port:"number",username:"string"};a.RDS.Signer=a.util.inherit({constructor:function(e){this.options=e||{}},convertUrlToAuthToken:function(e){if(0===e.indexOf("https://"))return e.substring("https://".length)},getAuthToken:function(e,t){"function"==typeof e&&void 0===t&&(t=e,e={});var r=this,o="function"==typeof t;e=a.util.merge(this.options,e);var n=this.validateAuthTokenOptions(e);if(!0!==n){if(o)return t(n,null);throw n}var u={region:e.region,endpoint:new a.Endpoint(e.hostname+":"+e.port),paramValidation:!1,signatureVersion:"v4"};e.credentials&&(u.credentials=e.credentials),i=new a.Service(u),i.api=s;var p=i.makeRequest();if(this.modifyRequestForAuthToken(p,e),!o){var m=p.presign(900);return this.convertUrlToAuthToken(m)}p.presign(900,function(e,a){a&&(a=r.convertUrlToAuthToken(a)),t(e,a)})},modifyRequestForAuthToken:function(e,t){e.on("build",e.buildAsGet),e.httpRequest.body=a.util.queryParamsToString({Action:"connect",DBUser:t.username})},validateAuthTokenOptions:function(e){var t="";e=e||{};for(var r in o)Object.prototype.hasOwnProperty.call(o,r)&&typeof e[r]!==o[r]&&(t+="option '"+r+"' should have been type '"+o[r]+"', was '"+typeof e[r]+"'.\n");return!t.length||a.util.error(new Error,{code:"InvalidParameter",message:t})}})},{"../core":350}],393:[function(e,t,r){t.exports={now:function(){return"undefined"!=typeof performance&&"function"==typeof performance.now?performance.now():Date.now()}}},{}],394:[function(e,t,r){function a(e){return"string"==typeof e&&(e.startsWith("fips-")||e.endsWith("-fips"))}function i(e){return"string"==typeof e&&["aws-global","aws-us-gov-global"].includes(e)}function s(e){return["fips-aws-global","aws-fips","aws-global"].includes(e)?"us-east-1":["fips-aws-us-gov-global","aws-us-gov-global"].includes(e)?"us-gov-west-1":e.replace(/fips-(dkr-|prod-)?|-fips/,"")}t.exports={isFipsRegion:a,isGlobalRegion:i,getRealRegion:s}},{}],395:[function(e,t,r){function a(e){if(!e)return null;var t=e.split("-")
+;return t.length<3?null:t.slice(0,t.length-2).join("-")+"-*"}function i(e){var t=e.config.region,r=a(t),i=e.api.endpointPrefix;return[[t,i],[r,i],[t,"*"],[r,"*"],["*",i],[t,"internal-*"],["*","*"]].map(function(e){return e[0]&&e[1]?e.join("/"):null})}function s(e,t){u.each(t,function(t,r){"globalEndpoint"!==t&&(void 0!==e.config[t]&&null!==e.config[t]||(e.config[t]=r))})}function o(e){for(var t=i(e),r=e.config.useFipsEndpoint,a=e.config.useDualstackEndpoint,o=0;o=a())throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+a().toString(16)+" bytes");return 0|e}function b(e){return+e!=e&&(e=0),s.alloc(+e)}function S(e,t){if(s.isBuffer(e))return e.length;if("undefined"!=typeof ArrayBuffer&&"function"==typeof ArrayBuffer.isView&&(ArrayBuffer.isView(e)||e instanceof ArrayBuffer))return e.byteLength;"string"!=typeof e&&(e=""+e);var r=e.length;if(0===r)return 0;for(var a=!1;;)switch(t){case"ascii":case"latin1":case"binary":return r;case"utf8":case"utf-8":case void 0:return K(e).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*r;case"hex":return r>>>1;case"base64":return H(e).length;default:if(a)return K(e).length;t=(""+t).toLowerCase(),a=!0}}function g(e,t,r){var a=!1;if((void 0===t||t<0)&&(t=0),t>this.length)return"";if((void 0===r||r>this.length)&&(r=this.length),r<=0)return"";if(r>>>=0,t>>>=0,r<=t)return"";for(e||(e="utf8");;)switch(e){case"hex":return E(this,t,r);case"utf8":case"utf-8":return v(this,t,r);case"ascii":return P(this,t,r);case"latin1":case"binary":return q(this,t,r);case"base64":return D(this,t,r);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return M(this,t,r);default:if(a)throw new TypeError("Unknown encoding: "+e);e=(e+"").toLowerCase(),a=!0}}function h(e,t,r){var a=e[t];e[t]=e[r],e[r]=a}function I(e,t,r,a,i){if(0===e.length)return-1;if("string"==typeof r?(a=r,r=0):r>2147483647?r=2147483647:r<-2147483648&&(r=-2147483648),r=+r,isNaN(r)&&(r=i?0:e.length-1),r<0&&(r=e.length+r),r>=e.length){if(i)return-1;r=e.length-1}else if(r<0){if(!i)return-1;r=0}if("string"==typeof t&&(t=s.from(t,a)),s.isBuffer(t))return 0===t.length?-1:N(e,t,r,a,i);if("number"==typeof t)return t&=255,s.TYPED_ARRAY_SUPPORT&&"function"==typeof Uint8Array.prototype.indexOf?i?Uint8Array.prototype.indexOf.call(e,t,r):Uint8Array.prototype.lastIndexOf.call(e,t,r):N(e,[t],r,a,i);throw new TypeError("val must be string, number or Buffer")}function N(e,t,r,a,i){function s(e,t){return 1===o?e[t]:e.readUInt16BE(t*o)}var o=1,n=e.length,u=t.length;if(void 0!==a&&("ucs2"===(a=String(a).toLowerCase())||"ucs-2"===a||"utf16le"===a||"utf-16le"===a)){if(e.length<2||t.length<2)return-1;o=2,n/=2,u/=2,r/=2}var p;if(i){var m=-1;for(p=r;p>>8*(a?i:1-i)}function B(e,t,r,a){t<0&&(t=4294967295+t+1);for(var i=0,s=Math.min(e.length-r,4);i>>8*(a?i:3-i)&255}function U(e,t,r,a,i,s){if(r+a>e.length)throw new RangeError("Index out of range");if(r<0)throw new RangeError("Index out of range")}function _(e,t,r,a,i){return i||U(e,t,r,4,3.4028234663852886e38,-3.4028234663852886e38),X.write(e,t,r,a,23,4),r+4}function F(e,t,r,a,i){return i||U(e,t,r,8,1.7976931348623157e308,-1.7976931348623157e308),X.write(e,t,r,a,52,8),r+8}function O(e){if(e=V(e).replace(ee,""),e.length<2)return"";for(;e.length%4!=0;)e+="=";return e}function V(e){return e.trim?e.trim():e.replace(/^\s+|\s+$/g,"")}function z(e){return e<16?"0"+e.toString(16):e.toString(16)}function K(e,t){t=t||1/0;for(var r,a=e.length,i=null,s=[],o=0;o55295&&r<57344){if(!i){if(r>56319){(t-=3)>-1&&s.push(239,191,189);continue}if(o+1===a){(t-=3)>-1&&s.push(239,191,189);continue}i=r;continue}if(r<56320){(t-=3)>-1&&s.push(239,191,189),i=r;continue}r=65536+(i-55296<<10|r-56320)}else i&&(t-=3)>-1&&s.push(239,191,189);if(i=null,r<128){if((t-=1)<0)break;s.push(r)}else if(r<2048){if((t-=2)<0)break;s.push(r>>6|192,63&r|128)}else if(r<65536){if((t-=3)<0)break;s.push(r>>12|224,r>>6&63|128,63&r|128)}else{if(!(r<1114112))throw new Error("Invalid code point");if((t-=4)<0)break;s.push(r>>18|240,r>>12&63|128,r>>6&63|128,63&r|128)}}return s}function W(e){for(var t=[],r=0;r=55296&&t<=56319&&i65535&&(e-=65536,t+=w(e>>>10&1023|55296),e=56320|1023&e),t+=w(e)}).join("")}function p(e){return e-48<10?e-22:e-65<26?e-65:e-97<26?e-97:T}function m(e,t){return e+22+75*(e<26)-((0!=t)<<5)}function c(e,t,r){var a=0;for(e=r?G(e/R):e>>1,e+=G(e/t);e>L*k>>1;a+=T)e=G(e/L);return G(a+(L+1)*e/(e+A))}function l(e){var t,r,a,s,o,n,m,l,d,y,b=[],S=e.length,g=0,h=v,I=D;for(r=e.lastIndexOf(x),r<0&&(r=0),a=0;a=S&&i("invalid-input"),l=p(e.charCodeAt(s++)),(l>=T||l>G((f-g)/n))&&i("overflow"),g+=l*n,d=m<=I?C:m>=I+k?k:m-I,!(l=t&&bf&&i("overflow"),b==t){for(l=r,d=T;y=d<=o?C:d>=o+k?k:d-o,!(l