diff --git a/CHANGELOG.md b/CHANGELOG.md index 3ed4b5566b2..81c9b4d012e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,20 @@ +Release v1.49.19 (2024-01-11) +=== + +### Service Client Updates +* `service/ec2`: Updates service API and documentation + * 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. +* `service/ecs`: Updates service API and documentation + * 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. +* `service/eventbridge`: Updates service API and documentation +* `service/iot`: Updates service API and documentation + * Add ConflictException to Update APIs of AWS IoT Software Package Catalog +* `service/iotfleetwise`: Updates service API +* `service/secretsmanager`: Updates service documentation and examples + * Doc only update for Secrets Manager +* `service/workspaces`: Updates service documentation + * Added AWS Workspaces RebootWorkspaces API - Extended Reboot documentation update + Release v1.49.18 (2024-01-10) === diff --git a/aws/endpoints/defaults.go b/aws/endpoints/defaults.go index 05a5189b9e0..3330dd4342e 100644 --- a/aws/endpoints/defaults.go +++ b/aws/endpoints/defaults.go @@ -43698,6 +43698,19 @@ var awsisoPartition = partition{ }: endpoint{}, }, }, + "guardduty": service{ + IsRegionalized: boxedTrue, + Defaults: endpointDefaults{ + defaultKey{}: endpoint{ + Protocols: []string{"https"}, + }, + }, + Endpoints: serviceEndpoints{ + endpointKey{ + Region: "us-iso-east-1", + }: endpoint{}, + }, + }, "health": service{ Endpoints: serviceEndpoints{ endpointKey{ diff --git a/aws/version.go b/aws/version.go index e6dbda5167f..0daf567205b 100644 --- a/aws/version.go +++ b/aws/version.go @@ -5,4 +5,4 @@ package aws const SDKName = "aws-sdk-go" // SDKVersion is the version of this SDK -const SDKVersion = "1.49.18" +const SDKVersion = "1.49.19" diff --git a/models/apis/ec2/2016-11-15/api-2.json b/models/apis/ec2/2016-11-15/api-2.json index 964ceb776d0..c4528b885a5 100755 --- a/models/apis/ec2/2016-11-15/api-2.json +++ b/models/apis/ec2/2016-11-15/api-2.json @@ -20723,6 +20723,14 @@ "VolumeId":{ "shape":"String", "locationName":"volumeId" + }, + "AssociatedResource":{ + "shape":"String", + "locationName":"associatedResource" + }, + "VolumeOwnerId":{ + "shape":"String", + "locationName":"volumeOwnerId" } } }, @@ -45615,6 +45623,14 @@ "DeleteOnTermination":{ "shape":"Boolean", "locationName":"deleteOnTermination" + }, + "AssociatedResource":{ + "shape":"String", + "locationName":"associatedResource" + }, + "InstanceOwningService":{ + "shape":"String", + "locationName":"instanceOwningService" } } }, diff --git a/models/apis/ec2/2016-11-15/docs-2.json b/models/apis/ec2/2016-11-15/docs-2.json index f0ae52c74b1..8c37fad3c2f 100755 --- a/models/apis/ec2/2016-11-15/docs-2.json +++ b/models/apis/ec2/2016-11-15/docs-2.json @@ -374,7 +374,7 @@ "DetachInternetGateway": "

Detaches an internet gateway from a VPC, disabling connectivity between the internet and the VPC. The VPC must not contain any running instances with Elastic IP addresses or public IPv4 addresses.

", "DetachNetworkInterface": "

Detaches a network interface from an instance.

", "DetachVerifiedAccessTrustProvider": "

Detaches the specified Amazon Web Services Verified Access trust provider from the specified Amazon Web Services Verified Access instance.

", - "DetachVolume": "

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.

", + "DetachVolume": "

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": "

Detaches a virtual private gateway from a VPC. You do this if you're planning to turn off the VPC and not use it anymore. You can confirm a virtual private gateway has been completely detached from a VPC by describing the virtual private gateway (any attachments to the virtual private gateway are also described).

You must wait for the attachment's state to switch to detached before you can delete the VPC or attach a different VPC to the virtual private gateway.

", "DisableAddressTransfer": "

Disables Elastic IP address transfer. For more information, see Transfer Elastic IP addresses in the Amazon Virtual Private Cloud User Guide.

", "DisableAwsNetworkPerformanceMetricSubscription": "

Disables Infrastructure Performance metric subscriptions.

", @@ -2810,7 +2810,7 @@ "ScheduledInstancesEbs$Encrypted": "

Indicates whether the volume is encrypted. You can attached encrypted volumes only to instances that support them.

", "ScheduledInstancesLaunchSpecification$EbsOptimized": "

Indicates whether the instances are optimized for EBS I/O. This optimization provides dedicated throughput to Amazon EBS and an optimized configuration stack to provide optimal EBS I/O performance. This optimization isn't available with all instance types. Additional usage charges apply when using an EBS-optimized instance.

Default: false

", "ScheduledInstancesMonitoring$Enabled": "

Indicates whether monitoring is enabled.

", - "ScheduledInstancesNetworkInterface$AssociatePublicIpAddress": "

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.

", + "ScheduledInstancesNetworkInterface$AssociatePublicIpAddress": "

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.

", "ScheduledInstancesNetworkInterface$DeleteOnTermination": "

Indicates whether to delete the interface when the instance is terminated.

", "ScheduledInstancesPrivateIpAddressConfig$Primary": "

Indicates whether this is a primary IPv4 address. Otherwise, this is a secondary IPv4 address.

", "SearchLocalGatewayRoutesRequest$DryRun": "

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

", @@ -5202,8 +5202,8 @@ "DefaultTargetCapacityType": { "base": null, "refs": { - "TargetCapacitySpecification$DefaultTargetCapacityType": "

The default TotalTargetCapacity, which is either Spot or On-Demand.

", - "TargetCapacitySpecificationRequest$DefaultTargetCapacityType": "

The default TotalTargetCapacity, which is either Spot or On-Demand.

" + "TargetCapacitySpecification$DefaultTargetCapacityType": "

The default target capacity type.

", + "TargetCapacitySpecificationRequest$DefaultTargetCapacityType": "

The default target capacity type.

" } }, "DefaultingDhcpOptionsId": { @@ -6127,7 +6127,7 @@ "DescribeCapacityBlockOfferingsMaxResults": { "base": null, "refs": { - "DescribeCapacityBlockOfferingsRequest$MaxResults": "

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.

" + "DescribeCapacityBlockOfferingsRequest$MaxResults": "

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.

" } }, "DescribeCapacityBlockOfferingsRequest": { @@ -6143,7 +6143,7 @@ "DescribeCapacityReservationFleetsMaxResults": { "base": null, "refs": { - "DescribeCapacityReservationFleetsRequest$MaxResults": "

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.

" + "DescribeCapacityReservationFleetsRequest$MaxResults": "

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.

" } }, "DescribeCapacityReservationFleetsRequest": { @@ -6159,7 +6159,7 @@ "DescribeCapacityReservationsMaxResults": { "base": null, "refs": { - "DescribeCapacityReservationsRequest$MaxResults": "

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.

" + "DescribeCapacityReservationsRequest$MaxResults": "

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.

" } }, "DescribeCapacityReservationsRequest": { @@ -9969,7 +9969,7 @@ "GetCapacityReservationUsageRequestMaxResults": { "base": null, "refs": { - "GetCapacityReservationUsageRequest$MaxResults": "

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.

" + "GetCapacityReservationUsageRequest$MaxResults": "

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.

" } }, "GetCapacityReservationUsageResult": { @@ -10055,7 +10055,7 @@ "GetGroupsForCapacityReservationRequestMaxResults": { "base": null, "refs": { - "GetGroupsForCapacityReservationRequest$MaxResults": "

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.

" + "GetGroupsForCapacityReservationRequest$MaxResults": "

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.

" } }, "GetGroupsForCapacityReservationResult": { @@ -10689,9 +10689,9 @@ "HttpTokensState": { "base": null, "refs": { - "InstanceMetadataOptionsRequest$HttpTokens": "

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).

Default: optional

", - "InstanceMetadataOptionsResponse$HttpTokens": "

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).

Default: optional

", - "ModifyInstanceMetadataOptionsRequest$HttpTokens": "

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).

Default: optional

" + "InstanceMetadataOptionsRequest$HttpTokens": "

Indicates whether IMDSv2 is required.

Default: If the value of ImdsSupport for the Amazon Machine Image (AMI) for your instance is v2.0, the default is required.

", + "InstanceMetadataOptionsResponse$HttpTokens": "

Indicates whether IMDSv2 is required.

", + "ModifyInstanceMetadataOptionsRequest$HttpTokens": "

Indicates whether IMDSv2 is required.

Default: If the value of ImdsSupport for the Amazon Machine Image (AMI) for your instance is v2.0, the default is required.

" } }, "HypervisorType": { @@ -11223,7 +11223,7 @@ "InstanceBlockDeviceMappingSpecificationList": { "base": null, "refs": { - "ModifyInstanceAttributeRequest$BlockDeviceMappings": "

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.

" + "ModifyInstanceAttributeRequest$BlockDeviceMappings": "

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.

" } }, "InstanceBootModeValues": { @@ -12301,10 +12301,10 @@ "StoreImageTaskResult$ProgressPercentage": "

The progress of the task as a percentage.

", "Subnet$AvailableIpAddressCount": "

The number of unused private IPv4 addresses in the subnet. The IPv4 addresses for any stopped instances are considered unavailable.

", "Subnet$EnableLniAtDeviceIndex": "

Indicates the device position for local network interfaces in this subnet. For example, 1 indicates local network interfaces in this subnet are the secondary network interface (eth1).

", - "TargetCapacitySpecification$TotalTargetCapacity": "

The number of units to request, filled using DefaultTargetCapacityType.

", + "TargetCapacitySpecification$TotalTargetCapacity": "

The number of units to request, filled the default target capacity type.

", "TargetCapacitySpecification$OnDemandTargetCapacity": "

The number of On-Demand units to request. If you specify a target capacity for Spot units, you cannot specify a target capacity for On-Demand units.

", "TargetCapacitySpecification$SpotTargetCapacity": "

The maximum number of Spot units to launch. If you specify a target capacity for On-Demand units, you cannot specify a target capacity for Spot units.

", - "TargetCapacitySpecificationRequest$TotalTargetCapacity": "

The number of units to request, filled using DefaultTargetCapacityType.

", + "TargetCapacitySpecificationRequest$TotalTargetCapacity": "

The number of units to request, filled using the default target capacity type.

", "TargetCapacitySpecificationRequest$OnDemandTargetCapacity": "

The number of On-Demand units to request.

", "TargetCapacitySpecificationRequest$SpotTargetCapacity": "

The number of Spot units to request.

", "TargetConfiguration$InstanceCount": "

The number of instances the Convertible Reserved Instance offering can be applied to. This parameter is reserved and cannot be specified in a request

", @@ -18560,7 +18560,7 @@ "base": null, "refs": { "DisableSnapshotBlockPublicAccessResult$State": "

Returns unblocked if the request succeeds.

", - "EnableSnapshotBlockPublicAccessRequest$State": "

The mode in which to enable block public access for snapshots for the Region. Specify one of the following values:

", + "EnableSnapshotBlockPublicAccessRequest$State": "

The mode in which to enable block public access for snapshots for the Region. Specify one of the following values:

unblocked is not a valid value for EnableSnapshotBlockPublicAccess.

", "EnableSnapshotBlockPublicAccessResult$State": "

The state of block public access for snapshots for the account and Region. Returns either block-all-sharing or block-new-sharing if the request succeeds.

", "GetSnapshotBlockPublicAccessStateResult$State": "

The current state of block public access for snapshots. Possible values include:

" } @@ -19774,6 +19774,8 @@ "EbsBlockDevice$KmsKeyId": "

Identifier (key ID, key alias, ID ARN, or alias ARN) for a customer managed CMK under which the EBS volume is encrypted.

This parameter is only supported on BlockDeviceMapping objects called by RunInstances, RequestSpotFleet, and RequestSpotInstances.

", "EbsBlockDevice$OutpostArn": "

The ARN of the Outpost on which the snapshot is stored.

This parameter is not supported when using CreateImage.

", "EbsInstanceBlockDevice$VolumeId": "

The ID of the EBS volume.

", + "EbsInstanceBlockDevice$AssociatedResource": "

The ARN of the Amazon ECS or Fargate task to which the volume is attached.

", + "EbsInstanceBlockDevice$VolumeOwnerId": "

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.

", "Ec2InstanceConnectEndpoint$OwnerId": "

The ID of the Amazon Web Services account that created the EC2 Instance Connect Endpoint.

", "Ec2InstanceConnectEndpoint$StateMessage": "

The message for the current state of the EC2 Instance Connect Endpoint. Can include a failure message.

", "Ec2InstanceConnectEndpoint$DnsName": "

The DNS name of the EC2 Instance Connect Endpoint.

", @@ -20846,7 +20848,7 @@ "StartNetworkInsightsAccessScopeAnalysisRequest$ClientToken": "

Unique, case-sensitive identifier that you provide to ensure the idempotency of the request. For more information, see How to ensure idempotency.

", "StartNetworkInsightsAnalysisRequest$ClientToken": "

Unique, case-sensitive identifier that you provide to ensure the idempotency of the request. For more information, see How to ensure idempotency.

", "StateReason$Code": "

The reason code for the state change.

", - "StateReason$Message": "

The message for the state change.

", + "StateReason$Message": "

The message for the state change.

", "StorageLocation$Bucket": "

The name of the S3 bucket.

", "StorageLocation$Key": "

The key.

", "StoreImageTaskResult$AmiId": "

The ID of the AMI that is being stored.

", @@ -21077,9 +21079,11 @@ "Volume$OutpostArn": "

The Amazon Resource Name (ARN) of the Outpost.

", "Volume$SnapshotId": "

The snapshot from which the volume was created, if applicable.

", "Volume$VolumeId": "

The ID of the volume.

", - "VolumeAttachment$Device": "

The device name.

", - "VolumeAttachment$InstanceId": "

The ID of the instance.

", + "VolumeAttachment$Device": "

The device name.

If the volume is attached to a Fargate task, this parameter returns null.

", + "VolumeAttachment$InstanceId": "

The ID of the instance.

If the volume is attached to a Fargate task, this parameter returns null.

", "VolumeAttachment$VolumeId": "

The ID of the volume.

", + "VolumeAttachment$AssociatedResource": "

The ARN of the Amazon ECS or Fargate task to which the volume is attached.

", + "VolumeAttachment$InstanceOwningService": "

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.

", "VolumeModification$VolumeId": "

The ID of the volume.

", "VolumeModification$StatusMessage": "

A status message about the modification progress or failure.

", "VolumeStatusAction$Code": "

The code identifying the operation, for example, enable-volume-io.

", @@ -21623,7 +21627,7 @@ } }, "TargetCapacitySpecificationRequest": { - "base": "

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.

", + "base": "

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.

", "refs": { "CreateFleetRequest$TargetCapacitySpecification": "

The number of units to request.

", "ModifyFleetRequest$TargetCapacitySpecification": "

The size of the EC2 Fleet.

" @@ -21632,10 +21636,10 @@ "TargetCapacityUnitType": { "base": null, "refs": { - "GetSpotPlacementScoresRequest$TargetCapacityUnitType": "

The unit for the target capacity.

Default: units (translates to number of instances)

", - "SpotFleetRequestConfigData$TargetCapacityUnitType": "

The unit for the target capacity. TargetCapacityUnitType can only be specified when InstanceRequirements is specified.

Default: units (translates to number of instances)

", - "TargetCapacitySpecification$TargetCapacityUnitType": "

The unit for the target capacity. TargetCapacityUnitType can only be specified when InstanceRequirements is specified.

Default: units (translates to number of instances)

", - "TargetCapacitySpecificationRequest$TargetCapacityUnitType": "

The unit for the target capacity. TargetCapacityUnitType can only be specified when InstanceRequirements is specified.

Default: units (translates to number of instances)

" + "GetSpotPlacementScoresRequest$TargetCapacityUnitType": "

The unit for the target capacity.

", + "SpotFleetRequestConfigData$TargetCapacityUnitType": "

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)

", + "TargetCapacitySpecification$TargetCapacityUnitType": "

The unit for the target capacity.

", + "TargetCapacitySpecificationRequest$TargetCapacityUnitType": "

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)

" } }, "TargetConfiguration": { diff --git a/models/apis/ecs/2014-11-13/api-2.json b/models/apis/ecs/2014-11-13/api-2.json index 3e4323fe139..c767866d2d5 100644 --- a/models/apis/ecs/2014-11-13/api-2.json +++ b/models/apis/ecs/2014-11-13/api-2.json @@ -647,7 +647,8 @@ {"shape":"ServerException"}, {"shape":"ClientException"}, {"shape":"InvalidParameterException"}, - {"shape":"ClusterNotFoundException"} + {"shape":"ClusterNotFoundException"}, + {"shape":"UnsupportedFeatureException"} ] }, "StopTask":{ @@ -837,7 +838,8 @@ {"shape":"PlatformUnknownException"}, {"shape":"PlatformTaskDefinitionIncompatibilityException"}, {"shape":"AccessDeniedException"}, - {"shape":"NamespaceNotFoundException"} + {"shape":"NamespaceNotFoundException"}, + {"shape":"UnsupportedFeatureException"} ] }, "UpdateServicePrimaryTaskSet":{ @@ -1477,7 +1479,8 @@ "enableECSManagedTags":{"shape":"Boolean"}, "propagateTags":{"shape":"PropagateTags"}, "enableExecuteCommand":{"shape":"Boolean"}, - "serviceConnectConfiguration":{"shape":"ServiceConnectConfiguration"} + "serviceConnectConfiguration":{"shape":"ServiceConnectConfiguration"}, + "volumeConfigurations":{"shape":"ServiceVolumeConfigurations"} } }, "CreateServiceResponse":{ @@ -1638,7 +1641,8 @@ "rolloutState":{"shape":"DeploymentRolloutState"}, "rolloutStateReason":{"shape":"String"}, "serviceConnectConfiguration":{"shape":"ServiceConnectConfiguration"}, - "serviceConnectResources":{"shape":"ServiceConnectServiceResourceList"} + "serviceConnectResources":{"shape":"ServiceConnectServiceResourceList"}, + "volumeConfigurations":{"shape":"ServiceVolumeConfigurations"} } }, "DeploymentAlarms":{ @@ -1907,6 +1911,27 @@ } }, "Double":{"type":"double"}, + "EBSKMSKeyId":{"type":"string"}, + "EBSResourceType":{ + "type":"string", + "enum":["volume"] + }, + "EBSSnapshotId":{"type":"string"}, + "EBSTagSpecification":{ + "type":"structure", + "required":["resourceType"], + "members":{ + "resourceType":{"shape":"EBSResourceType"}, + "tags":{"shape":"Tags"}, + "propagateTags":{"shape":"PropagateTags"} + } + }, + "EBSTagSpecifications":{ + "type":"list", + "member":{"shape":"EBSTagSpecification"} + }, + "EBSVolumeType":{"type":"string"}, + "ECSVolumeName":{"type":"string"}, "EFSAuthorizationConfig":{ "type":"structure", "members":{ @@ -2136,6 +2161,7 @@ "sourcePath":{"shape":"String"} } }, + "IAMRoleArn":{"type":"string"}, "InferenceAccelerator":{ "type":"structure", "required":[ @@ -2960,7 +2986,8 @@ "clientToken":{ "shape":"String", "idempotencyToken":true - } + }, + "volumeConfigurations":{"shape":"TaskVolumeConfigurations"} } }, "RunTaskResponse":{ @@ -3132,6 +3159,22 @@ "type":"list", "member":{"shape":"ServiceField"} }, + "ServiceManagedEBSVolumeConfiguration":{ + "type":"structure", + "required":["roleArn"], + "members":{ + "encrypted":{"shape":"BoxedBoolean"}, + "kmsKeyId":{"shape":"EBSKMSKeyId"}, + "volumeType":{"shape":"EBSVolumeType"}, + "sizeInGiB":{"shape":"BoxedInteger"}, + "snapshotId":{"shape":"EBSSnapshotId"}, + "iops":{"shape":"BoxedInteger"}, + "throughput":{"shape":"BoxedInteger"}, + "tagSpecifications":{"shape":"EBSTagSpecifications"}, + "roleArn":{"shape":"IAMRoleArn"}, + "filesystemType":{"shape":"TaskFilesystemType"} + } + }, "ServiceNotActiveException":{ "type":"structure", "members":{ @@ -3157,6 +3200,18 @@ "containerPort":{"shape":"BoxedInteger"} } }, + "ServiceVolumeConfiguration":{ + "type":"structure", + "required":["name"], + "members":{ + "name":{"shape":"ECSVolumeName"}, + "managedEBSVolume":{"shape":"ServiceManagedEBSVolumeConfiguration"} + } + }, + "ServiceVolumeConfigurations":{ + "type":"list", + "member":{"shape":"ServiceVolumeConfiguration"} + }, "Services":{ "type":"list", "member":{"shape":"Service"} @@ -3235,7 +3290,8 @@ "referenceId":{"shape":"String"}, "startedBy":{"shape":"String"}, "tags":{"shape":"Tags"}, - "taskDefinition":{"shape":"String"} + "taskDefinition":{"shape":"String"}, + "volumeConfigurations":{"shape":"TaskVolumeConfigurations"} } }, "StartTaskResponse":{ @@ -3521,6 +3577,38 @@ "type":"list", "member":{"shape":"TaskField"} }, + "TaskFilesystemType":{ + "type":"string", + "enum":[ + "ext3", + "ext4", + "xfs" + ] + }, + "TaskManagedEBSVolumeConfiguration":{ + "type":"structure", + "required":["roleArn"], + "members":{ + "encrypted":{"shape":"BoxedBoolean"}, + "kmsKeyId":{"shape":"EBSKMSKeyId"}, + "volumeType":{"shape":"EBSVolumeType"}, + "sizeInGiB":{"shape":"BoxedInteger"}, + "snapshotId":{"shape":"EBSSnapshotId"}, + "iops":{"shape":"BoxedInteger"}, + "throughput":{"shape":"BoxedInteger"}, + "tagSpecifications":{"shape":"EBSTagSpecifications"}, + "roleArn":{"shape":"IAMRoleArn"}, + "terminationPolicy":{"shape":"TaskManagedEBSVolumeTerminationPolicy"}, + "filesystemType":{"shape":"TaskFilesystemType"} + } + }, + "TaskManagedEBSVolumeTerminationPolicy":{ + "type":"structure", + "required":["deleteOnTermination"], + "members":{ + "deleteOnTermination":{"shape":"BoxedBoolean"} + } + }, "TaskOverride":{ "type":"structure", "members":{ @@ -3591,6 +3679,18 @@ "TerminationNotice" ] }, + "TaskVolumeConfiguration":{ + "type":"structure", + "required":["name"], + "members":{ + "name":{"shape":"ECSVolumeName"}, + "managedEBSVolume":{"shape":"TaskManagedEBSVolumeConfiguration"} + } + }, + "TaskVolumeConfigurations":{ + "type":"list", + "member":{"shape":"TaskVolumeConfiguration"} + }, "Tasks":{ "type":"list", "member":{"shape":"Task"} @@ -3807,7 +3907,8 @@ "loadBalancers":{"shape":"LoadBalancers"}, "propagateTags":{"shape":"PropagateTags"}, "serviceRegistries":{"shape":"ServiceRegistries"}, - "serviceConnectConfiguration":{"shape":"ServiceConnectConfiguration"} + "serviceConnectConfiguration":{"shape":"ServiceConnectConfiguration"}, + "volumeConfigurations":{"shape":"ServiceVolumeConfigurations"} } }, "UpdateServiceResponse":{ @@ -3873,7 +3974,8 @@ "host":{"shape":"HostVolumeProperties"}, "dockerVolumeConfiguration":{"shape":"DockerVolumeConfiguration"}, "efsVolumeConfiguration":{"shape":"EFSVolumeConfiguration"}, - "fsxWindowsFileServerVolumeConfiguration":{"shape":"FSxWindowsFileServerVolumeConfiguration"} + "fsxWindowsFileServerVolumeConfiguration":{"shape":"FSxWindowsFileServerVolumeConfiguration"}, + "configuredAtLaunch":{"shape":"BoxedBoolean"} } }, "VolumeFrom":{ diff --git a/models/apis/ecs/2014-11-13/docs-2.json b/models/apis/ecs/2014-11-13/docs-2.json index 85e90f6ff28..0b79b99c1f2 100644 --- a/models/apis/ecs/2014-11-13/docs-2.json +++ b/models/apis/ecs/2014-11-13/docs-2.json @@ -4,7 +4,7 @@ "operations": { "CreateCapacityProvider": "

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

Only capacity providers that use an Auto Scaling group can be created. Amazon ECS tasks on Fargate use the FARGATE and FARGATE_SPOT capacity providers. These providers are available to all accounts in the Amazon Web Services Regions that Fargate supports.

", "CreateCluster": "

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

When you call the CreateCluster API operation, Amazon ECS attempts to create the Amazon ECS service-linked role for your account. This is so that it can manage required resources in other Amazon Web Services services on your behalf. However, if the user that makes the call doesn't have permissions to create the service-linked role, it isn't created. For more information, see Using service-linked roles for Amazon ECS in the Amazon Elastic Container Service Developer Guide.

", - "CreateService": "

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:

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.

", + "CreateService": "

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:

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": "

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

You can create a maximum of 5 tasks sets for a deployment.

", "DeleteAccountSetting": "

Disables an account setting for a specified user, role, or the root user for an account.

", "DeleteAttributes": "

Deletes one or more custom attributes from an Amazon ECS resource.

", @@ -41,8 +41,8 @@ "PutClusterCapacityProviders": "

Modifies the available capacity providers and the default capacity provider strategy for a cluster.

You must specify both the available capacity providers and a default capacity provider strategy for the cluster. If the specified cluster has existing capacity providers associated with it, you must specify all existing capacity providers in addition to any new ones you want to add. Any existing capacity providers that are associated with a cluster that are omitted from a PutClusterCapacityProviders API call will be disassociated with the cluster. You can only disassociate an existing capacity provider from a cluster if it's not being used by any existing tasks.

When creating a service or running a task on a cluster, if no capacity provider or launch type is specified, then the cluster's default capacity provider strategy is used. We recommend that you define a default capacity provider strategy for your cluster. However, you must specify an empty array ([]) to bypass defining a default strategy.

", "RegisterContainerInstance": "

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

Registers an EC2 instance into the specified cluster. This instance becomes available to place containers on.

", "RegisterTaskDefinition": "

Registers a new task definition from the supplied family and containerDefinitions. Optionally, you can add data volumes to your containers with the volumes parameter. For more information about task definition parameters and defaults, see Amazon ECS Task Definitions in the Amazon Elastic Container Service Developer Guide.

You can specify a role for your task with the taskRoleArn parameter. When you specify a role for a task, its containers can then use the latest versions of the CLI or SDKs to make API requests to the Amazon Web Services services that are specified in the policy that's associated with the role. For more information, see IAM Roles for Tasks in the Amazon Elastic Container Service Developer Guide.

You can specify a Docker networking mode for the containers in your task definition with the networkMode parameter. The available network modes correspond to those described in Network settings in the Docker run reference. If you specify the awsvpc network mode, the task is allocated an elastic network interface, and you must specify a NetworkConfiguration when you create a service or run a task with the task definition. For more information, see Task Networking in the Amazon Elastic Container Service Developer Guide.

", - "RunTask": "

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:

", - "StartTask": "

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.

", + "RunTask": "

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:

", + "StartTask": "

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": "

Stops a running task. Any tags associated with the task will be deleted.

When StopTask is called on a task, the equivalent of docker stop is issued to the containers running in the task. This results in a SIGTERM value and a default 30-second timeout, after which the SIGKILL value is sent and the containers are forcibly stopped. If the container handles the SIGTERM value gracefully and exits within 30 seconds from receiving it, no SIGKILL value is sent.

The default 30-second timeout can be configured on the Amazon ECS container agent with the ECS_CONTAINER_STOP_TIMEOUT variable. For more information, see Amazon ECS Container Agent Configuration in the Amazon Elastic Container Service Developer Guide.

", "SubmitAttachmentStateChanges": "

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

Sent to acknowledge that an attachment changed states.

", "SubmitContainerStateChange": "

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

Sent to acknowledge that a container changed states.

", @@ -54,7 +54,7 @@ "UpdateClusterSettings": "

Modifies the settings to use for a cluster.

", "UpdateContainerAgent": "

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

The UpdateContainerAgent API isn't supported for container instances using the Amazon ECS-optimized Amazon Linux 2 (arm64) AMI. To update the container agent, you can update the ecs-init package. This updates the agent. For more information, see Updating the Amazon ECS container agent in the Amazon Elastic Container Service Developer Guide.

Agent updates with the UpdateContainerAgent API operation do not apply to Windows container instances. We recommend that you launch new container instances to update the agent version in your Windows clusters.

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

", "UpdateContainerInstancesState": "

Modifies the status of an Amazon ECS container instance.

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

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

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

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

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

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

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

", - "UpdateService": "

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.

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.

When the service scheduler stops running tasks, it attempts to maintain balance across the Availability Zones in your cluster using the following logic:

You must have a service-linked role when you update any of the following service properties:

For more information about the role see the CreateService request parameter role .

", + "UpdateService": "

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.

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.

When the service scheduler stops running tasks, it attempts to maintain balance across the Availability Zones in your cluster using the following logic:

You must have a service-linked role when you update any of the following service properties:

For more information about the role see the CreateService request parameter role .

", "UpdateServicePrimaryTaskSet": "

Modifies which task set in a service is the primary task set. Any parameters that are updated on the primary task set in a service will transition to the service. This is used when a service uses the EXTERNAL deployment controller type. For more information, see Amazon ECS Deployment Types in the Amazon Elastic Container Service Developer Guide.

", "UpdateTaskProtection": "

Updates the protection status of a task. You can set protectionEnabled to true to protect your task from termination during scale-in events from Service Autoscaling or deployments.

Task-protection, by default, expires after 2 hours at which point Amazon ECS clears the protectionEnabled property making the task eligible for termination by a subsequent scale-in event.

You can specify a custom expiration period for task protection from 1 minute to up to 2,880 minutes (48 hours). To specify the custom expiration period, set the expiresInMinutes property. The expiresInMinutes property is always reset when you invoke this operation for a task that already has protectionEnabled set to true. You can keep extending the protection expiration period of a task by invoking this operation repeatedly.

To learn more about Amazon ECS task protection, see Task scale-in protection in the Amazon Elastic Container Service Developer Guide .

This operation is only supported for tasks belonging to an Amazon ECS service. Invoking this operation for a standalone task will result in an TASK_NOT_VALID failure. For more information, see API failure reasons.

If you prefer to set task protection from within the container, we recommend using the Task scale-in protection endpoint.

", "UpdateTaskSet": "

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

" @@ -92,7 +92,7 @@ "AttachmentDetails": { "base": null, "refs": { - "Attachment$details": "

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.

" + "Attachment$details": "

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.

" } }, "AttachmentStateChange": { @@ -208,8 +208,12 @@ "DockerVolumeConfiguration$autoprovision": "

If this value is true, the Docker volume is created if it doesn't already exist.

This field is only used if the scope is shared.

", "LinuxParameters$initProcessEnabled": "

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

", "MountPoint$readOnly": "

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

", + "ServiceManagedEBSVolumeConfiguration$encrypted": "

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.

", + "TaskManagedEBSVolumeConfiguration$encrypted": "

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.

", + "TaskManagedEBSVolumeTerminationPolicy$deleteOnTermination": "

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.

", "UpdateServiceRequest$enableExecuteCommand": "

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

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

", "UpdateServiceRequest$enableECSManagedTags": "

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

Only tasks launched after the update will reflect the update. To update the tags on all tasks, set forceNewDeployment to true, so that Amazon ECS starts new tasks with the updated tags.

", + "Volume$configuredAtLaunch": "

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.

", "VolumeFrom$readOnly": "

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

" } }, @@ -253,9 +257,15 @@ "PortMapping$hostPort": "

The port number on the container instance to reserve for your container.

If you specify a containerPortRange, leave this field empty and the value of the hostPort is set as follows:

If you use containers in a task with the awsvpc or host network mode, the hostPort can either be left blank or set to the same value as the containerPort.

If you use containers in a task with the bridge network mode, you can specify a non-reserved host port for your container port mapping, or you can omit the hostPort (or set it to 0) while specifying a containerPort and your container automatically receives a port in the ephemeral port range for your container instance operating system and Docker version.

The default ephemeral port range for Docker version 1.6.0 and later is listed on the instance under /proc/sys/net/ipv4/ip_local_port_range. If this kernel parameter is unavailable, the default ephemeral port range from 49153 through 65535 (Linux) or 49152 through 65535 (Windows) is used. Do not attempt to specify a host port in the ephemeral port range as these are reserved for automatic assignment. In general, ports below 32768 are outside of the ephemeral port range.

The default reserved ports are 22 for SSH, the Docker ports 2375 and 2376, and the Amazon ECS container agent ports 51678-51680. Any host port that was previously specified in a running task is also reserved while the task is running. That is, after a task stops, the host port is released. The current reserved ports are displayed in the remainingResources of DescribeContainerInstances output. A container instance can have up to 100 reserved ports at a time. This number includes the default reserved ports. Automatically assigned ports aren't included in the 100 reserved ports quota.

", "RunTaskRequest$count": "

The number of instantiations of the specified task to place on your cluster. You can specify up to 10 tasks for each call.

", "Service$healthCheckGracePeriodSeconds": "

The period of time, in seconds, that the Amazon ECS service scheduler ignores unhealthy Elastic Load Balancing target health checks after a task has first started.

", + "ServiceManagedEBSVolumeConfiguration$sizeInGiB": "

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.

", + "ServiceManagedEBSVolumeConfiguration$iops": "

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.

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.

", + "ServiceManagedEBSVolumeConfiguration$throughput": "

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.

", "ServiceRegistry$port": "

The port value used if your service discovery service specified an SRV record. This field might be used if both the awsvpc network mode and SRV records are used.

", "ServiceRegistry$containerPort": "

The port value to be used for your service discovery service. It's already specified in the task definition. If the task definition your service task specifies uses the bridge or host network mode, you must specify a containerName and containerPort combination from the task definition. If the task definition your service task specifies uses the awsvpc network mode and a type SRV DNS record is used, you must specify either a containerName and containerPort combination or a port value. However, you can't specify both.

", "SubmitContainerStateChangeRequest$exitCode": "

The exit code that's returned for the state change request.

", + "TaskManagedEBSVolumeConfiguration$sizeInGiB": "

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.

", + "TaskManagedEBSVolumeConfiguration$iops": "

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.

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.

", + "TaskManagedEBSVolumeConfiguration$throughput": "

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.

", "UpdateServiceRequest$desiredCount": "

The number of instantiations of the task to place and keep running in your service.

", "UpdateServiceRequest$healthCheckGracePeriodSeconds": "

The period of time, in seconds, that the Amazon ECS service scheduler ignores unhealthy Elastic Load Balancing target health checks after a task has first started. This is only valid if your service is configured to use a load balancer. If your service's tasks take a while to start and respond to Elastic Load Balancing health checks, you can specify a health check grace period of up to 2,147,483,647 seconds. During that time, the Amazon ECS service scheduler ignores the Elastic Load Balancing health check status. This grace period can prevent the ECS service scheduler from marking tasks as unhealthy and stopping them before they have time to come up.

", "UpdateTaskProtectionRequest$expiresInMinutes": "

If you set protectionEnabled to true, you can specify the duration for task protection in minutes. You can specify a value from 1 minute to up to 2,880 minutes (48 hours). During this time, your task will not be terminated by scale-in events from Service Auto Scaling or deployments. After this time period lapses, protectionEnabled will be reset to false.

If you don’t specify the time, then the task is automatically protected for 120 minutes (2 hours).

" @@ -878,6 +888,53 @@ "Scale$value": "

The value, specified as a percent total of a service's desiredCount, to scale the task set. Accepted values are numbers between 0 and 100.

" } }, + "EBSKMSKeyId": { + "base": null, + "refs": { + "ServiceManagedEBSVolumeConfiguration$kmsKeyId": "

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.

", + "TaskManagedEBSVolumeConfiguration$kmsKeyId": "

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.

" + } + }, + "EBSResourceType": { + "base": null, + "refs": { + "EBSTagSpecification$resourceType": "

The type of volume resource.

" + } + }, + "EBSSnapshotId": { + "base": null, + "refs": { + "ServiceManagedEBSVolumeConfiguration$snapshotId": "

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.

", + "TaskManagedEBSVolumeConfiguration$snapshotId": "

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.

" + } + }, + "EBSTagSpecification": { + "base": "

The tag specifications of an Amazon EBS volume.

", + "refs": { + "EBSTagSpecifications$member": null + } + }, + "EBSTagSpecifications": { + "base": null, + "refs": { + "ServiceManagedEBSVolumeConfiguration$tagSpecifications": "

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.

", + "TaskManagedEBSVolumeConfiguration$tagSpecifications": "

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.

" + } + }, + "EBSVolumeType": { + "base": null, + "refs": { + "ServiceManagedEBSVolumeConfiguration$volumeType": "

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.

", + "TaskManagedEBSVolumeConfiguration$volumeType": "

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.

" + } + }, + "ECSVolumeName": { + "base": null, + "refs": { + "ServiceVolumeConfiguration$name": "

The name of the volume. This value must match the volume name from the Volume object in the task definition.

", + "TaskVolumeConfiguration$name": "

The name of the volume. This value must match the volume name from the Volume object in the task definition.

" + } + }, "EFSAuthorizationConfig": { "base": "

The authorization configuration details for the Amazon EFS file system.

", "refs": { @@ -1065,6 +1122,13 @@ "Volume$host": "

This parameter is specified when you use bind mount host volumes. The contents of the host parameter determine whether your bind mount host volume persists on the host container instance and where it's stored. If the host parameter is empty, then the Docker daemon assigns a host path for your data volume. However, the data isn't guaranteed to persist after the containers that are associated with it stop running.

Windows containers can mount whole directories on the same drive as $env:ProgramData. Windows containers can't mount directories on a different drive, and mount point can't be across drives. For example, you can mount C:\\my\\path:C:\\my\\path and D:\\:D:\\, but not D:\\my\\path:C:\\my\\path or D:\\:C:\\my\\path.

" } }, + "IAMRoleArn": { + "base": null, + "refs": { + "ServiceManagedEBSVolumeConfiguration$roleArn": "

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.

", + "TaskManagedEBSVolumeConfiguration$roleArn": "

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.

" + } + }, "InferenceAccelerator": { "base": "

Details on an Elastic Inference accelerator. For more information, see Working with Amazon Elastic Inference on Amazon ECS in the Amazon Elastic Container Service Developer Guide.

", "refs": { @@ -1374,8 +1438,8 @@ "ManagedDraining": { "base": null, "refs": { - "AutoScalingGroupProvider$managedDraining": "

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.

", - "AutoScalingGroupProviderUpdate$managedDraining": "

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.

" + "AutoScalingGroupProvider$managedDraining": "

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.

", + "AutoScalingGroupProviderUpdate$managedDraining": "

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.

" } }, "ManagedScaling": { @@ -1596,6 +1660,7 @@ "base": null, "refs": { "CreateServiceRequest$propagateTags": "

Specifies whether to propagate the tags from the task definition to the task. If no value is specified, the tags aren't propagated. Tags can only be propagated to the task during task creation. To add tags to a task after task creation, use the TagResource API action.

The default is NONE.

", + "EBSTagSpecification$propagateTags": "

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.

", "RunTaskRequest$propagateTags": "

Specifies whether to propagate the tags from the task definition to the task. If no value is specified, the tags aren't propagated. Tags can only be propagated to the task during task creation. To add tags to a task after task creation, use the TagResource API action.

An error will be received if you specify the SERVICE option when running a task.

", "Service$propagateTags": "

Determines whether to propagate the tags from the task definition or the service to the task. If no value is specified, the tags aren't propagated.

", "StartTaskRequest$propagateTags": "

Specifies whether to propagate the tags from the task definition or the service to the task. If no value is specified, the tags aren't propagated.

", @@ -1901,6 +1966,12 @@ "DescribeServicesRequest$include": "

Determines whether you want to see the resource tags for the service. If TAGS is specified, the tags are included in the response. If this field is omitted, tags aren't included in the response.

" } }, + "ServiceManagedEBSVolumeConfiguration": { + "base": "

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.

", + "refs": { + "ServiceVolumeConfiguration$managedEBSVolume": "

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.

" + } + }, "ServiceNotActiveException": { "base": "

The specified service isn't active. You can't update a service that's inactive. If you have previously deleted a service, you can re-create it with CreateService.

", "refs": { @@ -1927,6 +1998,20 @@ "ServiceRegistries$member": null } }, + "ServiceVolumeConfiguration": { + "base": "

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.

", + "refs": { + "ServiceVolumeConfigurations$member": null + } + }, + "ServiceVolumeConfigurations": { + "base": null, + "refs": { + "CreateServiceRequest$volumeConfigurations": "

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.

", + "Deployment$volumeConfigurations": "

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.

", + "UpdateServiceRequest$volumeConfigurations": "

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.

" + } + }, "Services": { "base": null, "refs": { @@ -2012,7 +2097,7 @@ "base": null, "refs": { "Attachment$id": "

The unique identifier for the attachment.

", - "Attachment$type": "

The type of the attachment, such as ElasticNetworkInterface.

", + "Attachment$type": "

The type of the attachment, such as ElasticNetworkInterface, Service Connect, and AmazonElasticBlockStorage.

", "Attachment$status": "

The status of the attachment. Valid values are PRECREATED, CREATED, ATTACHING, ATTACHED, DETACHING, DETACHED, DELETED, and FAILED.

", "AttachmentStateChange$attachmentArn": "

The Amazon Resource Name (ARN) of the attachment.

", "AttachmentStateChange$status": "

The status of the attachment.

", @@ -2345,7 +2430,7 @@ "VersionInfo$agentVersion": "

The version number of the Amazon ECS container agent.

", "VersionInfo$agentHash": "

The Git commit hash for the Amazon ECS container agent build on the amazon-ecs-agent GitHub repository.

", "VersionInfo$dockerVersion": "

The Docker version that's running on the container instance.

", - "Volume$name": "

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.

", + "Volume$name": "

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.

", "VolumeFrom$sourceContainer": "

The name of another container within the same task definition to mount volumes from.

" } }, @@ -2486,6 +2571,7 @@ "CreateServiceRequest$tags": "

The metadata that you apply to the service to help you categorize and organize them. Each tag consists of a key and an optional value, both of which you define. When a service is deleted, the tags are deleted as well.

The following basic restrictions apply to tags:

", "CreateTaskSetRequest$tags": "

The metadata that you apply to the task set to help you categorize and organize them. Each tag consists of a key and an optional value. You define both. When a service is deleted, the tags are deleted.

The following basic restrictions apply to tags:

", "DescribeTaskDefinitionResponse$tags": "

The metadata that's applied to the task definition to help you categorize and organize them. Each tag consists of a key and an optional value. You define both.

The following basic restrictions apply to tags:

", + "EBSTagSpecification$tags": "

The tags applied to this Amazon EBS volume. AmazonECSCreated and AmazonECSManaged are reserved tags that can't be used.

", "ListTagsForResourceResponse$tags": "

The tags for the resource.

", "RegisterContainerInstanceRequest$tags": "

The metadata that you apply to the container instance to help you categorize and organize them. Each tag consists of a key and an optional value. You define both.

The following basic restrictions apply to tags:

", "RegisterTaskDefinitionRequest$tags": "

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

The following basic restrictions apply to tags:

", @@ -2593,6 +2679,25 @@ "DescribeTasksRequest$include": "

Specifies whether you want to see the resource tags for the task. If TAGS is specified, the tags are included in the response. If this field is omitted, tags aren't included in the response.

" } }, + "TaskFilesystemType": { + "base": null, + "refs": { + "ServiceManagedEBSVolumeConfiguration$filesystemType": "

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.

", + "TaskManagedEBSVolumeConfiguration$filesystemType": "

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.

" + } + }, + "TaskManagedEBSVolumeConfiguration": { + "base": "

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.

", + "refs": { + "TaskVolumeConfiguration$managedEBSVolume": "

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.

" + } + }, + "TaskManagedEBSVolumeTerminationPolicy": { + "base": "

The termination policy for the Amazon EBS volume when the task exits. For more information, see Amazon ECS volume termination policy.

", + "refs": { + "TaskManagedEBSVolumeConfiguration$terminationPolicy": "

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.

" + } + }, "TaskOverride": { "base": "

The overrides that are associated with a task.

", "refs": { @@ -2641,6 +2746,19 @@ "Task$stopCode": "

The stop code indicating why a task was stopped. The stoppedReason might contain additional details.

For more information about stop code, see Stopped tasks error codes in the Amazon ECS User Guide.

The following are valid values:

" } }, + "TaskVolumeConfiguration": { + "base": "

Configuration settings for the task volume that was configuredAtLaunch that weren't set during RegisterTaskDef.

", + "refs": { + "TaskVolumeConfigurations$member": null + } + }, + "TaskVolumeConfigurations": { + "base": null, + "refs": { + "RunTaskRequest$volumeConfigurations": "

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.

", + "StartTaskRequest$volumeConfigurations": "

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.

" + } + }, "Tasks": { "base": null, "refs": { @@ -2834,7 +2952,7 @@ } }, "Volume": { - "base": "

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.

", + "base": "

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.

", "refs": { "VolumeList$member": null } diff --git a/models/apis/eventbridge/2015-10-07/api-2.json b/models/apis/eventbridge/2015-10-07/api-2.json index ad0e2d26d08..22bbd77b633 100644 --- a/models/apis/eventbridge/2015-10-07/api-2.json +++ b/models/apis/eventbridge/2015-10-07/api-2.json @@ -873,6 +873,12 @@ "INACTIVE" ] }, + "AppSyncParameters":{ + "type":"structure", + "members":{ + "GraphQLOperation":{"shape":"GraphQLOperation"} + } + }, "Archive":{ "type":"structure", "members":{ @@ -1906,6 +1912,12 @@ "Secondary":{"shape":"Secondary"} } }, + "GraphQLOperation":{ + "type":"string", + "max":1048576, + "min":1, + "sensitive":true + }, "HeaderKey":{ "type":"string", "max":512, @@ -3032,7 +3044,8 @@ "RedshiftDataParameters":{"shape":"RedshiftDataParameters"}, "SageMakerPipelineParameters":{"shape":"SageMakerPipelineParameters"}, "DeadLetterConfig":{"shape":"DeadLetterConfig"}, - "RetryPolicy":{"shape":"RetryPolicy"} + "RetryPolicy":{"shape":"RetryPolicy"}, + "AppSyncParameters":{"shape":"AppSyncParameters"} } }, "TargetArn":{ diff --git a/models/apis/eventbridge/2015-10-07/docs-2.json b/models/apis/eventbridge/2015-10-07/docs-2.json index 0d0fad2867c..6cfc10fea38 100644 --- a/models/apis/eventbridge/2015-10-07/docs-2.json +++ b/models/apis/eventbridge/2015-10-07/docs-2.json @@ -147,6 +147,12 @@ "UpdateApiDestinationResponse$ApiDestinationState": "

The state of the API destination that was updated.

" } }, + "AppSyncParameters": { + "base": "

Contains the GraphQL operation to be parsed and executed, if the event target is an AppSync API.

", + "refs": { + "Target$AppSyncParameters": "

Contains the GraphQL operation to be parsed and executed, if the event target is an AppSync API.

" + } + }, "Archive": { "base": "

An Archive object that contains details about an archive.

", "refs": { @@ -1033,6 +1039,12 @@ "RoutingConfig$FailoverConfig": "

The failover configuration for an endpoint. This includes what triggers failover and what happens when it's triggered.

" } }, + "GraphQLOperation": { + "base": null, + "refs": { + "AppSyncParameters$GraphQLOperation": "

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.

" + } + }, "HeaderKey": { "base": null, "refs": { @@ -1898,8 +1910,8 @@ "base": null, "refs": { "DescribeRuleResponse$State": "

Specifies whether the rule is enabled or disabled.

", - "PutRuleRequest$State": "

The state of the rule.

Valid values include:

", - "Rule$State": "

The state of the rule.

Valid values include:

" + "PutRuleRequest$State": "

Indicates whether the rule is enabled or disabled.

", + "Rule$State": "

The state of the rule.

" } }, "RunCommandParameters": { diff --git a/models/apis/iot/2015-05-28/api-2.json b/models/apis/iot/2015-05-28/api-2.json index 70ce2ad9020..26cf45d713a 100644 --- a/models/apis/iot/2015-05-28/api-2.json +++ b/models/apis/iot/2015-05-28/api-2.json @@ -3912,6 +3912,7 @@ "output":{"shape":"UpdatePackageResponse"}, "errors":[ {"shape":"ThrottlingException"}, + {"shape":"ConflictException"}, {"shape":"InternalServerException"}, {"shape":"ValidationException"}, {"shape":"ResourceNotFoundException"} @@ -3929,6 +3930,7 @@ "output":{"shape":"UpdatePackageConfigurationResponse"}, "errors":[ {"shape":"ThrottlingException"}, + {"shape":"ConflictException"}, {"shape":"InternalServerException"}, {"shape":"ValidationException"} ], @@ -3945,6 +3947,7 @@ "output":{"shape":"UpdatePackageVersionResponse"}, "errors":[ {"shape":"ThrottlingException"}, + {"shape":"ConflictException"}, {"shape":"InternalServerException"}, {"shape":"ValidationException"}, {"shape":"ResourceNotFoundException"} diff --git a/models/apis/iot/2015-05-28/docs-2.json b/models/apis/iot/2015-05-28/docs-2.json index b0445408853..90f403ec866 100644 --- a/models/apis/iot/2015-05-28/docs-2.json +++ b/models/apis/iot/2015-05-28/docs-2.json @@ -3075,10 +3075,10 @@ "DestinationPackageVersions": { "base": null, "refs": { - "CreateJobRequest$destinationPackageVersions": "

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.

", - "CreateJobTemplateRequest$destinationPackageVersions": "

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.

", - "DescribeJobTemplateResponse$destinationPackageVersions": "

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.

", - "Job$destinationPackageVersions": "

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.

" + "CreateJobRequest$destinationPackageVersions": "

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.

", + "CreateJobTemplateRequest$destinationPackageVersions": "

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.

", + "DescribeJobTemplateResponse$destinationPackageVersions": "

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.

", + "Job$destinationPackageVersions": "

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.

" } }, "DetachPolicyRequest": { diff --git a/models/apis/iotfleetwise/2021-06-17/api-2.json b/models/apis/iotfleetwise/2021-06-17/api-2.json index a355ccc9df7..3cd00c74c5b 100644 --- a/models/apis/iotfleetwise/2021-06-17/api-2.json +++ b/models/apis/iotfleetwise/2021-06-17/api-2.json @@ -2246,8 +2246,7 @@ "CAN_NETWORK_INTERFACE_INFO_IS_NULL", "OBD_NETWORK_INTERFACE_INFO_IS_NULL", "NETWORK_INTERFACE_TO_REMOVE_ASSOCIATED_WITH_SIGNALS", - "VEHICLE_MIDDLEWARE_NETWORK_INTERFACE_INFO_IS_NULL", - "CUSTOMER_DECODED_SIGNAL_NETWORK_INTERFACE_INFO_IS_NULL" + "VEHICLE_MIDDLEWARE_NETWORK_INTERFACE_INFO_IS_NULL" ] }, "NetworkInterfaceType":{ @@ -2255,8 +2254,7 @@ "enum":[ "CAN_INTERFACE", "OBD_INTERFACE", - "VEHICLE_MIDDLEWARE", - "CUSTOMER_DECODED_INTERFACE" + "VEHICLE_MIDDLEWARE" ] }, "NetworkInterfaces":{ @@ -2637,8 +2635,7 @@ "STRUCT_SIZE_MISMATCH", "NO_SIGNAL_IN_CATALOG_FOR_DECODER_SIGNAL", "SIGNAL_DECODER_INCOMPATIBLE_WITH_SIGNAL_CATALOG", - "EMPTY_MESSAGE_SIGNAL", - "CUSTOMER_DECODED_SIGNAL_INFO_IS_NULL" + "EMPTY_MESSAGE_SIGNAL" ] }, "SignalDecoderType":{ @@ -2646,8 +2643,7 @@ "enum":[ "CAN_SIGNAL", "OBD_SIGNAL", - "MESSAGE_SIGNAL", - "CUSTOMER_DECODED_SIGNAL" + "MESSAGE_SIGNAL" ] }, "SignalDecoders":{ diff --git a/models/apis/secretsmanager/2017-10-17/docs-2.json b/models/apis/secretsmanager/2017-10-17/docs-2.json index a0d98654e79..8cdb1cfec8d 100644 --- a/models/apis/secretsmanager/2017-10-17/docs-2.json +++ b/models/apis/secretsmanager/2017-10-17/docs-2.json @@ -8,7 +8,7 @@ "DeleteResourcePolicy": "

Deletes the resource-based permission policy attached to the secret. To attach a policy to a secret, use PutResourcePolicy.

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:DeleteResourcePolicy. For more information, see IAM policy actions for Secrets Manager and Authentication and access control in Secrets Manager.

", "DeleteSecret": "

Deletes a secret and all of its versions. You can specify a recovery window during which you can restore the secret. The minimum recovery window is 7 days. The default recovery window is 30 days. Secrets Manager attaches a DeletionDate stamp to the secret that specifies the end of the recovery window. At the end of the recovery window, Secrets Manager deletes the secret permanently.

You can't delete a primary secret that is replicated to other Regions. You must first delete the replicas using RemoveRegionsFromReplication, and then delete the primary secret. When you delete a replica, it is deleted immediately.

You can't directly delete a version of a secret. Instead, you remove all staging labels from the version using UpdateSecretVersionStage. This marks the version as deprecated, and then Secrets Manager can automatically delete the version in the background.

To determine whether an application still uses a secret, you can create an Amazon CloudWatch alarm to alert you to any attempts to access a secret during the recovery window. For more information, see Monitor secrets scheduled for deletion.

Secrets Manager performs the permanent secret deletion at the end of the waiting period as a background task with low priority. There is no guarantee of a specific time after the recovery window for the permanent delete to occur.

At any time before recovery window ends, you can use RestoreSecret to remove the DeletionDate and cancel the deletion of the secret.

When a secret is scheduled for deletion, you cannot retrieve the secret value. You must first cancel the deletion with RestoreSecret and then you can retrieve the secret.

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:DeleteSecret. For more information, see IAM policy actions for Secrets Manager and Authentication and access control in Secrets Manager.

", "DescribeSecret": "

Retrieves the details of a secret. It does not include the encrypted secret value. Secrets Manager only returns fields that have a value in the response.

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:DescribeSecret. For more information, see IAM policy actions for Secrets Manager and Authentication and access control in Secrets Manager.

", - "GetRandomPassword": "

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.

", + "GetRandomPassword": "

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.

", "GetResourcePolicy": "

Retrieves the JSON text of the resource-based policy document attached to the secret. For more information about permissions policies attached to a secret, see Permissions policies attached to a secret.

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:GetResourcePolicy. For more information, see IAM policy actions for Secrets Manager and Authentication and access control in Secrets Manager.

", "GetSecretValue": "

Retrieves the contents of the encrypted fields SecretString or SecretBinary from the specified version of a secret, whichever contains content.

To retrieve the values for a group of secrets, call BatchGetSecretValue.

We recommend that you cache your secret values by using client-side caching. Caching secrets improves speed and reduces your costs. For more information, see Cache secrets for your applications.

To retrieve the previous version of a secret, use VersionStage and specify AWSPREVIOUS. To revert to the previous version of a secret, call UpdateSecretVersionStage.

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:GetSecretValue. If the secret is encrypted using a customer-managed key instead of the Amazon Web Services managed key aws/secretsmanager, then you also need kms:Decrypt permissions for that key. For more information, see IAM policy actions for Secrets Manager and Authentication and access control in Secrets Manager.

", "ListSecretVersionIds": "

Lists the versions of a secret. Secrets Manager uses staging labels to indicate the different versions of a secret. For more information, see Secrets Manager concepts: Versions.

To list the secrets in the account, use ListSecrets.

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:ListSecretVersionIds. For more information, see IAM policy actions for Secrets Manager and Authentication and access control in Secrets Manager.

", @@ -16,7 +16,7 @@ "PutResourcePolicy": "

Attaches a resource-based permission policy to a secret. A resource-based policy is optional. For more information, see Authentication and access control for Secrets Manager

For information about attaching a policy in the console, see Attach a permissions policy to a secret.

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:PutResourcePolicy. For more information, see IAM policy actions for Secrets Manager and Authentication and access control in Secrets Manager.

", "PutSecretValue": "

Creates a new version with a new encrypted secret value and attaches it to the secret. The version can contain a new SecretString value or a new SecretBinary value.

We recommend you avoid calling PutSecretValue at a sustained rate of more than once every 10 minutes. When you update the secret value, Secrets Manager creates a new version of the secret. Secrets Manager removes outdated versions when there are more than 100, but it does not remove versions created less than 24 hours ago. If you call PutSecretValue more than once every 10 minutes, you create more versions than Secrets Manager removes, and you will reach the quota for secret versions.

You can specify the staging labels to attach to the new version in VersionStages. If you don't include VersionStages, then Secrets Manager automatically moves the staging label AWSCURRENT to this version. If this operation creates the first version for the secret, then Secrets Manager automatically attaches the staging label AWSCURRENT to it. If this operation moves the staging label AWSCURRENT from another version to this version, then Secrets Manager also automatically moves the staging label AWSPREVIOUS to the version that AWSCURRENT was removed from.

This operation is idempotent. If you call this operation with a ClientRequestToken that matches an existing version's VersionId, and you specify the same secret data, the operation succeeds but does nothing. However, if the secret data is different, then the operation fails because you can't modify an existing version; you can only create new ones.

Secrets Manager generates a CloudTrail log entry when you call this action. Do not include sensitive information in request parameters except SecretBinary or SecretString because it might be logged. For more information, see Logging Secrets Manager events with CloudTrail.

Required permissions: secretsmanager:PutSecretValue. For more information, see IAM policy actions for Secrets Manager and Authentication and access control in Secrets Manager.

", "RemoveRegionsFromReplication": "

For a secret that is replicated to other Regions, deletes the secret replicas from the Regions you specify.

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:RemoveRegionsFromReplication. For more information, see IAM policy actions for Secrets Manager and Authentication and access control in Secrets Manager.

", - "ReplicateSecretToRegions": "

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.

", + "ReplicateSecretToRegions": "

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.

", "RestoreSecret": "

Cancels the scheduled deletion of a secret by removing the DeletedDate time stamp. You can access a secret again after it has been restored.

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:RestoreSecret. For more information, see IAM policy actions for Secrets Manager and Authentication and access control in Secrets Manager.

", "RotateSecret": "

Configures and starts the asynchronous process of rotating the secret. For information about rotation, see Rotate secrets in the Secrets Manager User Guide. If you include the configuration parameters, the operation sets the values for the secret and then immediately starts a rotation. If you don't include the configuration parameters, the operation starts a rotation with the values already stored in the secret.

When rotation is successful, the AWSPENDING staging label might be attached to the same version as the AWSCURRENT version, or it might not be attached to any version. If the AWSPENDING staging label is present but not attached to the same version as AWSCURRENT, then any later invocation of RotateSecret assumes that a previous rotation request is still in progress and returns an error. When rotation is unsuccessful, the AWSPENDING staging label might be attached to an empty secret version. For more information, see Troubleshoot rotation in the Secrets Manager User Guide.

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:RotateSecret. For more information, see IAM policy actions for Secrets Manager and Authentication and access control in Secrets Manager. You also need lambda:InvokeFunction permissions on the rotation function. For more information, see Permissions for rotation.

", "StopReplicationToReplica": "

Removes the link between the replica secret and the primary secret and promotes the replica to a primary secret in the replica Region.

You must call this operation from the Region in which you want to promote the replica to a primary secret.

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:StopReplicationToReplica. For more information, see IAM policy actions for Secrets Manager and Authentication and access control in Secrets Manager.

", @@ -359,7 +359,7 @@ "LastRotatedDateType": { "base": null, "refs": { - "DescribeSecretResponse$LastRotatedDate": "

The last date and time that Secrets Manager rotated the secret. If the secret isn't configured for rotation, Secrets Manager returns null.

", + "DescribeSecretResponse$LastRotatedDate": "

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.

", "SecretListEntry$LastRotatedDate": "

The most recent date and time that the Secrets Manager rotation process was successfully completed. This value is null if the secret hasn't ever rotated.

" } }, @@ -419,8 +419,8 @@ "NextRotationDateType": { "base": null, "refs": { - "DescribeSecretResponse$NextRotationDate": "

The next rotation is scheduled to occur on or before this date. If the secret isn't configured for rotation, Secrets Manager returns null.

", - "SecretListEntry$NextRotationDate": "

The next rotation is scheduled to occur on or before this date. If the secret isn't configured for rotation, Secrets Manager returns null.

" + "DescribeSecretResponse$NextRotationDate": "

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.

", + "SecretListEntry$NextRotationDate": "

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.

" } }, "NextTokenType": { @@ -647,7 +647,7 @@ "base": null, "refs": { "CreateSecretRequest$SecretBinary": "

The binary data to encrypt and store in the new version of the secret. We recommend that you store your binary data in a file and then pass the contents of the file as a parameter.

Either SecretString or SecretBinary must have a value, but not both.

This parameter is not available in the Secrets Manager console.

", - "GetSecretValueResponse$SecretBinary": "

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.

", + "GetSecretValueResponse$SecretBinary": "

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.

", "PutSecretValueRequest$SecretBinary": "

The binary data to encrypt and store in the new version of the secret. To use this parameter in the command-line tools, we recommend that you store your binary data in a file and then pass the contents of the file as a parameter.

You must include SecretBinary or SecretString, but not both.

You can't access this value from the Secrets Manager console.

", "SecretValueEntry$SecretBinary": "

The decrypted secret value, if the secret value was originally provided as binary data in the form of a byte array. The parameter represents the binary data as a base64-encoded string.

", "UpdateSecretRequest$SecretBinary": "

The binary data to encrypt and store in the new version of the secret. We recommend that you store your binary data in a file and then pass the contents of the file as a parameter.

Either SecretBinary or SecretString must have a value, but not both.

You can't access this parameter in the Secrets Manager console.

" diff --git a/models/apis/secretsmanager/2017-10-17/examples-1.json b/models/apis/secretsmanager/2017-10-17/examples-1.json index d095b2df9c7..c99f65abe89 100644 --- a/models/apis/secretsmanager/2017-10-17/examples-1.json +++ b/models/apis/secretsmanager/2017-10-17/examples-1.json @@ -1,6 +1,63 @@ { "version": "1.0", "examples": { + "BatchGetSecretValue": [ + { + "input": { + "SecretIdList": [ + "MySecret1", + "MySecret2", + "MySecret3" + ] + }, + "output": { + "Errors": [ + + ], + "SecretValues": [ + { + "ARN": "®ion-arn;&asm-service-name;:us-west-2:&ExampleAccountId;:secret:MySecret1-a1b2c3", + "CreatedDate": 1700591229.801, + "Name": "MySecret1", + "SecretString": "{\"username\":\"diego_ramirez\",\"password\":\"EXAMPLE-PASSWORD\",\"engine\":\"mysql\",\"host\":\"secretsmanagertutorial.cluster.us-west-2.rds.amazonaws.com\",\"port\":3306,\"dbClusterIdentifier\":\"secretsmanagertutorial\"}", + "VersionId": "a1b2c3d4-5678-90ab-cdef-EXAMPLEaaaaa", + "VersionStages": [ + "AWSCURRENT" + ] + }, + { + "ARN": "®ion-arn;&asm-service-name;:us-west-2:&ExampleAccountId;:secret:MySecret2-a1b2c3", + "CreatedDate": 1699911394.105, + "Name": "MySecret2", + "SecretString": "{\"username\":\"akua_mansa\",\"password\":\"EXAMPLE-PASSWORD\"", + "VersionId": "a1b2c3d4-5678-90ab-cdef-EXAMPLEbbbbb", + "VersionStages": [ + "AWSCURRENT" + ] + }, + { + "ARN": "®ion-arn;&asm-service-name;:us-west-2:&ExampleAccountId;:secret:MySecret3-a1b2c3", + "CreatedDate": 1699911394.105, + "Name": "MySecret3", + "SecretString": "{\"username\":\"jie_liu\",\"password\":\"EXAMPLE-PASSWORD\"", + "VersionId": "a1b2c3d4-5678-90ab-cdef-EXAMPLEccccc", + "VersionStages": [ + "AWSCURRENT" + ] + } + ] + }, + "comments": { + "input": { + }, + "output": { + } + }, + "description": "The following example gets the values for three secrets.", + "id": "to-retrieve-the-secret-values-for-a-group-of-secrets-listed-by-name-1704846593341", + "title": "To retrieve the secret values for a group of secrets listed by name" + } + ], "CancelRotateSecret": [ { "input": { diff --git a/models/apis/workspaces/2015-04-08/docs-2.json b/models/apis/workspaces/2015-04-08/docs-2.json index 67608b77588..8a90364a9a0 100644 --- a/models/apis/workspaces/2015-04-08/docs-2.json +++ b/models/apis/workspaces/2015-04-08/docs-2.json @@ -15,7 +15,7 @@ "CreateUpdatedWorkspaceImage": "

Creates a new updated WorkSpace image based on the specified source image. The new updated WorkSpace image has the latest drivers and other updates required by the Amazon WorkSpaces components.

To determine which WorkSpace images need to be updated with the latest Amazon WorkSpaces requirements, use DescribeWorkspaceImages.

", "CreateWorkspaceBundle": "

Creates the specified WorkSpace bundle. For more information about creating WorkSpace bundles, see Create a Custom WorkSpaces Image and Bundle.

", "CreateWorkspaceImage": "

Creates a new WorkSpace image from an existing WorkSpace.

", - "CreateWorkspaces": "

Creates one or more WorkSpaces.

This operation is asynchronous and returns before the WorkSpaces are created.

", + "CreateWorkspaces": "

Creates one or more WorkSpaces.

This operation is asynchronous and returns before the WorkSpaces are created.

", "DeleteClientBranding": "

Deletes customized client branding. Client branding allows you to customize your WorkSpace's client login portal. You can tailor your login portal company logo, the support email address, support link, link to reset password, and a custom message for users trying to sign in.

After you delete your customized client branding, your login portal reverts to the default client branding.

", "DeleteConnectClientAddIn": "

Deletes a client-add-in for Amazon Connect that is configured within a directory.

", "DeleteConnectionAlias": "

Deletes the specified connection alias. For more information, see Cross-Region Redirection for Amazon WorkSpaces.

If you will no longer be using a fully qualified domain name (FQDN) as the registration code for your WorkSpaces users, you must take certain precautions to prevent potential security issues. For more information, see Security Considerations if You Stop Using Cross-Region Redirection.

To delete a connection alias that has been shared, the shared account must first disassociate the connection alias from any directories it has been associated with. Then you must unshare the connection alias from the account it has been shared with. You can delete a connection alias only after it is no longer shared with any accounts or associated with any directories.

", @@ -62,7 +62,7 @@ "ModifyWorkspaceCreationProperties": "

Modify the default properties used to create WorkSpaces.

", "ModifyWorkspaceProperties": "

Modifies the specified WorkSpace properties. For important information about how to modify the size of the root and user volumes, see Modify a WorkSpace.

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.

", "ModifyWorkspaceState": "

Sets the state of the specified WorkSpace.

To maintain a WorkSpace without being interrupted, set the WorkSpace state to ADMIN_MAINTENANCE. WorkSpaces in this state do not respond to requests to reboot, stop, start, rebuild, or restore. An AutoStop WorkSpace in this state is not stopped. Users cannot log into a WorkSpace in the ADMIN_MAINTENANCE state.

", - "RebootWorkspaces": "

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.

", + "RebootWorkspaces": "

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": "

Rebuilds the specified WorkSpace.

You cannot rebuild a WorkSpace unless its state is AVAILABLE, ERROR, UNHEALTHY, STOPPED, or REBOOTING.

Rebuilding a WorkSpace is a potentially destructive action that can result in the loss of data. For more information, see Rebuild a WorkSpace.

This operation is asynchronous and returns before the WorkSpaces have been completely rebuilt.

", "RegisterWorkspaceDirectory": "

Registers the specified directory. This operation is asynchronous and returns before the WorkSpace directory is registered. If this is the first time you are registering a directory, you will need to create the workspaces_DefaultRole role before you can register a directory. For more information, see Creating the workspaces_DefaultRole Role.

", "RestoreWorkspace": "

Restores the specified WorkSpace to its last known healthy state.

You cannot restore a WorkSpace unless its state is AVAILABLE, ERROR, UNHEALTHY, or STOPPED.

Restoring a WorkSpace is a potentially destructive action that can result in the loss of data. For more information, see Restore a WorkSpace.

This operation is asynchronous and returns before the WorkSpace is completely restored.

", @@ -1955,7 +1955,7 @@ "RunningMode": { "base": null, "refs": { - "WorkspaceProperties$RunningMode": "

The running mode. For more information, see Manage the WorkSpace Running Mode.

" + "WorkspaceProperties$RunningMode": "

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.

" } }, "RunningModeAutoStopTimeoutInMinutes": { diff --git a/models/endpoints/endpoints.json b/models/endpoints/endpoints.json index ab937372339..f81fbd9b52e 100644 --- a/models/endpoints/endpoints.json +++ b/models/endpoints/endpoints.json @@ -26547,6 +26547,15 @@ "us-iso-east-1" : { } } }, + "guardduty" : { + "defaults" : { + "protocols" : [ "https" ] + }, + "endpoints" : { + "us-iso-east-1" : { } + }, + "isRegionalized" : true + }, "health" : { "endpoints" : { "us-iso-east-1" : { } diff --git a/service/ec2/api.go b/service/ec2/api.go index 21623afa054..3ec976ab4e9 100644 --- a/service/ec2/api.go +++ b/service/ec2/api.go @@ -35610,6 +35610,10 @@ func (c *EC2) DetachVolumeRequest(input *DetachVolumeInput) (req *request.Reques // 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 (https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-detaching-volume.html) // in the Amazon Elastic Compute Cloud User Guide. // @@ -91802,10 +91806,9 @@ type DescribeCapacityBlockOfferingsInput struct { // InstanceType is a required field InstanceType *string `type:"string" required:"true"` - // 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 (https://docs.aws.amazon.com/AWSEC2/latest/APIReference/Query-Requests.html#api-pagination). MaxResults *int64 `min:"1" type:"integer"` // The token to use to retrieve the next page of results. @@ -91970,10 +91973,9 @@ type DescribeCapacityReservationFleetsInput struct { // prioritized is supported. Filters []*Filter `locationName:"Filter" locationNameList:"Filter" type:"list"` - // 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 (https://docs.aws.amazon.com/AWSEC2/latest/APIReference/Query-Requests.html#api-pagination). MaxResults *int64 `min:"1" type:"integer"` // The token to use to retrieve the next page of results. @@ -92157,10 +92159,9 @@ type DescribeCapacityReservationsInput struct { // the Capacity Reservation was created. Filters []*Filter `locationName:"Filter" locationNameList:"Filter" type:"list"` - // 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 (https://docs.aws.amazon.com/AWSEC2/latest/APIReference/Query-Requests.html#api-pagination). MaxResults *int64 `min:"1" type:"integer"` // The token to use to retrieve the next page of results. @@ -117035,6 +117036,9 @@ func (s *EbsInfo) SetNvmeSupport(v string) *EbsInfo { type EbsInstanceBlockDevice struct { _ struct{} `type:"structure"` + // The ARN of the Amazon ECS or Fargate task to which the volume is attached. + AssociatedResource *string `locationName:"associatedResource" type:"string"` + // The time stamp when the attachment initiated. AttachTime *time.Time `locationName:"attachTime" type:"timestamp"` @@ -117046,6 +117050,12 @@ type EbsInstanceBlockDevice struct { // The ID of the EBS volume. VolumeId *string `locationName:"volumeId" type:"string"` + + // 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. + VolumeOwnerId *string `locationName:"volumeOwnerId" type:"string"` } // String returns the string representation. @@ -117066,6 +117076,12 @@ func (s EbsInstanceBlockDevice) GoString() string { return s.String() } +// SetAssociatedResource sets the AssociatedResource field's value. +func (s *EbsInstanceBlockDevice) SetAssociatedResource(v string) *EbsInstanceBlockDevice { + s.AssociatedResource = &v + return s +} + // SetAttachTime sets the AttachTime field's value. func (s *EbsInstanceBlockDevice) SetAttachTime(v time.Time) *EbsInstanceBlockDevice { s.AttachTime = &v @@ -117090,6 +117106,12 @@ func (s *EbsInstanceBlockDevice) SetVolumeId(v string) *EbsInstanceBlockDevice { return s } +// SetVolumeOwnerId sets the VolumeOwnerId field's value. +func (s *EbsInstanceBlockDevice) SetVolumeOwnerId(v string) *EbsInstanceBlockDevice { + s.VolumeOwnerId = &v + return s +} + // Describes information used to set up an EBS volume specified in a block device // mapping. type EbsInstanceBlockDeviceSpecification struct { @@ -119410,6 +119432,8 @@ type EnableSnapshotBlockPublicAccessInput struct { // public sharing. However, snapshots that are already publicly shared, remain // publicly available. // + // unblocked is not a valid value for EnableSnapshotBlockPublicAccess. + // // State is a required field State *string `type:"string" required:"true" enum:"SnapshotBlockPublicAccessState"` } @@ -124312,12 +124336,9 @@ type GetCapacityReservationUsageInput struct { // it is UnauthorizedOperation. DryRun *bool `type:"boolean"` - // 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. + // 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 (https://docs.aws.amazon.com/AWSEC2/latest/APIReference/Query-Requests.html#api-pagination). MaxResults *int64 `min:"1" type:"integer"` // The token to use to retrieve the next page of results. @@ -125239,10 +125260,9 @@ type GetGroupsForCapacityReservationInput struct { // it is UnauthorizedOperation. DryRun *bool `type:"boolean"` - // 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 (https://docs.aws.amazon.com/AWSEC2/latest/APIReference/Query-Requests.html#api-pagination). MaxResults *int64 `min:"1" type:"integer"` // The token to use to retrieve the next page of results. @@ -128047,8 +128067,6 @@ type GetSpotPlacementScoresInput struct { TargetCapacity *int64 `min:"1" type:"integer" required:"true"` // The unit for the target capacity. - // - // Default: units (translates to number of instances) TargetCapacityUnitType *string `type:"string" enum:"TargetCapacityUnitType"` } @@ -135206,22 +135224,21 @@ type InstanceMetadataOptionsRequest struct { // Possible values: Integers from 1 to 64 HttpPutResponseHopLimit *int64 `type:"integer"` - // 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). + // Indicates whether 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. + // * 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 - When IMDSv2 is required, you must send a session token with - // any instance metadata retrieval requests. In this state, retrieving the + // * 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: optional + // Default: If the value of ImdsSupport for the Amazon Machine Image (AMI) for + // your instance is v2.0, the default is required. HttpTokens *string `type:"string" enum:"HttpTokensState"` // Set to enabled to allow access to instance tags from the instance metadata. @@ -135303,22 +135320,18 @@ type InstanceMetadataOptionsResponse struct { // Possible values: Integers from 1 to 64 HttpPutResponseHopLimit *int64 `locationName:"httpPutResponseHopLimit" type:"integer"` - // 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). + // Indicates whether 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. + // * 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 - When IMDSv2 is required, you must send a session token with - // any instance metadata retrieval requests. In this state, retrieving the + // * 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: optional HttpTokens *string `locationName:"httpTokens" type:"string" enum:"HttpTokensState"` // Indicates whether access to instance tags from the instance metadata is enabled @@ -148257,7 +148270,8 @@ type ModifyInstanceAttributeInput struct { // 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. + // 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 @@ -149117,22 +149131,21 @@ type ModifyInstanceMetadataOptionsInput struct { // Possible values: Integers from 1 to 64 HttpPutResponseHopLimit *int64 `type:"integer"` - // 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). + // Indicates whether 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. + // * 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 - When IMDSv2 is required, you must send a session token with - // any instance metadata retrieval requests. In this state, retrieving the + // * 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: optional + // Default: If the value of ImdsSupport for the Amazon Machine Image (AMI) for + // your instance is v2.0, the default is required. HttpTokens *string `type:"string" enum:"HttpTokensState"` // The ID of the instance. @@ -172348,6 +172361,11 @@ type ScheduledInstancesNetworkInterface struct { // 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 (http://aws.amazon.com/vpc/pricing/). AssociatePublicIpAddress *bool `type:"boolean"` // Indicates whether to delete the interface when the instance is terminated. @@ -175740,10 +175758,10 @@ type SpotFleetRequestConfigData struct { // TargetCapacity is a required field TargetCapacity *int64 `locationName:"targetCapacity" type:"integer" required:"true"` - // The unit for the target capacity. TargetCapacityUnitType can only be specified - // when InstanceRequirements is specified. + // The unit for the target capacity. You can specify this parameter only when + // using attribute-based instance type selection. // - // Default: units (translates to number of instances) + // Default: units (the number of instances) TargetCapacityUnitType *string `locationName:"targetCapacityUnitType" type:"string" enum:"TargetCapacityUnitType"` // Indicates whether running Spot Instances are terminated when the Spot Fleet @@ -177618,8 +177636,8 @@ type StateReason struct { // 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.InstanceInitiatedShutdown: The instance was shut down from the + // operating system of the instance. // // * Client.InstanceTerminated: The instance was terminated or rebooted during // AMI creation. @@ -178755,7 +178773,7 @@ func (s *TagSpecification) SetTags(v []*Tag) *TagSpecification { type TargetCapacitySpecification struct { _ struct{} `type:"structure"` - // The default TotalTargetCapacity, which is either Spot or On-Demand. + // The default target capacity type. DefaultTargetCapacityType *string `locationName:"defaultTargetCapacityType" type:"string" enum:"DefaultTargetCapacityType"` // The number of On-Demand units to request. If you specify a target capacity @@ -178766,13 +178784,10 @@ type TargetCapacitySpecification struct { // for On-Demand units, you cannot specify a target capacity for Spot units. SpotTargetCapacity *int64 `locationName:"spotTargetCapacity" type:"integer"` - // 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. TargetCapacityUnitType *string `locationName:"targetCapacityUnitType" type:"string" enum:"TargetCapacityUnitType"` - // The number of units to request, filled using DefaultTargetCapacityType. + // The number of units to request, filled the default target capacity type. TotalTargetCapacity *int64 `locationName:"totalTargetCapacity" type:"integer"` } @@ -178836,13 +178851,13 @@ func (s *TargetCapacitySpecification) SetTotalTargetCapacity(v int64) *TargetCap // 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 +// launching instances even if it hasn't met the target capacity. The MaxTotalPrice // parameters are located in OnDemandOptionsRequest (https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_OnDemandOptionsRequest) // and SpotOptionsRequest (https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_SpotOptionsRequest). type TargetCapacitySpecificationRequest struct { _ struct{} `type:"structure"` - // The default TotalTargetCapacity, which is either Spot or On-Demand. + // The default target capacity type. DefaultTargetCapacityType *string `type:"string" enum:"DefaultTargetCapacityType"` // The number of On-Demand units to request. @@ -178851,13 +178866,14 @@ type TargetCapacitySpecificationRequest struct { // The number of Spot units to request. SpotTargetCapacity *int64 `type:"integer"` - // The unit for the target capacity. TargetCapacityUnitType can only be specified - // when InstanceRequirements is specified. + // The unit for the target capacity. You can specify this parameter only when + // using attributed-based instance type selection. // - // Default: units (translates to number of instances) + // Default: units (the number of instances) TargetCapacityUnitType *string `type:"string" enum:"TargetCapacityUnitType"` - // The number of units to request, filled using DefaultTargetCapacityType. + // The number of units to request, filled using the default target capacity + // type. // // TotalTargetCapacity is a required field TotalTargetCapacity *int64 `type:"integer" required:"true"` @@ -186470,6 +186486,9 @@ func (s *Volume) SetVolumeType(v string) *Volume { type VolumeAttachment struct { _ struct{} `type:"structure"` + // The ARN of the Amazon ECS or Fargate task to which the volume is attached. + AssociatedResource *string `locationName:"associatedResource" type:"string"` + // The time stamp when the attachment initiated. AttachTime *time.Time `locationName:"attachTime" type:"timestamp"` @@ -186477,11 +186496,22 @@ type VolumeAttachment struct { DeleteOnTermination *bool `locationName:"deleteOnTermination" type:"boolean"` // The device name. + // + // If the volume is attached to a Fargate task, this parameter returns null. Device *string `locationName:"device" type:"string"` // The ID of the instance. + // + // If the volume is attached to a Fargate task, this parameter returns null. InstanceId *string `locationName:"instanceId" type:"string"` + // 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. + InstanceOwningService *string `locationName:"instanceOwningService" type:"string"` + // The attachment state of the volume. State *string `locationName:"status" type:"string" enum:"VolumeAttachmentState"` @@ -186507,6 +186537,12 @@ func (s VolumeAttachment) GoString() string { return s.String() } +// SetAssociatedResource sets the AssociatedResource field's value. +func (s *VolumeAttachment) SetAssociatedResource(v string) *VolumeAttachment { + s.AssociatedResource = &v + return s +} + // SetAttachTime sets the AttachTime field's value. func (s *VolumeAttachment) SetAttachTime(v time.Time) *VolumeAttachment { s.AttachTime = &v @@ -186531,6 +186567,12 @@ func (s *VolumeAttachment) SetInstanceId(v string) *VolumeAttachment { return s } +// SetInstanceOwningService sets the InstanceOwningService field's value. +func (s *VolumeAttachment) SetInstanceOwningService(v string) *VolumeAttachment { + s.InstanceOwningService = &v + return s +} + // SetState sets the State field's value. func (s *VolumeAttachment) SetState(v string) *VolumeAttachment { s.State = &v diff --git a/service/ecs/api.go b/service/ecs/api.go index e21bf50a092..28d3bca963b 100644 --- a/service/ecs/api.go +++ b/service/ecs/api.go @@ -283,6 +283,12 @@ func (c *ECS) CreateServiceRequest(input *CreateServiceInput) (req *request.Requ // service. For more information, see Service load balancing (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-load-balancing.html) // 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 (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ebs-volumes.html#ebs-volume-types) +// 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 @@ -4648,6 +4654,11 @@ func (c *ECS) RunTaskRequest(input *RunTaskInput) (req *request.Request, output // 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 (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ebs-volumes.html#ebs-volume-types) +// 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 @@ -4803,6 +4814,11 @@ func (c *ECS) StartTaskRequest(input *StartTaskInput) (req *request.Request, out // see Scheduling Tasks (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/scheduling_tasks.html) // 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 (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ebs-volumes.html#ebs-volume-types) +// in the Amazon Elastic Container Service Developer Guide. +// // Returns awserr.Error for service API and SDK errors. Use runtime type assertions // with awserr.Error's Code and Message methods to get detailed information about // the error. @@ -4829,6 +4845,9 @@ func (c *ECS) StartTaskRequest(input *StartTaskInput) (req *request.Request, out // The specified cluster wasn't found. You can view your available clusters // with ListClusters. Amazon ECS clusters are Region specific. // +// - UnsupportedFeatureException +// The specified task isn't supported in this Region. +// // See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/StartTask func (c *ECS) StartTask(input *StartTaskInput) (*StartTaskOutput, error) { req, out := c.StartTaskRequest(input) @@ -6034,6 +6053,16 @@ func (c *ECS) UpdateServiceRequest(input *UpdateServiceInput) (req *request.Requ // 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 (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ebs-volumes.html#ebs-volume-types) +// 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 (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ebs-volumes.html#ebs-volume-types) +// 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 @@ -6053,7 +6082,12 @@ func (c *ECS) UpdateServiceRequest(input *UpdateServiceInput) (req *request.Requ // 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 +// 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 (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ebs-volumes.html#ebs-volume-types) +// 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. @@ -6177,6 +6211,9 @@ func (c *ECS) UpdateServiceRequest(input *UpdateServiceInput) (req *request.Requ // - NamespaceNotFoundException // The specified namespace wasn't found. // +// - UnsupportedFeatureException +// The specified task isn't supported in this Region. +// // See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/UpdateService func (c *ECS) UpdateService(input *UpdateServiceInput) (*UpdateServiceOutput, error) { req, out := c.UpdateServiceRequest(input) @@ -6624,9 +6661,17 @@ func (s *AccessDeniedException) RequestID() string { type Attachment struct { _ struct{} `type:"structure"` - // 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. + // 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. Details []*KeyValuePair `locationName:"details" type:"list"` // The unique identifier for the attachment. @@ -6636,7 +6681,8 @@ type Attachment struct { // ATTACHED, DETACHING, DETACHED, DELETED, and FAILED. Status *string `locationName:"status" type:"string"` - // The type of the attachment, such as ElasticNetworkInterface. + // The type of the attachment, such as ElasticNetworkInterface, Service Connect, + // and AmazonElasticBlockStorage. Type *string `locationName:"type" type:"string"` } @@ -6906,8 +6952,6 @@ type AutoScalingGroupProvider struct { // 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. ManagedDraining *string `locationName:"managedDraining" type:"string" enum:"ManagedDraining"` // The managed scaling settings for the Auto Scaling group capacity provider. @@ -6999,8 +7043,6 @@ type AutoScalingGroupProviderUpdate struct { // 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. ManagedDraining *string `locationName:"managedDraining" type:"string" enum:"ManagedDraining"` // The managed scaling settings for the Auto Scaling group capacity provider. @@ -10803,6 +10845,11 @@ type CreateServiceInput struct { // For more information about deployment types, see Amazon ECS deployment types // (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/deployment-types.html). TaskDefinition *string `locationName:"taskDefinition" type:"string"` + + // 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. + VolumeConfigurations []*ServiceVolumeConfiguration `locationName:"volumeConfigurations" type:"list"` } // String returns the string representation. @@ -10869,6 +10916,16 @@ func (s *CreateServiceInput) Validate() error { } } } + if s.VolumeConfigurations != nil { + for i, v := range s.VolumeConfigurations { + if v == nil { + continue + } + if err := v.Validate(); err != nil { + invalidParams.AddNested(fmt.Sprintf("%s[%v]", "VolumeConfigurations", i), err.(request.ErrInvalidParams)) + } + } + } if invalidParams.Len() > 0 { return invalidParams @@ -11014,6 +11071,12 @@ func (s *CreateServiceInput) SetTaskDefinition(v string) *CreateServiceInput { return s } +// SetVolumeConfigurations sets the VolumeConfigurations field's value. +func (s *CreateServiceInput) SetVolumeConfigurations(v []*ServiceVolumeConfiguration) *CreateServiceInput { + s.VolumeConfigurations = v + return s +} + type CreateServiceOutput struct { _ struct{} `type:"structure"` @@ -12113,6 +12176,12 @@ type Deployment struct { // The Unix timestamp for the time when the service deployment was last updated. UpdatedAt *time.Time `locationName:"updatedAt" type:"timestamp"` + + // The details of the volume that was configuredAtLaunch. You can configure + // different settings like the size, throughput, volumeType, and ecryption in + // ServiceManagedEBSVolumeConfiguration (https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_ServiceManagedEBSVolumeConfiguration.html). + // The name of the volume must match the name from the task definition. + VolumeConfigurations []*ServiceVolumeConfiguration `locationName:"volumeConfigurations" type:"list"` } // String returns the string representation. @@ -12241,6 +12310,12 @@ func (s *Deployment) SetUpdatedAt(v time.Time) *Deployment { return s } +// SetVolumeConfigurations sets the VolumeConfigurations field's value. +func (s *Deployment) SetVolumeConfigurations(v []*ServiceVolumeConfiguration) *Deployment { + s.VolumeConfigurations = v + return s +} + // One of the methods which provide a way for you to quickly identify when a // deployment has failed, and then to optionally roll back the failure to the // last working deployment. @@ -13864,6 +13939,84 @@ func (s *DockerVolumeConfiguration) SetScope(v string) *DockerVolumeConfiguratio return s } +// The tag specifications of an Amazon EBS volume. +type EBSTagSpecification struct { + _ struct{} `type:"structure"` + + // 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. + PropagateTags *string `locationName:"propagateTags" type:"string" enum:"PropagateTags"` + + // The type of volume resource. + // + // ResourceType is a required field + ResourceType *string `locationName:"resourceType" type:"string" required:"true" enum:"EBSResourceType"` + + // The tags applied to this Amazon EBS volume. AmazonECSCreated and AmazonECSManaged + // are reserved tags that can't be used. + Tags []*Tag `locationName:"tags" type:"list"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s EBSTagSpecification) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s EBSTagSpecification) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *EBSTagSpecification) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "EBSTagSpecification"} + if s.ResourceType == nil { + invalidParams.Add(request.NewErrParamRequired("ResourceType")) + } + if s.Tags != nil { + for i, v := range s.Tags { + if v == nil { + continue + } + if err := v.Validate(); err != nil { + invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams)) + } + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetPropagateTags sets the PropagateTags field's value. +func (s *EBSTagSpecification) SetPropagateTags(v string) *EBSTagSpecification { + s.PropagateTags = &v + return s +} + +// SetResourceType sets the ResourceType field's value. +func (s *EBSTagSpecification) SetResourceType(v string) *EBSTagSpecification { + s.ResourceType = &v + return s +} + +// SetTags sets the Tags field's value. +func (s *EBSTagSpecification) SetTags(v []*Tag) *EBSTagSpecification { + s.Tags = v + return s +} + // The authorization configuration details for the Amazon EFS file system. type EFSAuthorizationConfig struct { _ struct{} `type:"structure"` @@ -20420,6 +20573,12 @@ type RunTaskInput struct { // // TaskDefinition is a required field TaskDefinition *string `locationName:"taskDefinition" type:"string" required:"true"` + + // The details of the volume that was configuredAtLaunch. You can configure + // the size, volumeType, IOPS, throughput, snapshot and encryption in in TaskManagedEBSVolumeConfiguration + // (https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_TaskManagedEBSVolumeConfiguration.html). + // The name of the volume must match the name from the task definition. + VolumeConfigurations []*TaskVolumeConfiguration `locationName:"volumeConfigurations" type:"list"` } // String returns the string representation. @@ -20476,6 +20635,16 @@ func (s *RunTaskInput) Validate() error { } } } + if s.VolumeConfigurations != nil { + for i, v := range s.VolumeConfigurations { + if v == nil { + continue + } + if err := v.Validate(); err != nil { + invalidParams.AddNested(fmt.Sprintf("%s[%v]", "VolumeConfigurations", i), err.(request.ErrInvalidParams)) + } + } + } if invalidParams.Len() > 0 { return invalidParams @@ -20591,6 +20760,12 @@ func (s *RunTaskInput) SetTaskDefinition(v string) *RunTaskInput { return s } +// SetVolumeConfigurations sets the VolumeConfigurations field's value. +func (s *RunTaskInput) SetVolumeConfigurations(v []*TaskVolumeConfiguration) *RunTaskInput { + s.VolumeConfigurations = v + return s +} + type RunTaskOutput struct { _ struct{} `type:"structure"` @@ -21715,6 +21890,233 @@ func (s *ServiceEvent) SetMessage(v string) *ServiceEvent { return s } +// 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. +type ServiceManagedEBSVolumeConfiguration struct { + _ struct{} `type:"structure"` + + // 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 (https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateVolume.html) + // in the Amazon EC2 API Reference. + Encrypted *bool `locationName:"encrypted" type:"boolean"` + + // 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. + FilesystemType *string `locationName:"filesystemType" type:"string" enum:"TaskFilesystemType"` + + // 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 (https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateVolume.html) + // in the Amazon EC2 API Reference. + Iops *int64 `locationName:"iops" type:"integer"` + + // 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 + // (https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateVolume.html) + // 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. + KmsKeyId *string `locationName:"kmsKeyId" type:"string"` + + // 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 (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/infrastructure_IAM_role.html) + // in the Amazon ECS Developer Guide. + // + // RoleArn is a required field + RoleArn *string `locationName:"roleArn" type:"string" required:"true"` + + // 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 (https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateVolume.html) + // 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 + SizeInGiB *int64 `locationName:"sizeInGiB" type:"integer"` + + // 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 (https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateVolume.html) + // in the Amazon EC2 API Reference. + SnapshotId *string `locationName:"snapshotId" type:"string"` + + // 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 (https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateVolume.html) + // in the Amazon EC2 API Reference. + TagSpecifications []*EBSTagSpecification `locationName:"tagSpecifications" type:"list"` + + // 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 (https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateVolume.html) + // in the Amazon EC2 API Reference. + // + // This parameter is only supported for the gp3 volume type. + Throughput *int64 `locationName:"throughput" type:"integer"` + + // The volume type. This parameter maps 1:1 with the VolumeType parameter of + // the CreateVolume API (https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateVolume.html) + // in the Amazon EC2 API Reference. For more information, see Amazon EBS volume + // types (https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-volume-types.html) + // 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. + VolumeType *string `locationName:"volumeType" type:"string"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ServiceManagedEBSVolumeConfiguration) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ServiceManagedEBSVolumeConfiguration) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *ServiceManagedEBSVolumeConfiguration) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "ServiceManagedEBSVolumeConfiguration"} + if s.RoleArn == nil { + invalidParams.Add(request.NewErrParamRequired("RoleArn")) + } + if s.TagSpecifications != nil { + for i, v := range s.TagSpecifications { + if v == nil { + continue + } + if err := v.Validate(); err != nil { + invalidParams.AddNested(fmt.Sprintf("%s[%v]", "TagSpecifications", i), err.(request.ErrInvalidParams)) + } + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetEncrypted sets the Encrypted field's value. +func (s *ServiceManagedEBSVolumeConfiguration) SetEncrypted(v bool) *ServiceManagedEBSVolumeConfiguration { + s.Encrypted = &v + return s +} + +// SetFilesystemType sets the FilesystemType field's value. +func (s *ServiceManagedEBSVolumeConfiguration) SetFilesystemType(v string) *ServiceManagedEBSVolumeConfiguration { + s.FilesystemType = &v + return s +} + +// SetIops sets the Iops field's value. +func (s *ServiceManagedEBSVolumeConfiguration) SetIops(v int64) *ServiceManagedEBSVolumeConfiguration { + s.Iops = &v + return s +} + +// SetKmsKeyId sets the KmsKeyId field's value. +func (s *ServiceManagedEBSVolumeConfiguration) SetKmsKeyId(v string) *ServiceManagedEBSVolumeConfiguration { + s.KmsKeyId = &v + return s +} + +// SetRoleArn sets the RoleArn field's value. +func (s *ServiceManagedEBSVolumeConfiguration) SetRoleArn(v string) *ServiceManagedEBSVolumeConfiguration { + s.RoleArn = &v + return s +} + +// SetSizeInGiB sets the SizeInGiB field's value. +func (s *ServiceManagedEBSVolumeConfiguration) SetSizeInGiB(v int64) *ServiceManagedEBSVolumeConfiguration { + s.SizeInGiB = &v + return s +} + +// SetSnapshotId sets the SnapshotId field's value. +func (s *ServiceManagedEBSVolumeConfiguration) SetSnapshotId(v string) *ServiceManagedEBSVolumeConfiguration { + s.SnapshotId = &v + return s +} + +// SetTagSpecifications sets the TagSpecifications field's value. +func (s *ServiceManagedEBSVolumeConfiguration) SetTagSpecifications(v []*EBSTagSpecification) *ServiceManagedEBSVolumeConfiguration { + s.TagSpecifications = v + return s +} + +// SetThroughput sets the Throughput field's value. +func (s *ServiceManagedEBSVolumeConfiguration) SetThroughput(v int64) *ServiceManagedEBSVolumeConfiguration { + s.Throughput = &v + return s +} + +// SetVolumeType sets the VolumeType field's value. +func (s *ServiceManagedEBSVolumeConfiguration) SetVolumeType(v string) *ServiceManagedEBSVolumeConfiguration { + s.VolumeType = &v + return s +} + // The specified service isn't active. You can't update a service that's inactive. // If you have previously deleted a service, you can re-create it with CreateService. type ServiceNotActiveException struct { @@ -21927,6 +22329,73 @@ func (s *ServiceRegistry) SetRegistryArn(v string) *ServiceRegistry { return s } +// 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. +type ServiceVolumeConfiguration struct { + _ struct{} `type:"structure"` + + // 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. + ManagedEBSVolume *ServiceManagedEBSVolumeConfiguration `locationName:"managedEBSVolume" type:"structure"` + + // The name of the volume. This value must match the volume name from the Volume + // object in the task definition. + // + // Name is a required field + Name *string `locationName:"name" type:"string" required:"true"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ServiceVolumeConfiguration) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ServiceVolumeConfiguration) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *ServiceVolumeConfiguration) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "ServiceVolumeConfiguration"} + if s.Name == nil { + invalidParams.Add(request.NewErrParamRequired("Name")) + } + if s.ManagedEBSVolume != nil { + if err := s.ManagedEBSVolume.Validate(); err != nil { + invalidParams.AddNested("ManagedEBSVolume", err.(request.ErrInvalidParams)) + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetManagedEBSVolume sets the ManagedEBSVolume field's value. +func (s *ServiceVolumeConfiguration) SetManagedEBSVolume(v *ServiceManagedEBSVolumeConfiguration) *ServiceVolumeConfiguration { + s.ManagedEBSVolume = v + return s +} + +// SetName sets the Name field's value. +func (s *ServiceVolumeConfiguration) SetName(v string) *ServiceVolumeConfiguration { + s.Name = &v + return s +} + // The details for the execute command session. type Session struct { _ struct{} `type:"structure"` @@ -22144,6 +22613,12 @@ type StartTaskInput struct { // // TaskDefinition is a required field TaskDefinition *string `locationName:"taskDefinition" type:"string" required:"true"` + + // The details of the volume that was configuredAtLaunch. You can configure + // the size, volumeType, IOPS, throughput, snapshot and encryption in TaskManagedEBSVolumeConfiguration + // (https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_TaskManagedEBSVolumeConfiguration.html). + // The name of the volume must match the name from the task definition. + VolumeConfigurations []*TaskVolumeConfiguration `locationName:"volumeConfigurations" type:"list"` } // String returns the string representation. @@ -22193,6 +22668,16 @@ func (s *StartTaskInput) Validate() error { } } } + if s.VolumeConfigurations != nil { + for i, v := range s.VolumeConfigurations { + if v == nil { + continue + } + if err := v.Validate(); err != nil { + invalidParams.AddNested(fmt.Sprintf("%s[%v]", "VolumeConfigurations", i), err.(request.ErrInvalidParams)) + } + } + } if invalidParams.Len() > 0 { return invalidParams @@ -22272,6 +22757,12 @@ func (s *StartTaskInput) SetTaskDefinition(v string) *StartTaskInput { return s } +// SetVolumeConfigurations sets the VolumeConfigurations field's value. +func (s *StartTaskInput) SetVolumeConfigurations(v []*TaskVolumeConfiguration) *StartTaskInput { + s.VolumeConfigurations = v + return s +} + type StartTaskOutput struct { _ struct{} `type:"structure"` @@ -24200,6 +24691,298 @@ func (s *TaskDefinitionPlacementConstraint) SetType(v string) *TaskDefinitionPla return s } +// 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. +type TaskManagedEBSVolumeConfiguration struct { + _ struct{} `type:"structure"` + + // 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 (https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateVolume.html) + // in the Amazon EC2 API Reference. + Encrypted *bool `locationName:"encrypted" type:"boolean"` + + // 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. + FilesystemType *string `locationName:"filesystemType" type:"string" enum:"TaskFilesystemType"` + + // 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 (https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateVolume.html) + // in the Amazon EC2 API Reference. + Iops *int64 `locationName:"iops" type:"integer"` + + // 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 + // (https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateVolume.html) + // 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. + KmsKeyId *string `locationName:"kmsKeyId" type:"string"` + + // 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 (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/infrastructure_IAM_role.html) + // in the Amazon ECS Developer Guide. + // + // RoleArn is a required field + RoleArn *string `locationName:"roleArn" type:"string" required:"true"` + + // 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 (https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateVolume.html) + // 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 + SizeInGiB *int64 `locationName:"sizeInGiB" type:"integer"` + + // 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 (https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateVolume.html) + // in the Amazon EC2 API Reference. + SnapshotId *string `locationName:"snapshotId" type:"string"` + + // 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 (https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateVolume.html) + // in the Amazon EC2 API Reference. + TagSpecifications []*EBSTagSpecification `locationName:"tagSpecifications" type:"list"` + + // 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. + TerminationPolicy *TaskManagedEBSVolumeTerminationPolicy `locationName:"terminationPolicy" type:"structure"` + + // 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 (https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateVolume.html) + // in the Amazon EC2 API Reference. + // + // This parameter is only supported for the gp3 volume type. + Throughput *int64 `locationName:"throughput" type:"integer"` + + // The volume type. This parameter maps 1:1 with the VolumeType parameter of + // the CreateVolume API (https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateVolume.html) + // in the Amazon EC2 API Reference. For more information, see Amazon EBS volume + // types (https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-volume-types.html) + // 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. + VolumeType *string `locationName:"volumeType" type:"string"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s TaskManagedEBSVolumeConfiguration) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s TaskManagedEBSVolumeConfiguration) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *TaskManagedEBSVolumeConfiguration) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "TaskManagedEBSVolumeConfiguration"} + if s.RoleArn == nil { + invalidParams.Add(request.NewErrParamRequired("RoleArn")) + } + if s.TagSpecifications != nil { + for i, v := range s.TagSpecifications { + if v == nil { + continue + } + if err := v.Validate(); err != nil { + invalidParams.AddNested(fmt.Sprintf("%s[%v]", "TagSpecifications", i), err.(request.ErrInvalidParams)) + } + } + } + if s.TerminationPolicy != nil { + if err := s.TerminationPolicy.Validate(); err != nil { + invalidParams.AddNested("TerminationPolicy", err.(request.ErrInvalidParams)) + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetEncrypted sets the Encrypted field's value. +func (s *TaskManagedEBSVolumeConfiguration) SetEncrypted(v bool) *TaskManagedEBSVolumeConfiguration { + s.Encrypted = &v + return s +} + +// SetFilesystemType sets the FilesystemType field's value. +func (s *TaskManagedEBSVolumeConfiguration) SetFilesystemType(v string) *TaskManagedEBSVolumeConfiguration { + s.FilesystemType = &v + return s +} + +// SetIops sets the Iops field's value. +func (s *TaskManagedEBSVolumeConfiguration) SetIops(v int64) *TaskManagedEBSVolumeConfiguration { + s.Iops = &v + return s +} + +// SetKmsKeyId sets the KmsKeyId field's value. +func (s *TaskManagedEBSVolumeConfiguration) SetKmsKeyId(v string) *TaskManagedEBSVolumeConfiguration { + s.KmsKeyId = &v + return s +} + +// SetRoleArn sets the RoleArn field's value. +func (s *TaskManagedEBSVolumeConfiguration) SetRoleArn(v string) *TaskManagedEBSVolumeConfiguration { + s.RoleArn = &v + return s +} + +// SetSizeInGiB sets the SizeInGiB field's value. +func (s *TaskManagedEBSVolumeConfiguration) SetSizeInGiB(v int64) *TaskManagedEBSVolumeConfiguration { + s.SizeInGiB = &v + return s +} + +// SetSnapshotId sets the SnapshotId field's value. +func (s *TaskManagedEBSVolumeConfiguration) SetSnapshotId(v string) *TaskManagedEBSVolumeConfiguration { + s.SnapshotId = &v + return s +} + +// SetTagSpecifications sets the TagSpecifications field's value. +func (s *TaskManagedEBSVolumeConfiguration) SetTagSpecifications(v []*EBSTagSpecification) *TaskManagedEBSVolumeConfiguration { + s.TagSpecifications = v + return s +} + +// SetTerminationPolicy sets the TerminationPolicy field's value. +func (s *TaskManagedEBSVolumeConfiguration) SetTerminationPolicy(v *TaskManagedEBSVolumeTerminationPolicy) *TaskManagedEBSVolumeConfiguration { + s.TerminationPolicy = v + return s +} + +// SetThroughput sets the Throughput field's value. +func (s *TaskManagedEBSVolumeConfiguration) SetThroughput(v int64) *TaskManagedEBSVolumeConfiguration { + s.Throughput = &v + return s +} + +// SetVolumeType sets the VolumeType field's value. +func (s *TaskManagedEBSVolumeConfiguration) SetVolumeType(v string) *TaskManagedEBSVolumeConfiguration { + s.VolumeType = &v + return s +} + +// The termination policy for the Amazon EBS volume when the task exits. For +// more information, see Amazon ECS volume termination policy (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ebs-volumes.html#ebs-volume-types). +type TaskManagedEBSVolumeTerminationPolicy struct { + _ struct{} `type:"structure"` + + // 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. + // + // DeleteOnTermination is a required field + DeleteOnTermination *bool `locationName:"deleteOnTermination" type:"boolean" required:"true"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s TaskManagedEBSVolumeTerminationPolicy) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s TaskManagedEBSVolumeTerminationPolicy) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *TaskManagedEBSVolumeTerminationPolicy) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "TaskManagedEBSVolumeTerminationPolicy"} + if s.DeleteOnTermination == nil { + invalidParams.Add(request.NewErrParamRequired("DeleteOnTermination")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetDeleteOnTermination sets the DeleteOnTermination field's value. +func (s *TaskManagedEBSVolumeTerminationPolicy) SetDeleteOnTermination(v bool) *TaskManagedEBSVolumeTerminationPolicy { + s.DeleteOnTermination = &v + return s +} + // The overrides that are associated with a task. type TaskOverride struct { _ struct{} `type:"structure"` @@ -24708,6 +25491,72 @@ func (s *TaskSetNotFoundException) RequestID() string { return s.RespMetadata.RequestID } +// Configuration settings for the task volume that was configuredAtLaunch that +// weren't set during RegisterTaskDef. +type TaskVolumeConfiguration struct { + _ struct{} `type:"structure"` + + // 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. + ManagedEBSVolume *TaskManagedEBSVolumeConfiguration `locationName:"managedEBSVolume" type:"structure"` + + // The name of the volume. This value must match the volume name from the Volume + // object in the task definition. + // + // Name is a required field + Name *string `locationName:"name" type:"string" required:"true"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s TaskVolumeConfiguration) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s TaskVolumeConfiguration) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *TaskVolumeConfiguration) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "TaskVolumeConfiguration"} + if s.Name == nil { + invalidParams.Add(request.NewErrParamRequired("Name")) + } + if s.ManagedEBSVolume != nil { + if err := s.ManagedEBSVolume.Validate(); err != nil { + invalidParams.AddNested("ManagedEBSVolume", err.(request.ErrInvalidParams)) + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetManagedEBSVolume sets the ManagedEBSVolume field's value. +func (s *TaskVolumeConfiguration) SetManagedEBSVolume(v *TaskManagedEBSVolumeConfiguration) *TaskVolumeConfiguration { + s.ManagedEBSVolume = v + return s +} + +// SetName sets the Name field's value. +func (s *TaskVolumeConfiguration) SetName(v string) *TaskVolumeConfiguration { + s.Name = &v + return s +} + // The container path, mount options, and size of the tmpfs mount. type Tmpfs struct { _ struct{} `type:"structure"` @@ -25783,6 +26632,14 @@ type UpdateServiceInput struct { // ECS spawns a task with the new version of the task definition and then stops // an old task after the new version is running. TaskDefinition *string `locationName:"taskDefinition" type:"string"` + + // The details of the volume that was configuredAtLaunch. You can configure + // the size, volumeType, IOPS, throughput, snapshot and encryption in ServiceManagedEBSVolumeConfiguration + // (https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_ServiceManagedEBSVolumeConfiguration.html). + // 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. + VolumeConfigurations []*ServiceVolumeConfiguration `locationName:"volumeConfigurations" type:"list"` } // String returns the string representation. @@ -25834,6 +26691,16 @@ func (s *UpdateServiceInput) Validate() error { invalidParams.AddNested("ServiceConnectConfiguration", err.(request.ErrInvalidParams)) } } + if s.VolumeConfigurations != nil { + for i, v := range s.VolumeConfigurations { + if v == nil { + continue + } + if err := v.Validate(); err != nil { + invalidParams.AddNested(fmt.Sprintf("%s[%v]", "VolumeConfigurations", i), err.(request.ErrInvalidParams)) + } + } + } if invalidParams.Len() > 0 { return invalidParams @@ -25949,6 +26816,12 @@ func (s *UpdateServiceInput) SetTaskDefinition(v string) *UpdateServiceInput { return s } +// SetVolumeConfigurations sets the VolumeConfigurations field's value. +func (s *UpdateServiceInput) SetVolumeConfigurations(v []*ServiceVolumeConfiguration) *UpdateServiceInput { + s.VolumeConfigurations = v + return s +} + type UpdateServiceOutput struct { _ struct{} `type:"structure"` @@ -26401,16 +27274,27 @@ func (s *VersionInfo) SetDockerVersion(v string) *VersionInfo { return s } -// 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 (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/using_data_volumes.html). +// 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 (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/using_data_volumes.html). type Volume struct { _ struct{} `type:"structure"` + // 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. + ConfiguredAtLaunch *bool `locationName:"configuredAtLaunch" type:"boolean"` + // This parameter is specified when you use Docker volumes. // // Windows containers only support the use of the local driver. To use bind @@ -26441,10 +27325,16 @@ type Volume struct { Host *HostVolumeProperties `locationName:"host" type:"structure"` // 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. + // 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. // - // This is required wwhen you use an Amazon EFS volume. + // 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. Name *string `locationName:"name" type:"string"` } @@ -26486,6 +27376,12 @@ func (s *Volume) Validate() error { return nil } +// SetConfiguredAtLaunch sets the ConfiguredAtLaunch field's value. +func (s *Volume) SetConfiguredAtLaunch(v bool) *Volume { + s.ConfiguredAtLaunch = &v + return s +} + // SetDockerVolumeConfiguration sets the DockerVolumeConfiguration field's value. func (s *Volume) SetDockerVolumeConfiguration(v *DockerVolumeConfiguration) *Volume { s.DockerVolumeConfiguration = v @@ -26928,6 +27824,18 @@ func DeviceCgroupPermission_Values() []string { } } +const ( + // EBSResourceTypeVolume is a EBSResourceType enum value + EBSResourceTypeVolume = "volume" +) + +// EBSResourceType_Values returns all elements of the EBSResourceType enum +func EBSResourceType_Values() []string { + return []string{ + EBSResourceTypeVolume, + } +} + const ( // EFSAuthorizationConfigIAMEnabled is a EFSAuthorizationConfigIAM enum value EFSAuthorizationConfigIAMEnabled = "ENABLED" @@ -27616,6 +28524,26 @@ func TaskField_Values() []string { } } +const ( + // TaskFilesystemTypeExt3 is a TaskFilesystemType enum value + TaskFilesystemTypeExt3 = "ext3" + + // TaskFilesystemTypeExt4 is a TaskFilesystemType enum value + TaskFilesystemTypeExt4 = "ext4" + + // TaskFilesystemTypeXfs is a TaskFilesystemType enum value + TaskFilesystemTypeXfs = "xfs" +) + +// TaskFilesystemType_Values returns all elements of the TaskFilesystemType enum +func TaskFilesystemType_Values() []string { + return []string{ + TaskFilesystemTypeExt3, + TaskFilesystemTypeExt4, + TaskFilesystemTypeXfs, + } +} + const ( // TaskSetFieldTags is a TaskSetField enum value TaskSetFieldTags = "TAGS" diff --git a/service/ecs/examples_test.go b/service/ecs/examples_test.go index 286582b4735..24ecf04fc7f 100644 --- a/service/ecs/examples_test.go +++ b/service/ecs/examples_test.go @@ -1278,6 +1278,8 @@ func ExampleECS_UpdateService_shared00() { fmt.Println(ecs.ErrCodeAccessDeniedException, aerr.Error()) case ecs.ErrCodeNamespaceNotFoundException: fmt.Println(ecs.ErrCodeNamespaceNotFoundException, aerr.Error()) + case ecs.ErrCodeUnsupportedFeatureException: + fmt.Println(ecs.ErrCodeUnsupportedFeatureException, aerr.Error()) default: fmt.Println(aerr.Error()) } @@ -1325,6 +1327,8 @@ func ExampleECS_UpdateService_shared01() { fmt.Println(ecs.ErrCodeAccessDeniedException, aerr.Error()) case ecs.ErrCodeNamespaceNotFoundException: fmt.Println(ecs.ErrCodeNamespaceNotFoundException, aerr.Error()) + case ecs.ErrCodeUnsupportedFeatureException: + fmt.Println(ecs.ErrCodeUnsupportedFeatureException, aerr.Error()) default: fmt.Println(aerr.Error()) } diff --git a/service/eventbridge/api.go b/service/eventbridge/api.go index a2851d796a8..76837f66f6f 100644 --- a/service/eventbridge/api.go +++ b/service/eventbridge/api.go @@ -5425,6 +5425,60 @@ func (s *ApiDestination) SetName(v string) *ApiDestination { return s } +// Contains the GraphQL operation to be parsed and executed, if the event target +// is an AppSync API. +type AppSyncParameters struct { + _ struct{} `type:"structure"` + + // The GraphQL operation; that is, the query, mutation, or subscription to be + // parsed and executed by the GraphQL service. + // + // For more information, see Operations (https://docs.aws.amazon.com/appsync/latest/devguide/graphql-architecture.html#graphql-operations) + // in the AppSync User Guide. + // + // GraphQLOperation is a sensitive parameter and its value will be + // replaced with "sensitive" in string returned by AppSyncParameters's + // String and GoString methods. + GraphQLOperation *string `min:"1" type:"string" sensitive:"true"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s AppSyncParameters) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s AppSyncParameters) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *AppSyncParameters) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "AppSyncParameters"} + if s.GraphQLOperation != nil && len(*s.GraphQLOperation) < 1 { + invalidParams.Add(request.NewErrParamMinLen("GraphQLOperation", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetGraphQLOperation sets the GraphQLOperation field's value. +func (s *AppSyncParameters) SetGraphQLOperation(v string) *AppSyncParameters { + s.GraphQLOperation = &v + return s +} + // An Archive object that contains details about an archive. type Archive struct { _ struct{} `type:"structure"` @@ -14324,29 +14378,7 @@ type PutRuleInput struct { // The scheduling expression. For example, "cron(0 20 * * ? *)" or "rate(5 minutes)". ScheduleExpression *string `type:"string"` - // 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 (https://docs.aws.amazon.com/awscloudtrail/latest/userguide/logging-management-events-with-cloudtrail.html#logging-management-events) - // in the CloudTrail User Guide, and Filtering management events from Amazon - // Web Services services (https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-service-event.html#eb-service-event-cloudtrail) - // in the Amazon EventBridge User Guide. This value is only valid for rules - // on the default (https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-what-is-how-it-works-concepts.html#eb-bus-concepts-buses) - // event bus or custom event buses (https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-create-event-bus.html). - // It does not apply to partner event buses (https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-saas.html). + // Indicates whether the rule is enabled or disabled. State *string `type:"string" enum:"RuleState"` // The list of key-value pairs to associate with the rule. @@ -15545,28 +15577,6 @@ type Rule struct { ScheduleExpression *string `type:"string"` // 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 (https://docs.aws.amazon.com/awscloudtrail/latest/userguide/logging-management-events-with-cloudtrail.html#logging-management-events) - // in the CloudTrail User Guide, and Filtering management events from Amazon - // Web Services services (https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-service-event.html#eb-service-event-cloudtrail) - // in the Amazon EventBridge User Guide. This value is only valid for rules - // on the default (https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-what-is-how-it-works-concepts.html#eb-bus-concepts-buses) - // event bus or custom event buses (https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-create-event-bus.html). - // It does not apply to partner event buses (https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-saas.html). State *string `type:"string" enum:"RuleState"` } @@ -16334,6 +16344,10 @@ func (s TagResourceOutput) GoString() string { type Target struct { _ struct{} `type:"structure"` + // Contains the GraphQL operation to be parsed and executed, if the event target + // is an AppSync API. + AppSyncParameters *AppSyncParameters `type:"structure"` + // The Amazon Resource Name (ARN) of the target. // // Arn is a required field @@ -16463,6 +16477,11 @@ func (s *Target) Validate() error { if s.RoleArn != nil && len(*s.RoleArn) < 1 { invalidParams.Add(request.NewErrParamMinLen("RoleArn", 1)) } + if s.AppSyncParameters != nil { + if err := s.AppSyncParameters.Validate(); err != nil { + invalidParams.AddNested("AppSyncParameters", err.(request.ErrInvalidParams)) + } + } if s.BatchParameters != nil { if err := s.BatchParameters.Validate(); err != nil { invalidParams.AddNested("BatchParameters", err.(request.ErrInvalidParams)) @@ -16515,6 +16534,12 @@ func (s *Target) Validate() error { return nil } +// SetAppSyncParameters sets the AppSyncParameters field's value. +func (s *Target) SetAppSyncParameters(v *AppSyncParameters) *Target { + s.AppSyncParameters = v + return s +} + // SetArn sets the Arn field's value. func (s *Target) SetArn(v string) *Target { s.Arn = &v diff --git a/service/iot/api.go b/service/iot/api.go index 6d3c08ab8aa..3103d8a4c69 100644 --- a/service/iot/api.go +++ b/service/iot/api.go @@ -25785,6 +25785,9 @@ func (c *IoT) UpdatePackageRequest(input *UpdatePackageInput) (req *request.Requ // - ThrottlingException // The rate exceeds the limit. // +// - ConflictException +// A resource with the same name already exists. +// // - InternalServerException // Internal error from the service that indicates an unexpected error or that // the service is unavailable. @@ -25875,6 +25878,9 @@ func (c *IoT) UpdatePackageConfigurationRequest(input *UpdatePackageConfiguratio // - ThrottlingException // The rate exceeds the limit. // +// - ConflictException +// A resource with the same name already exists. +// // - InternalServerException // Internal error from the service that indicates an unexpected error or that // the service is unavailable. @@ -25962,6 +25968,9 @@ func (c *IoT) UpdatePackageVersionRequest(input *UpdatePackageVersionInput) (req // - ThrottlingException // The rate exceeds the limit. // +// - ConflictException +// A resource with the same name already exists. +// // - InternalServerException // Internal error from the service that indicates an unexpected error or that // the service is unavailable. @@ -34296,7 +34305,9 @@ type CreateJobInput struct { Description *string `locationName:"description" type:"string"` // The package version Amazon Resource Names (ARNs) that are installed on the - // device when the job successfully completes. + // 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 (https://docs.aws.amazon.com/iot/latest/developerguide/preparing-to-use-software-package-catalog.html#package-version-lifecycle). // // Note:The following Length Constraints relates to a single ARN. Up to 25 package // version ARNs are allowed. @@ -34626,7 +34637,9 @@ type CreateJobTemplateInput struct { Description *string `locationName:"description" type:"string" required:"true"` // The package version Amazon Resource Names (ARNs) that are installed on the - // device when the job successfully completes. + // 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 (https://docs.aws.amazon.com/iot/latest/developerguide/preparing-to-use-software-package-catalog.html#package-version-lifecycle). // // Note:The following Length Constraints relates to a single ARN. Up to 25 package // version ARNs are allowed. @@ -43044,7 +43057,9 @@ type DescribeJobTemplateOutput struct { Description *string `locationName:"description" type:"string"` // The package version Amazon Resource Names (ARNs) that are installed on the - // device when the job successfully completes. + // 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 (https://docs.aws.amazon.com/iot/latest/developerguide/preparing-to-use-software-package-catalog.html#package-version-lifecycle). // // Note:The following Length Constraints relates to a single ARN. Up to 25 package // version ARNs are allowed. @@ -50123,7 +50138,11 @@ type Job struct { Description *string `locationName:"description" type:"string"` // The package version Amazon Resource Names (ARNs) that are installed on the - // device when the job successfully completes. + // 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 (https://docs.aws.amazon.com/iot/latest/developerguide/preparing-to-use-software-package-catalog.html#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 (https://docs.aws.amazon.com/iot/latest/developerguide/preparing-to-use-software-package-catalog.html#package-version-lifecycle). // // Note:The following Length Constraints relates to a single ARN. Up to 25 package // version ARNs are allowed. diff --git a/service/iotfleetwise/api.go b/service/iotfleetwise/api.go index c2befcd901e..df921e9ba75 100644 --- a/service/iotfleetwise/api.go +++ b/service/iotfleetwise/api.go @@ -17753,9 +17753,6 @@ const ( // NetworkInterfaceFailureReasonVehicleMiddlewareNetworkInterfaceInfoIsNull is a NetworkInterfaceFailureReason enum value NetworkInterfaceFailureReasonVehicleMiddlewareNetworkInterfaceInfoIsNull = "VEHICLE_MIDDLEWARE_NETWORK_INTERFACE_INFO_IS_NULL" - - // NetworkInterfaceFailureReasonCustomerDecodedSignalNetworkInterfaceInfoIsNull is a NetworkInterfaceFailureReason enum value - NetworkInterfaceFailureReasonCustomerDecodedSignalNetworkInterfaceInfoIsNull = "CUSTOMER_DECODED_SIGNAL_NETWORK_INTERFACE_INFO_IS_NULL" ) // NetworkInterfaceFailureReason_Values returns all elements of the NetworkInterfaceFailureReason enum @@ -17768,7 +17765,6 @@ func NetworkInterfaceFailureReason_Values() []string { NetworkInterfaceFailureReasonObdNetworkInterfaceInfoIsNull, NetworkInterfaceFailureReasonNetworkInterfaceToRemoveAssociatedWithSignals, NetworkInterfaceFailureReasonVehicleMiddlewareNetworkInterfaceInfoIsNull, - NetworkInterfaceFailureReasonCustomerDecodedSignalNetworkInterfaceInfoIsNull, } } @@ -17781,9 +17777,6 @@ const ( // NetworkInterfaceTypeVehicleMiddleware is a NetworkInterfaceType enum value NetworkInterfaceTypeVehicleMiddleware = "VEHICLE_MIDDLEWARE" - - // NetworkInterfaceTypeCustomerDecodedInterface is a NetworkInterfaceType enum value - NetworkInterfaceTypeCustomerDecodedInterface = "CUSTOMER_DECODED_INTERFACE" ) // NetworkInterfaceType_Values returns all elements of the NetworkInterfaceType enum @@ -17792,7 +17785,6 @@ func NetworkInterfaceType_Values() []string { NetworkInterfaceTypeCanInterface, NetworkInterfaceTypeObdInterface, NetworkInterfaceTypeVehicleMiddleware, - NetworkInterfaceTypeCustomerDecodedInterface, } } @@ -18069,9 +18061,6 @@ const ( // SignalDecoderFailureReasonEmptyMessageSignal is a SignalDecoderFailureReason enum value SignalDecoderFailureReasonEmptyMessageSignal = "EMPTY_MESSAGE_SIGNAL" - - // SignalDecoderFailureReasonCustomerDecodedSignalInfoIsNull is a SignalDecoderFailureReason enum value - SignalDecoderFailureReasonCustomerDecodedSignalInfoIsNull = "CUSTOMER_DECODED_SIGNAL_INFO_IS_NULL" ) // SignalDecoderFailureReason_Values returns all elements of the SignalDecoderFailureReason enum @@ -18092,7 +18081,6 @@ func SignalDecoderFailureReason_Values() []string { SignalDecoderFailureReasonNoSignalInCatalogForDecoderSignal, SignalDecoderFailureReasonSignalDecoderIncompatibleWithSignalCatalog, SignalDecoderFailureReasonEmptyMessageSignal, - SignalDecoderFailureReasonCustomerDecodedSignalInfoIsNull, } } @@ -18105,9 +18093,6 @@ const ( // SignalDecoderTypeMessageSignal is a SignalDecoderType enum value SignalDecoderTypeMessageSignal = "MESSAGE_SIGNAL" - - // SignalDecoderTypeCustomerDecodedSignal is a SignalDecoderType enum value - SignalDecoderTypeCustomerDecodedSignal = "CUSTOMER_DECODED_SIGNAL" ) // SignalDecoderType_Values returns all elements of the SignalDecoderType enum @@ -18116,7 +18101,6 @@ func SignalDecoderType_Values() []string { SignalDecoderTypeCanSignal, SignalDecoderTypeObdSignal, SignalDecoderTypeMessageSignal, - SignalDecoderTypeCustomerDecodedSignal, } } diff --git a/service/secretsmanager/api.go b/service/secretsmanager/api.go index 4b2b295c300..4ecf04d96d4 100644 --- a/service/secretsmanager/api.go +++ b/service/secretsmanager/api.go @@ -873,7 +873,8 @@ func (c *SecretsManager) GetRandomPasswordRequest(input *GetRandomPasswordInput) // // 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. +// 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 @@ -1940,8 +1941,12 @@ func (c *SecretsManager) ReplicateSecretToRegionsRequest(input *ReplicateSecretT // be logged. For more information, see Logging Secrets Manager events with // CloudTrail (https://docs.aws.amazon.com/secretsmanager/latest/userguide/retrieve-ct-entries.html). // -// Required permissions: secretsmanager:ReplicateSecretToRegions. For more information, -// see IAM policy actions for Secrets Manager (https://docs.aws.amazon.com/secretsmanager/latest/userguide/reference_iam-permissions.html#reference_iam-permissions_actions) +// 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 (https://docs.aws.amazon.com/secretsmanager/latest/userguide/reference_iam-permissions.html#reference_iam-permissions_actions) // and Authentication and access control in Secrets Manager (https://docs.aws.amazon.com/secretsmanager/latest/userguide/auth-and-access.html). // // Returns awserr.Error for service API and SDK errors. Use runtime type assertions @@ -4014,14 +4019,16 @@ type DescribeSecretOutput struct { LastChangedDate *time.Time `type:"timestamp"` // The last date and time that Secrets Manager rotated the secret. If the secret - // isn't configured for rotation, Secrets Manager returns null. + // isn't configured for rotation or rotation has been disabled, Secrets Manager + // returns null. LastRotatedDate *time.Time `type:"timestamp"` // The name of the secret. Name *string `min:"1" type:"string"` // The next rotation is scheduled to occur on or before this date. If the secret - // isn't configured for rotation, Secrets Manager returns null. + // isn't configured for rotation or rotation has been disabled, Secrets Manager + // returns null. NextRotationDate *time.Time `type:"timestamp"` // The ID of the service that created this secret. For more information, see @@ -4707,9 +4714,9 @@ type GetSecretValueOutput struct { Name *string `min:"1" type:"string"` // 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 (https://tools.ietf.org/html/rfc4648#section-4) - // string. + // 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. @@ -6869,7 +6876,8 @@ type SecretListEntry struct { Name *string `min:"1" type:"string"` // The next rotation is scheduled to occur on or before this date. If the secret - // isn't configured for rotation, Secrets Manager returns null. + // isn't configured for rotation or rotation has been disabled, Secrets Manager + // returns null. NextRotationDate *time.Time `type:"timestamp"` // Returns the name of the service that created the secret. diff --git a/service/secretsmanager/examples_test.go b/service/secretsmanager/examples_test.go index 3cc00b7cc1b..0a31cc3e72a 100644 --- a/service/secretsmanager/examples_test.go +++ b/service/secretsmanager/examples_test.go @@ -25,6 +25,48 @@ func parseTime(layout, value string) *time.Time { return &t } +// To retrieve the secret values for a group of secrets listed by name +// The following example gets the values for three secrets. +func ExampleSecretsManager_BatchGetSecretValue_shared00() { + svc := secretsmanager.New(session.New()) + input := &secretsmanager.BatchGetSecretValueInput{ + SecretIdList: []*string{ + aws.String("MySecret1"), + aws.String("MySecret2"), + aws.String("MySecret3"), + }, + } + + result, err := svc.BatchGetSecretValue(input) + if err != nil { + if aerr, ok := err.(awserr.Error); ok { + switch aerr.Code() { + case secretsmanager.ErrCodeResourceNotFoundException: + fmt.Println(secretsmanager.ErrCodeResourceNotFoundException, aerr.Error()) + case secretsmanager.ErrCodeInvalidParameterException: + fmt.Println(secretsmanager.ErrCodeInvalidParameterException, aerr.Error()) + case secretsmanager.ErrCodeInvalidRequestException: + fmt.Println(secretsmanager.ErrCodeInvalidRequestException, aerr.Error()) + case secretsmanager.ErrCodeDecryptionFailure: + fmt.Println(secretsmanager.ErrCodeDecryptionFailure, aerr.Error()) + case secretsmanager.ErrCodeInternalServiceError: + fmt.Println(secretsmanager.ErrCodeInternalServiceError, aerr.Error()) + case secretsmanager.ErrCodeInvalidNextTokenException: + fmt.Println(secretsmanager.ErrCodeInvalidNextTokenException, aerr.Error()) + default: + fmt.Println(aerr.Error()) + } + } else { + // Print the error, cast err to awserr.Error to get the Code and + // Message from an error. + fmt.Println(err.Error()) + } + return + } + + fmt.Println(result) +} + // To cancel scheduled rotation for a secret // The following example shows how to cancel rotation for a secret. The operation sets // the RotationEnabled field to false and cancels all scheduled rotations. To resume diff --git a/service/workspaces/api.go b/service/workspaces/api.go index 5ed206ccee3..3b74a3f66d2 100644 --- a/service/workspaces/api.go +++ b/service/workspaces/api.go @@ -1347,11 +1347,6 @@ func (c *WorkSpaces) CreateWorkspacesRequest(input *CreateWorkspacesInput) (req // - 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? -// (https://aws.amazon.com/workspaces/faqs/#:~:text=Q%3A%20Can%20I%20switch%20between%20hourly%20and%20monthly%20billing%3F) -// // Returns awserr.Error for service API and SDK errors. Use runtime type assertions // with awserr.Error's Code and Message methods to get detailed information about // the error. @@ -5829,7 +5824,9 @@ func (c *WorkSpaces) RebootWorkspacesRequest(input *RebootWorkspacesInput) (req // // Reboots the specified WorkSpaces. // -// You cannot reboot a WorkSpace unless its state is AVAILABLE or UNHEALTHY. +// 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. // @@ -19385,14 +19382,9 @@ type WorkspaceProperties struct { // The running mode. For more information, see Manage the WorkSpace Running // Mode (https://docs.aws.amazon.com/workspaces/latest/adminguide/running-mode.html). // - // * 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 (http://aws.amazon.com/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? - // (https://aws.amazon.com/workspaces/faqs/#:~:text=Q%3A%20Can%20I%20switch%20between%20hourly%20and%20monthly%20billing%3F) + // 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 (http://aws.amazon.com/workspaces/core/). RunningMode *string `type:"string" enum:"RunningMode"` // The time after a user logs off when WorkSpaces are automatically stopped.