diff --git a/.changelog/017b441beae64d6380fda61d04c88a7e.json b/.changelog/017b441beae64d6380fda61d04c88a7e.json new file mode 100644 index 00000000000..191f3fad8ca --- /dev/null +++ b/.changelog/017b441beae64d6380fda61d04c88a7e.json @@ -0,0 +1,8 @@ +{ + "id": "017b441b-eae6-4d63-80fd-a61d04c88a7e", + "type": "feature", + "description": "Add ConflictException to Update APIs of AWS IoT Software Package Catalog", + "modules": [ + "service/iot" + ] +} \ No newline at end of file diff --git a/.changelog/2dd338debc714d4fb8ec37656bacd3dd.json b/.changelog/2dd338debc714d4fb8ec37656bacd3dd.json new file mode 100644 index 00000000000..0ff6e3bdbf4 --- /dev/null +++ b/.changelog/2dd338debc714d4fb8ec37656bacd3dd.json @@ -0,0 +1,8 @@ +{ + "id": "2dd338de-bc71-4d4f-b8ec-37656bacd3dd", + "type": "feature", + "description": "This release adds support for adding an ElasticBlockStorage volume configurations in ECS RunTask/StartTask/CreateService/UpdateService APIs. The configuration allows for attaching EBS volumes to ECS Tasks.", + "modules": [ + "service/ecs" + ] +} \ No newline at end of file diff --git a/.changelog/410a48b24b9147e2ad8dc849a78258bb.json b/.changelog/410a48b24b9147e2ad8dc849a78258bb.json new file mode 100644 index 00000000000..eae92ac160b --- /dev/null +++ b/.changelog/410a48b24b9147e2ad8dc849a78258bb.json @@ -0,0 +1,8 @@ +{ + "id": "410a48b2-4b91-47e2-ad8d-c849a78258bb", + "type": "feature", + "description": "Adding AppSync as an EventBridge Target", + "modules": [ + "service/eventbridge" + ] +} \ No newline at end of file diff --git a/.changelog/41d2b3a50799490991343c3ffbda971a.json b/.changelog/41d2b3a50799490991343c3ffbda971a.json new file mode 100644 index 00000000000..a0ebea19331 --- /dev/null +++ b/.changelog/41d2b3a50799490991343c3ffbda971a.json @@ -0,0 +1,8 @@ +{ + "id": "41d2b3a5-0799-4909-9134-3c3ffbda971a", + "type": "documentation", + "description": "Doc only update for Secrets Manager", + "modules": [ + "service/secretsmanager" + ] +} \ No newline at end of file diff --git a/.changelog/44140a13908644c6afe4dc59ae628f8a.json b/.changelog/44140a13908644c6afe4dc59ae628f8a.json new file mode 100644 index 00000000000..f69652a7a1a --- /dev/null +++ b/.changelog/44140a13908644c6afe4dc59ae628f8a.json @@ -0,0 +1,8 @@ +{ + "id": "44140a13-9086-44c6-afe4-dc59ae628f8a", + "type": "feature", + "description": "This release adds support for adding an ElasticBlockStorage volume configurations in ECS RunTask/StartTask/CreateService/UpdateService APIs. The configuration allows for attaching EBS volumes to ECS Tasks.", + "modules": [ + "service/ec2" + ] +} \ No newline at end of file diff --git a/.changelog/45bc73a7a0af4e97b189941f7172bbf6.json b/.changelog/45bc73a7a0af4e97b189941f7172bbf6.json new file mode 100644 index 00000000000..d0e5a4fc80e --- /dev/null +++ b/.changelog/45bc73a7a0af4e97b189941f7172bbf6.json @@ -0,0 +1,8 @@ +{ + "id": "45bc73a7-a0af-4e97-b189-941f7172bbf6", + "type": "documentation", + "description": "Added AWS Workspaces RebootWorkspaces API - Extended Reboot documentation update", + "modules": [ + "service/workspaces" + ] +} \ No newline at end of file diff --git a/.changelog/c2c4114d0c0d4c2989bf85568efe466b.json b/.changelog/c2c4114d0c0d4c2989bf85568efe466b.json new file mode 100644 index 00000000000..e6cf7f06475 --- /dev/null +++ b/.changelog/c2c4114d0c0d4c2989bf85568efe466b.json @@ -0,0 +1,8 @@ +{ + "id": "c2c4114d-0c0d-4c29-89bf-85568efe466b", + "type": "feature", + "description": "The following dataTypes have been removed: CUSTOMER_DECODED_INTERFACE in NetworkInterfaceType; CUSTOMER_DECODED_SIGNAL_INFO_IS_NULL in SignalDecoderFailureReason; CUSTOMER_DECODED_SIGNAL_NETWORK_INTERFACE_INFO_IS_NULL in NetworkInterfaceFailureReason; CUSTOMER_DECODED_SIGNAL in SignalDecoderType", + "modules": [ + "service/iotfleetwise" + ] +} \ No newline at end of file diff --git a/service/ec2/api_op_AttachVolume.go b/service/ec2/api_op_AttachVolume.go index 1da701021a8..87bb9b48be9 100644 --- a/service/ec2/api_op_AttachVolume.go +++ b/service/ec2/api_op_AttachVolume.go @@ -76,18 +76,28 @@ type AttachVolumeInput struct { // Describes volume attachment details. type AttachVolumeOutput struct { + // The ARN of the Amazon ECS or Fargate task to which the volume is attached. + AssociatedResource *string + // The time stamp when the attachment initiated. AttachTime *time.Time // Indicates whether the EBS volume is deleted on instance termination. DeleteOnTermination *bool - // The device name. + // The device name. If the volume is attached to a Fargate task, this parameter + // returns null . Device *string - // The ID of the instance. + // The ID of the instance. If the volume is attached to a Fargate task, this + // parameter returns null . InstanceId *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 + // The attachment state of the volume. State types.VolumeAttachmentState diff --git a/service/ec2/api_op_DescribeCapacityBlockOfferings.go b/service/ec2/api_op_DescribeCapacityBlockOfferings.go index 9c41c214641..4ffaa4a8f8d 100644 --- a/service/ec2/api_op_DescribeCapacityBlockOfferings.go +++ b/service/ec2/api_op_DescribeCapacityBlockOfferings.go @@ -56,10 +56,10 @@ type DescribeCapacityBlockOfferingsInput struct { // The latest end date for the Capacity Block offering. EndDateRange *time.Time - // 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 *int32 // The token to use to retrieve the next page of results. @@ -176,10 +176,10 @@ var _ DescribeCapacityBlockOfferingsAPIClient = (*Client)(nil) // DescribeCapacityBlockOfferingsPaginatorOptions is the paginator options for // DescribeCapacityBlockOfferings type DescribeCapacityBlockOfferingsPaginatorOptions struct { - // 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) + // . Limit int32 // Set to true if pagination should stop if the service returns a pagination token diff --git a/service/ec2/api_op_DescribeCapacityReservationFleets.go b/service/ec2/api_op_DescribeCapacityReservationFleets.go index f90f09b0c66..73a8bda4bf4 100644 --- a/service/ec2/api_op_DescribeCapacityReservationFleets.go +++ b/service/ec2/api_op_DescribeCapacityReservationFleets.go @@ -49,10 +49,10 @@ type DescribeCapacityReservationFleetsInput struct { // prioritized is supported. Filters []types.Filter - // 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 *int32 // The token to use to retrieve the next page of results. @@ -163,10 +163,10 @@ var _ DescribeCapacityReservationFleetsAPIClient = (*Client)(nil) // DescribeCapacityReservationFleetsPaginatorOptions is the paginator options for // DescribeCapacityReservationFleets type DescribeCapacityReservationFleetsPaginatorOptions struct { - // 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) + // . Limit int32 // Set to true if pagination should stop if the service returns a pagination token diff --git a/service/ec2/api_op_DescribeCapacityReservations.go b/service/ec2/api_op_DescribeCapacityReservations.go index 3db3008608b..f39945cf1f7 100644 --- a/service/ec2/api_op_DescribeCapacityReservations.go +++ b/service/ec2/api_op_DescribeCapacityReservations.go @@ -97,10 +97,10 @@ type DescribeCapacityReservationsInput struct { // Capacity Reservation was created. Filters []types.Filter - // 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 *int32 // The token to use to retrieve the next page of results. @@ -211,10 +211,10 @@ var _ DescribeCapacityReservationsAPIClient = (*Client)(nil) // DescribeCapacityReservationsPaginatorOptions is the paginator options for // DescribeCapacityReservations type DescribeCapacityReservationsPaginatorOptions struct { - // 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) + // . Limit int32 // Set to true if pagination should stop if the service returns a pagination token diff --git a/service/ec2/api_op_DetachVolume.go b/service/ec2/api_op_DetachVolume.go index ee0ee178e0c..efe0aaba995 100644 --- a/service/ec2/api_op_DetachVolume.go +++ b/service/ec2/api_op_DetachVolume.go @@ -21,7 +21,10 @@ import ( // 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 +// 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. func (c *Client) DetachVolume(ctx context.Context, params *DetachVolumeInput, optFns ...func(*Options)) (*DetachVolumeOutput, error) { @@ -74,18 +77,28 @@ type DetachVolumeInput struct { // Describes volume attachment details. type DetachVolumeOutput struct { + // The ARN of the Amazon ECS or Fargate task to which the volume is attached. + AssociatedResource *string + // The time stamp when the attachment initiated. AttachTime *time.Time // Indicates whether the EBS volume is deleted on instance termination. DeleteOnTermination *bool - // The device name. + // The device name. If the volume is attached to a Fargate task, this parameter + // returns null . Device *string - // The ID of the instance. + // The ID of the instance. If the volume is attached to a Fargate task, this + // parameter returns null . InstanceId *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 + // The attachment state of the volume. State types.VolumeAttachmentState diff --git a/service/ec2/api_op_EnableSnapshotBlockPublicAccess.go b/service/ec2/api_op_EnableSnapshotBlockPublicAccess.go index dc0d70da7a4..b451afeede2 100644 --- a/service/ec2/api_op_EnableSnapshotBlockPublicAccess.go +++ b/service/ec2/api_op_EnableSnapshotBlockPublicAccess.go @@ -55,6 +55,7 @@ type EnableSnapshotBlockPublicAccessInput struct { // Region. Users in the account will no longer be able to request new public // sharing. However, snapshots that are already publicly shared, remain publicly // available. + // unblocked is not a valid value for EnableSnapshotBlockPublicAccess. // // This member is required. State types.SnapshotBlockPublicAccessState diff --git a/service/ec2/api_op_GetCapacityReservationUsage.go b/service/ec2/api_op_GetCapacityReservationUsage.go index b5165f27bf5..99f00ea3cee 100644 --- a/service/ec2/api_op_GetCapacityReservationUsage.go +++ b/service/ec2/api_op_GetCapacityReservationUsage.go @@ -45,11 +45,10 @@ type GetCapacityReservationUsageInput struct { // UnauthorizedOperation . DryRun *bool - // 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 *int32 // The token to use to retrieve the next page of results. diff --git a/service/ec2/api_op_GetGroupsForCapacityReservation.go b/service/ec2/api_op_GetGroupsForCapacityReservation.go index 963b361d9c9..81d39b348ac 100644 --- a/service/ec2/api_op_GetGroupsForCapacityReservation.go +++ b/service/ec2/api_op_GetGroupsForCapacityReservation.go @@ -43,10 +43,10 @@ type GetGroupsForCapacityReservationInput struct { // UnauthorizedOperation . DryRun *bool - // 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 *int32 // The token to use to retrieve the next page of results. @@ -161,10 +161,10 @@ var _ GetGroupsForCapacityReservationAPIClient = (*Client)(nil) // GetGroupsForCapacityReservationPaginatorOptions is the paginator options for // GetGroupsForCapacityReservation type GetGroupsForCapacityReservationPaginatorOptions struct { - // 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) + // . Limit int32 // Set to true if pagination should stop if the service returns a pagination token diff --git a/service/ec2/api_op_GetSpotPlacementScores.go b/service/ec2/api_op_GetSpotPlacementScores.go index d54cb4328ad..16babe19035 100644 --- a/service/ec2/api_op_GetSpotPlacementScores.go +++ b/service/ec2/api_op_GetSpotPlacementScores.go @@ -79,8 +79,7 @@ type GetSpotPlacementScoresInput struct { // into a single Availability Zone. SingleAvailabilityZone *bool - // The unit for the target capacity. Default: units (translates to number of - // instances) + // The unit for the target capacity. TargetCapacityUnitType types.TargetCapacityUnitType noSmithyDocumentSerde diff --git a/service/ec2/api_op_ModifyInstanceAttribute.go b/service/ec2/api_op_ModifyInstanceAttribute.go index 0830b6806ed..eea2242ae6d 100644 --- a/service/ec2/api_op_ModifyInstanceAttribute.go +++ b/service/ec2/api_op_ModifyInstanceAttribute.go @@ -53,9 +53,10 @@ 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. 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 (https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/block-device-mapping-concepts.html#Using_OverridingAMIBDM) + // 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 (https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/block-device-mapping-concepts.html#Using_OverridingAMIBDM) // in the Amazon EC2 User Guide. BlockDeviceMappings []types.InstanceBlockDeviceMappingSpecification diff --git a/service/ec2/api_op_ModifyInstanceMetadataOptions.go b/service/ec2/api_op_ModifyInstanceMetadataOptions.go index 27744391051..6338d06326a 100644 --- a/service/ec2/api_op_ModifyInstanceMetadataOptions.go +++ b/service/ec2/api_op_ModifyInstanceMetadataOptions.go @@ -63,19 +63,18 @@ type ModifyInstanceMetadataOptionsInput struct { // Integers from 1 to 64 HttpPutResponseHopLimit *int32 - // IMDSv2 uses token-backed sessions. Set the use of HTTP tokens to optional (in - // other words, set the use of IMDSv2 to optional ) or required (in other words, - // set the use of IMDSv2 to required ). - // - optional - When IMDSv2 is optional, you can choose to retrieve instance - // metadata with or without a session token in your request. If you retrieve the - // IAM role credentials without a token, the IMDSv1 role credentials are returned. - // If you retrieve the IAM role credentials using a valid session token, the IMDSv2 - // role credentials are returned. - // - required - When IMDSv2 is required, you must send a session token with any - // instance metadata retrieval requests. In this state, retrieving the IAM role + // Indicates whether IMDSv2 is required. + // - optional - IMDSv2 is optional. You can choose whether to send a session + // token in your instance metadata retrieval requests. If you retrieve IAM role + // credentials without a session token, you receive the IMDSv1 role credentials. If + // you retrieve IAM role credentials using a valid session token, you receive the + // IMDSv2 role credentials. + // - required - IMDSv2 is required. You must send a session token in your + // instance metadata retrieval requests. With this option, retrieving the IAM role // credentials always returns IMDSv2 credentials; IMDSv1 credentials are not // available. - // Default: optional + // Default: If the value of ImdsSupport for the Amazon Machine Image (AMI) for + // your instance is v2.0 , the default is required . HttpTokens types.HttpTokensState // Set to enabled to allow access to instance tags from the instance metadata. Set diff --git a/service/ec2/deserializers.go b/service/ec2/deserializers.go index 1fef53f6990..aa486aff734 100644 --- a/service/ec2/deserializers.go +++ b/service/ec2/deserializers.go @@ -70591,6 +70591,19 @@ func awsEc2query_deserializeDocumentEbsInstanceBlockDevice(v **types.EbsInstance originalDecoder := decoder decoder = smithyxml.WrapNodeDecoder(originalDecoder.Decoder, t) switch { + case strings.EqualFold("associatedResource", t.Name.Local): + val, err := decoder.Value() + if err != nil { + return err + } + if val == nil { + break + } + { + xtv := string(val) + sv.AssociatedResource = ptr.String(xtv) + } + case strings.EqualFold("attachTime", t.Name.Local): val, err := decoder.Value() if err != nil { @@ -70650,6 +70663,19 @@ func awsEc2query_deserializeDocumentEbsInstanceBlockDevice(v **types.EbsInstance sv.VolumeId = ptr.String(xtv) } + case strings.EqualFold("volumeOwnerId", t.Name.Local): + val, err := decoder.Value() + if err != nil { + return err + } + if val == nil { + break + } + { + xtv := string(val) + sv.VolumeOwnerId = ptr.String(xtv) + } + default: // Do nothing and ignore the unexpected tag element err = decoder.Decoder.Skip() @@ -134108,6 +134134,19 @@ func awsEc2query_deserializeDocumentVolumeAttachment(v **types.VolumeAttachment, originalDecoder := decoder decoder = smithyxml.WrapNodeDecoder(originalDecoder.Decoder, t) switch { + case strings.EqualFold("associatedResource", t.Name.Local): + val, err := decoder.Value() + if err != nil { + return err + } + if val == nil { + break + } + { + xtv := string(val) + sv.AssociatedResource = ptr.String(xtv) + } + case strings.EqualFold("attachTime", t.Name.Local): val, err := decoder.Value() if err != nil { @@ -134167,6 +134206,19 @@ func awsEc2query_deserializeDocumentVolumeAttachment(v **types.VolumeAttachment, sv.InstanceId = ptr.String(xtv) } + case strings.EqualFold("instanceOwningService", t.Name.Local): + val, err := decoder.Value() + if err != nil { + return err + } + if val == nil { + break + } + { + xtv := string(val) + sv.InstanceOwningService = ptr.String(xtv) + } + case strings.EqualFold("status", t.Name.Local): val, err := decoder.Value() if err != nil { @@ -139998,6 +140050,19 @@ func awsEc2query_deserializeOpDocumentAttachVolumeOutput(v **AttachVolumeOutput, originalDecoder := decoder decoder = smithyxml.WrapNodeDecoder(originalDecoder.Decoder, t) switch { + case strings.EqualFold("associatedResource", t.Name.Local): + val, err := decoder.Value() + if err != nil { + return err + } + if val == nil { + break + } + { + xtv := string(val) + sv.AssociatedResource = ptr.String(xtv) + } + case strings.EqualFold("attachTime", t.Name.Local): val, err := decoder.Value() if err != nil { @@ -140057,6 +140122,19 @@ func awsEc2query_deserializeOpDocumentAttachVolumeOutput(v **AttachVolumeOutput, sv.InstanceId = ptr.String(xtv) } + case strings.EqualFold("instanceOwningService", t.Name.Local): + val, err := decoder.Value() + if err != nil { + return err + } + if val == nil { + break + } + { + xtv := string(val) + sv.InstanceOwningService = ptr.String(xtv) + } + case strings.EqualFold("status", t.Name.Local): val, err := decoder.Value() if err != nil { @@ -156384,6 +156462,19 @@ func awsEc2query_deserializeOpDocumentDetachVolumeOutput(v **DetachVolumeOutput, originalDecoder := decoder decoder = smithyxml.WrapNodeDecoder(originalDecoder.Decoder, t) switch { + case strings.EqualFold("associatedResource", t.Name.Local): + val, err := decoder.Value() + if err != nil { + return err + } + if val == nil { + break + } + { + xtv := string(val) + sv.AssociatedResource = ptr.String(xtv) + } + case strings.EqualFold("attachTime", t.Name.Local): val, err := decoder.Value() if err != nil { @@ -156443,6 +156534,19 @@ func awsEc2query_deserializeOpDocumentDetachVolumeOutput(v **DetachVolumeOutput, sv.InstanceId = ptr.String(xtv) } + case strings.EqualFold("instanceOwningService", t.Name.Local): + val, err := decoder.Value() + if err != nil { + return err + } + if val == nil { + break + } + { + xtv := string(val) + sv.InstanceOwningService = ptr.String(xtv) + } + case strings.EqualFold("status", t.Name.Local): val, err := decoder.Value() if err != nil { diff --git a/service/ec2/types/types.go b/service/ec2/types/types.go index e09c20f486e..d96300bbb7d 100644 --- a/service/ec2/types/types.go +++ b/service/ec2/types/types.go @@ -3249,6 +3249,9 @@ type EbsInfo struct { // Describes a parameter used to set up an EBS volume in a block device mapping. type EbsInstanceBlockDevice struct { + // The ARN of the Amazon ECS or Fargate task to which the volume is attached. + AssociatedResource *string + // The time stamp when the attachment initiated. AttachTime *time.Time @@ -3261,6 +3264,10 @@ type EbsInstanceBlockDevice struct { // The ID of the EBS volume. VolumeId *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 + noSmithyDocumentSerde } @@ -6251,19 +6258,18 @@ type InstanceMetadataOptionsRequest struct { // Possible values: Integers from 1 to 64 HttpPutResponseHopLimit *int32 - // IMDSv2 uses token-backed sessions. Set the use of HTTP tokens to optional (in - // other words, set the use of IMDSv2 to optional ) or required (in other words, - // set the use of IMDSv2 to required ). - // - optional - When IMDSv2 is optional, you can choose to retrieve instance - // metadata with or without a session token in your request. If you retrieve the - // IAM role credentials without a token, the IMDSv1 role credentials are returned. - // If you retrieve the IAM role credentials using a valid session token, the IMDSv2 - // role credentials are returned. - // - required - When IMDSv2 is required, you must send a session token with any - // instance metadata retrieval requests. In this state, retrieving the IAM role + // Indicates whether IMDSv2 is required. + // - optional - IMDSv2 is optional. You can choose whether to send a session + // token in your instance metadata retrieval requests. If you retrieve IAM role + // credentials without a session token, you receive the IMDSv1 role credentials. If + // you retrieve IAM role credentials using a valid session token, you receive the + // IMDSv2 role credentials. + // - required - IMDSv2 is required. You must send a session token in your + // instance metadata retrieval requests. With this option, retrieving the IAM role // credentials always returns IMDSv2 credentials; IMDSv1 credentials are not // available. - // Default: optional + // Default: If the value of ImdsSupport for the Amazon Machine Image (AMI) for + // your instance is v2.0 , the default is required . HttpTokens HttpTokensState // Set to enabled to allow access to instance tags from the instance metadata. Set @@ -6291,19 +6297,16 @@ type InstanceMetadataOptionsResponse struct { // Possible values: Integers from 1 to 64 HttpPutResponseHopLimit *int32 - // IMDSv2 uses token-backed sessions. Indicates whether the use of HTTP tokens is - // optional (in other words, indicates whether the use of IMDSv2 is optional ) or - // required (in other words, indicates whether the use of IMDSv2 is required ). - // - optional - When IMDSv2 is optional, you can choose to retrieve instance - // metadata with or without a session token in your request. If you retrieve the - // IAM role credentials without a token, the IMDSv1 role credentials are returned. - // If you retrieve the IAM role credentials using a valid session token, the IMDSv2 - // role credentials are returned. - // - required - When IMDSv2 is required, you must send a session token with any - // instance metadata retrieval requests. In this state, retrieving the IAM role + // Indicates whether IMDSv2 is required. + // - optional - IMDSv2 is optional. You can choose whether to send a session + // token in your instance metadata retrieval requests. If you retrieve IAM role + // credentials without a session token, you receive the IMDSv1 role credentials. If + // you retrieve IAM role credentials using a valid session token, you receive the + // IMDSv2 role credentials. + // - required - IMDSv2 is required. You must send a session token in your + // instance metadata retrieval requests. With this option, retrieving the IAM role // credentials always returns IMDSv2 credentials; IMDSv1 credentials are not // available. - // Default: optional HttpTokens HttpTokensState // Indicates whether access to instance tags from the instance metadata is enabled @@ -13596,7 +13599,11 @@ type ScheduledInstancesNetworkInterface struct { // 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 . + // 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 // Indicates whether to delete the interface when the instance is terminated. @@ -14679,8 +14686,8 @@ type SpotFleetRequestConfigData struct { // . TagSpecifications []TagSpecification - // The unit for the target capacity. TargetCapacityUnitType can only be specified - // when InstanceRequirements is specified. Default: units (translates to number of + // 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) TargetCapacityUnitType TargetCapacityUnitType @@ -15203,8 +15210,8 @@ type StateReason struct { // - Server.SpotInstanceTermination : The instance was terminated because the // number of Spot requests with a maximum price equal to or higher than the Spot // price exceeded available capacity or because of an increase in the Spot price. - // - Client.InstanceInitiatedShutdown : The instance was shut down using the - // shutdown -h command from the instance. + // - Client.InstanceInitiatedShutdown : The instance was shut down from the + // operating system of the instance. // - Client.InstanceTerminated : The instance was terminated or rebooted during // AMI creation. // - Client.InternalError : A client error caused the instance to terminate @@ -15544,7 +15551,7 @@ type TagSpecification struct { // . type TargetCapacitySpecification struct { - // The default TotalTargetCapacity , which is either Spot or On-Demand . + // The default target capacity type. DefaultTargetCapacityType DefaultTargetCapacityType // The number of On-Demand units to request. If you specify a target capacity for @@ -15555,12 +15562,10 @@ type TargetCapacitySpecification struct { // for On-Demand units, you cannot specify a target capacity for Spot units. SpotTargetCapacity *int32 - // 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 TargetCapacityUnitType - // The number of units to request, filled using DefaultTargetCapacityType . + // The number of units to request, filled the default target capacity type. TotalTargetCapacity *int32 noSmithyDocumentSerde @@ -15576,18 +15581,18 @@ type TargetCapacitySpecification struct { // 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 +// is reached, the fleet stops 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 { - // The number of units to request, filled using DefaultTargetCapacityType . + // The number of units to request, filled using the default target capacity type. // // This member is required. TotalTargetCapacity *int32 - // The default TotalTargetCapacity , which is either Spot or On-Demand . + // The default target capacity type. DefaultTargetCapacityType DefaultTargetCapacityType // The number of On-Demand units to request. @@ -15596,8 +15601,8 @@ type TargetCapacitySpecificationRequest struct { // The number of Spot units to request. SpotTargetCapacity *int32 - // The unit for the target capacity. TargetCapacityUnitType can only be specified - // when InstanceRequirements is specified. Default: units (translates to number of + // 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) TargetCapacityUnitType TargetCapacityUnitType @@ -17699,18 +17704,28 @@ type Volume struct { // Describes volume attachment details. type VolumeAttachment struct { + // The ARN of the Amazon ECS or Fargate task to which the volume is attached. + AssociatedResource *string + // The time stamp when the attachment initiated. AttachTime *time.Time // Indicates whether the EBS volume is deleted on instance termination. DeleteOnTermination *bool - // The device name. + // The device name. If the volume is attached to a Fargate task, this parameter + // returns null . Device *string - // The ID of the instance. + // The ID of the instance. If the volume is attached to a Fargate task, this + // parameter returns null . InstanceId *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 + // The attachment state of the volume. State VolumeAttachmentState diff --git a/service/ecs/api_op_CreateService.go b/service/ecs/api_op_CreateService.go index c13ab72e380..104b76de5c3 100644 --- a/service/ecs/api_op_CreateService.go +++ b/service/ecs/api_op_CreateService.go @@ -27,6 +27,10 @@ import ( // 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 (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 @@ -342,6 +346,11 @@ type CreateServiceInput struct { // . TaskDefinition *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 []types.ServiceVolumeConfiguration + noSmithyDocumentSerde } diff --git a/service/ecs/api_op_RunTask.go b/service/ecs/api_op_RunTask.go index 4ddc2fc1a33..82414df73b5 100644 --- a/service/ecs/api_op_RunTask.go +++ b/service/ecs/api_op_RunTask.go @@ -25,12 +25,16 @@ import ( // 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: +// 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 might not be immediately visible +// to all subsequent commands you run. Keep this in mind when you carry out an API +// command that immediately follows a previous API command. To manage eventual +// consistency, you can do the following: // - Confirm the state of the resource before you run a command to modify it. // Run the DescribeTasks command using an exponential backoff algorithm to ensure // that you allow enough time for the previous command to propagate through the @@ -204,6 +208,12 @@ type RunTaskInput struct { // prefix do not count against your tags per resource limit. Tags []types.Tag + // 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 []types.TaskVolumeConfiguration + noSmithyDocumentSerde } diff --git a/service/ecs/api_op_StartTask.go b/service/ecs/api_op_StartTask.go index c08be8885f4..7cd01847ffe 100644 --- a/service/ecs/api_op_StartTask.go +++ b/service/ecs/api_op_StartTask.go @@ -22,6 +22,9 @@ import ( // 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 (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. func (c *Client) StartTask(ctx context.Context, params *StartTaskInput, optFns ...func(*Options)) (*StartTaskOutput, error) { if params == nil { @@ -121,6 +124,12 @@ type StartTaskInput struct { // prefix do not count against your tags per resource limit. Tags []types.Tag + // 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 []types.TaskVolumeConfiguration + noSmithyDocumentSerde } diff --git a/service/ecs/api_op_UpdateService.go b/service/ecs/api_op_UpdateService.go index 547f225dd1b..fc47ba70079 100644 --- a/service/ecs/api_op_UpdateService.go +++ b/service/ecs/api_op_UpdateService.go @@ -17,13 +17,21 @@ import ( // 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 (https://docs.aws.amazon.com/codedeploy/latest/APIReference/API_CreateDeployment.html) +// 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 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 (https://docs.aws.amazon.com/codedeploy/latest/APIReference/API_CreateDeployment.html) // 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 @@ -32,19 +40,23 @@ import ( // 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. +// 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 (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. If your updated Docker +// image uses the same tag as what is in the existing task definition for your +// service (for example, my_image:latest ), you don't need to create a new revision +// of your task definition. You can update the service using the forceNewDeployment +// option. The new tasks launched by the deployment pull the current image/tag +// combination from your repository when they start. You can also update the +// deployment configuration of a service. When a deployment is triggered by +// updating the task definition of a service, the service scheduler uses the +// deployment configuration parameters, minimumHealthyPercent and maximumPercent , +// to determine the deployment strategy. // - If minimumHealthyPercent is below 100%, the scheduler can ignore // desiredCount temporarily during a deployment. For example, if desiredCount is // four tasks, a minimum of 50% allows the scheduler to stop two existing tasks @@ -265,6 +277,14 @@ type UpdateServiceInput struct { // old task after the new version is running. TaskDefinition *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 []types.ServiceVolumeConfiguration + noSmithyDocumentSerde } diff --git a/service/ecs/deserializers.go b/service/ecs/deserializers.go index 3f1e9b1bb83..ad95f31c650 100644 --- a/service/ecs/deserializers.go +++ b/service/ecs/deserializers.go @@ -4996,6 +4996,9 @@ func awsAwsjson11_deserializeOpErrorStartTask(response *smithyhttp.Response, met case strings.EqualFold("ServerException", errorCode): return awsAwsjson11_deserializeErrorServerException(response, errorBody) + case strings.EqualFold("UnsupportedFeatureException", errorCode): + return awsAwsjson11_deserializeErrorUnsupportedFeatureException(response, errorBody) + default: genericError := &smithy.GenericAPIError{ Code: errorCode, @@ -6466,6 +6469,9 @@ func awsAwsjson11_deserializeOpErrorUpdateService(response *smithyhttp.Response, case strings.EqualFold("ServiceNotFoundException", errorCode): return awsAwsjson11_deserializeErrorServiceNotFoundException(response, errorBody) + case strings.EqualFold("UnsupportedFeatureException", errorCode): + return awsAwsjson11_deserializeErrorUnsupportedFeatureException(response, errorBody) + default: genericError := &smithy.GenericAPIError{ Code: errorCode, @@ -10335,6 +10341,11 @@ func awsAwsjson11_deserializeDocumentDeployment(v **types.Deployment, value inte } } + case "volumeConfigurations": + if err := awsAwsjson11_deserializeDocumentServiceVolumeConfigurations(&sv.VolumeConfigurations, value); err != nil { + return err + } + default: _, _ = key, value @@ -10816,6 +10827,94 @@ func awsAwsjson11_deserializeDocumentDockerVolumeConfiguration(v **types.DockerV return nil } +func awsAwsjson11_deserializeDocumentEBSTagSpecification(v **types.EBSTagSpecification, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.EBSTagSpecification + if *v == nil { + sv = &types.EBSTagSpecification{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "propagateTags": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected PropagateTags to be of type string, got %T instead", value) + } + sv.PropagateTags = types.PropagateTags(jtv) + } + + case "resourceType": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected EBSResourceType to be of type string, got %T instead", value) + } + sv.ResourceType = types.EBSResourceType(jtv) + } + + case "tags": + if err := awsAwsjson11_deserializeDocumentTags(&sv.Tags, value); err != nil { + return err + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsAwsjson11_deserializeDocumentEBSTagSpecifications(v *[]types.EBSTagSpecification, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.([]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var cv []types.EBSTagSpecification + if *v == nil { + cv = []types.EBSTagSpecification{} + } else { + cv = *v + } + + for _, value := range shape { + var col types.EBSTagSpecification + destAddr := &col + if err := awsAwsjson11_deserializeDocumentEBSTagSpecification(&destAddr, value); err != nil { + return err + } + col = *destAddr + cv = append(cv, col) + + } + *v = cv + return nil +} + func awsAwsjson11_deserializeDocumentEFSAuthorizationConfig(v **types.EFSAuthorizationConfig, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) @@ -15099,6 +15198,135 @@ func awsAwsjson11_deserializeDocumentServiceEvents(v *[]types.ServiceEvent, valu return nil } +func awsAwsjson11_deserializeDocumentServiceManagedEBSVolumeConfiguration(v **types.ServiceManagedEBSVolumeConfiguration, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.ServiceManagedEBSVolumeConfiguration + if *v == nil { + sv = &types.ServiceManagedEBSVolumeConfiguration{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "encrypted": + if value != nil { + jtv, ok := value.(bool) + if !ok { + return fmt.Errorf("expected BoxedBoolean to be of type *bool, got %T instead", value) + } + sv.Encrypted = ptr.Bool(jtv) + } + + case "filesystemType": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected TaskFilesystemType to be of type string, got %T instead", value) + } + sv.FilesystemType = types.TaskFilesystemType(jtv) + } + + case "iops": + if value != nil { + jtv, ok := value.(json.Number) + if !ok { + return fmt.Errorf("expected BoxedInteger to be json.Number, got %T instead", value) + } + i64, err := jtv.Int64() + if err != nil { + return err + } + sv.Iops = ptr.Int32(int32(i64)) + } + + case "kmsKeyId": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected EBSKMSKeyId to be of type string, got %T instead", value) + } + sv.KmsKeyId = ptr.String(jtv) + } + + case "roleArn": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected IAMRoleArn to be of type string, got %T instead", value) + } + sv.RoleArn = ptr.String(jtv) + } + + case "sizeInGiB": + if value != nil { + jtv, ok := value.(json.Number) + if !ok { + return fmt.Errorf("expected BoxedInteger to be json.Number, got %T instead", value) + } + i64, err := jtv.Int64() + if err != nil { + return err + } + sv.SizeInGiB = ptr.Int32(int32(i64)) + } + + case "snapshotId": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected EBSSnapshotId to be of type string, got %T instead", value) + } + sv.SnapshotId = ptr.String(jtv) + } + + case "tagSpecifications": + if err := awsAwsjson11_deserializeDocumentEBSTagSpecifications(&sv.TagSpecifications, value); err != nil { + return err + } + + case "throughput": + if value != nil { + jtv, ok := value.(json.Number) + if !ok { + return fmt.Errorf("expected BoxedInteger to be json.Number, got %T instead", value) + } + i64, err := jtv.Int64() + if err != nil { + return err + } + sv.Throughput = ptr.Int32(int32(i64)) + } + + case "volumeType": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected EBSVolumeType to be of type string, got %T instead", value) + } + sv.VolumeType = ptr.String(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + func awsAwsjson11_deserializeDocumentServiceNotActiveException(v **types.ServiceNotActiveException, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) @@ -15322,6 +15550,85 @@ func awsAwsjson11_deserializeDocumentServices(v *[]types.Service, value interfac return nil } +func awsAwsjson11_deserializeDocumentServiceVolumeConfiguration(v **types.ServiceVolumeConfiguration, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.ServiceVolumeConfiguration + if *v == nil { + sv = &types.ServiceVolumeConfiguration{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "managedEBSVolume": + if err := awsAwsjson11_deserializeDocumentServiceManagedEBSVolumeConfiguration(&sv.ManagedEBSVolume, value); err != nil { + return err + } + + case "name": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected ECSVolumeName to be of type string, got %T instead", value) + } + sv.Name = ptr.String(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsAwsjson11_deserializeDocumentServiceVolumeConfigurations(v *[]types.ServiceVolumeConfiguration, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.([]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var cv []types.ServiceVolumeConfiguration + if *v == nil { + cv = []types.ServiceVolumeConfiguration{} + } else { + cv = *v + } + + for _, value := range shape { + var col types.ServiceVolumeConfiguration + destAddr := &col + if err := awsAwsjson11_deserializeDocumentServiceVolumeConfiguration(&destAddr, value); err != nil { + return err + } + col = *destAddr + cv = append(cv, col) + + } + *v = cv + return nil +} + func awsAwsjson11_deserializeDocumentSession(v **types.Session, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) @@ -17360,6 +17667,15 @@ func awsAwsjson11_deserializeDocumentVolume(v **types.Volume, value interface{}) for key, value := range shape { switch key { + case "configuredAtLaunch": + if value != nil { + jtv, ok := value.(bool) + if !ok { + return fmt.Errorf("expected BoxedBoolean to be of type *bool, got %T instead", value) + } + sv.ConfiguredAtLaunch = ptr.Bool(jtv) + } + case "dockerVolumeConfiguration": if err := awsAwsjson11_deserializeDocumentDockerVolumeConfiguration(&sv.DockerVolumeConfiguration, value); err != nil { return err diff --git a/service/ecs/serializers.go b/service/ecs/serializers.go index e835813498e..8fc7be4dfea 100644 --- a/service/ecs/serializers.go +++ b/service/ecs/serializers.go @@ -3982,6 +3982,43 @@ func awsAwsjson11_serializeDocumentDockerVolumeConfiguration(v *types.DockerVolu return nil } +func awsAwsjson11_serializeDocumentEBSTagSpecification(v *types.EBSTagSpecification, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if len(v.PropagateTags) > 0 { + ok := object.Key("propagateTags") + ok.String(string(v.PropagateTags)) + } + + if len(v.ResourceType) > 0 { + ok := object.Key("resourceType") + ok.String(string(v.ResourceType)) + } + + if v.Tags != nil { + ok := object.Key("tags") + if err := awsAwsjson11_serializeDocumentTags(v.Tags, ok); err != nil { + return err + } + } + + return nil +} + +func awsAwsjson11_serializeDocumentEBSTagSpecifications(v []types.EBSTagSpecification, value smithyjson.Value) error { + array := value.Array() + defer array.Close() + + for i := range v { + av := array.Value() + if err := awsAwsjson11_serializeDocumentEBSTagSpecification(&v[i], av); err != nil { + return err + } + } + return nil +} + func awsAwsjson11_serializeDocumentEFSAuthorizationConfig(v *types.EFSAuthorizationConfig, value smithyjson.Value) error { object := value.Object() defer object.Close() @@ -5160,6 +5197,65 @@ func awsAwsjson11_serializeDocumentServiceFieldList(v []types.ServiceField, valu return nil } +func awsAwsjson11_serializeDocumentServiceManagedEBSVolumeConfiguration(v *types.ServiceManagedEBSVolumeConfiguration, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.Encrypted != nil { + ok := object.Key("encrypted") + ok.Boolean(*v.Encrypted) + } + + if len(v.FilesystemType) > 0 { + ok := object.Key("filesystemType") + ok.String(string(v.FilesystemType)) + } + + if v.Iops != nil { + ok := object.Key("iops") + ok.Integer(*v.Iops) + } + + if v.KmsKeyId != nil { + ok := object.Key("kmsKeyId") + ok.String(*v.KmsKeyId) + } + + if v.RoleArn != nil { + ok := object.Key("roleArn") + ok.String(*v.RoleArn) + } + + if v.SizeInGiB != nil { + ok := object.Key("sizeInGiB") + ok.Integer(*v.SizeInGiB) + } + + if v.SnapshotId != nil { + ok := object.Key("snapshotId") + ok.String(*v.SnapshotId) + } + + if v.TagSpecifications != nil { + ok := object.Key("tagSpecifications") + if err := awsAwsjson11_serializeDocumentEBSTagSpecifications(v.TagSpecifications, ok); err != nil { + return err + } + } + + if v.Throughput != nil { + ok := object.Key("throughput") + ok.Integer(*v.Throughput) + } + + if v.VolumeType != nil { + ok := object.Key("volumeType") + ok.String(*v.VolumeType) + } + + return nil +} + func awsAwsjson11_serializeDocumentServiceRegistries(v []types.ServiceRegistry, value smithyjson.Value) error { array := value.Array() defer array.Close() @@ -5200,6 +5296,38 @@ func awsAwsjson11_serializeDocumentServiceRegistry(v *types.ServiceRegistry, val return nil } +func awsAwsjson11_serializeDocumentServiceVolumeConfiguration(v *types.ServiceVolumeConfiguration, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.ManagedEBSVolume != nil { + ok := object.Key("managedEBSVolume") + if err := awsAwsjson11_serializeDocumentServiceManagedEBSVolumeConfiguration(v.ManagedEBSVolume, ok); err != nil { + return err + } + } + + if v.Name != nil { + ok := object.Key("name") + ok.String(*v.Name) + } + + return nil +} + +func awsAwsjson11_serializeDocumentServiceVolumeConfigurations(v []types.ServiceVolumeConfiguration, value smithyjson.Value) error { + array := value.Array() + defer array.Close() + + for i := range v { + av := array.Value() + if err := awsAwsjson11_serializeDocumentServiceVolumeConfiguration(&v[i], av); err != nil { + return err + } + } + return nil +} + func awsAwsjson11_serializeDocumentStringList(v []string, value smithyjson.Value) error { array := value.Array() defer array.Close() @@ -5345,6 +5473,84 @@ func awsAwsjson11_serializeDocumentTaskFieldList(v []types.TaskField, value smit return nil } +func awsAwsjson11_serializeDocumentTaskManagedEBSVolumeConfiguration(v *types.TaskManagedEBSVolumeConfiguration, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.Encrypted != nil { + ok := object.Key("encrypted") + ok.Boolean(*v.Encrypted) + } + + if len(v.FilesystemType) > 0 { + ok := object.Key("filesystemType") + ok.String(string(v.FilesystemType)) + } + + if v.Iops != nil { + ok := object.Key("iops") + ok.Integer(*v.Iops) + } + + if v.KmsKeyId != nil { + ok := object.Key("kmsKeyId") + ok.String(*v.KmsKeyId) + } + + if v.RoleArn != nil { + ok := object.Key("roleArn") + ok.String(*v.RoleArn) + } + + if v.SizeInGiB != nil { + ok := object.Key("sizeInGiB") + ok.Integer(*v.SizeInGiB) + } + + if v.SnapshotId != nil { + ok := object.Key("snapshotId") + ok.String(*v.SnapshotId) + } + + if v.TagSpecifications != nil { + ok := object.Key("tagSpecifications") + if err := awsAwsjson11_serializeDocumentEBSTagSpecifications(v.TagSpecifications, ok); err != nil { + return err + } + } + + if v.TerminationPolicy != nil { + ok := object.Key("terminationPolicy") + if err := awsAwsjson11_serializeDocumentTaskManagedEBSVolumeTerminationPolicy(v.TerminationPolicy, ok); err != nil { + return err + } + } + + if v.Throughput != nil { + ok := object.Key("throughput") + ok.Integer(*v.Throughput) + } + + if v.VolumeType != nil { + ok := object.Key("volumeType") + ok.String(*v.VolumeType) + } + + return nil +} + +func awsAwsjson11_serializeDocumentTaskManagedEBSVolumeTerminationPolicy(v *types.TaskManagedEBSVolumeTerminationPolicy, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.DeleteOnTermination != nil { + ok := object.Key("deleteOnTermination") + ok.Boolean(*v.DeleteOnTermination) + } + + return nil +} + func awsAwsjson11_serializeDocumentTaskOverride(v *types.TaskOverride, value smithyjson.Value) error { object := value.Object() defer object.Close() @@ -5404,6 +5610,38 @@ func awsAwsjson11_serializeDocumentTaskSetFieldList(v []types.TaskSetField, valu return nil } +func awsAwsjson11_serializeDocumentTaskVolumeConfiguration(v *types.TaskVolumeConfiguration, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.ManagedEBSVolume != nil { + ok := object.Key("managedEBSVolume") + if err := awsAwsjson11_serializeDocumentTaskManagedEBSVolumeConfiguration(v.ManagedEBSVolume, ok); err != nil { + return err + } + } + + if v.Name != nil { + ok := object.Key("name") + ok.String(*v.Name) + } + + return nil +} + +func awsAwsjson11_serializeDocumentTaskVolumeConfigurations(v []types.TaskVolumeConfiguration, value smithyjson.Value) error { + array := value.Array() + defer array.Close() + + for i := range v { + av := array.Value() + if err := awsAwsjson11_serializeDocumentTaskVolumeConfiguration(&v[i], av); err != nil { + return err + } + } + return nil +} + func awsAwsjson11_serializeDocumentTmpfs(v *types.Tmpfs, value smithyjson.Value) error { object := value.Object() defer object.Close() @@ -5502,6 +5740,11 @@ func awsAwsjson11_serializeDocumentVolume(v *types.Volume, value smithyjson.Valu object := value.Object() defer object.Close() + if v.ConfiguredAtLaunch != nil { + ok := object.Key("configuredAtLaunch") + ok.Boolean(*v.ConfiguredAtLaunch) + } + if v.DockerVolumeConfiguration != nil { ok := object.Key("dockerVolumeConfiguration") if err := awsAwsjson11_serializeDocumentDockerVolumeConfiguration(v.DockerVolumeConfiguration, ok); err != nil { @@ -5800,6 +6043,13 @@ func awsAwsjson11_serializeOpDocumentCreateServiceInput(v *CreateServiceInput, v ok.String(*v.TaskDefinition) } + if v.VolumeConfigurations != nil { + ok := object.Key("volumeConfigurations") + if err := awsAwsjson11_serializeDocumentServiceVolumeConfigurations(v.VolumeConfigurations, ok); err != nil { + return err + } + } + return nil } @@ -6954,6 +7204,13 @@ func awsAwsjson11_serializeOpDocumentRunTaskInput(v *RunTaskInput, value smithyj ok.String(*v.TaskDefinition) } + if v.VolumeConfigurations != nil { + ok := object.Key("volumeConfigurations") + if err := awsAwsjson11_serializeDocumentTaskVolumeConfigurations(v.VolumeConfigurations, ok); err != nil { + return err + } + } + return nil } @@ -7029,6 +7286,13 @@ func awsAwsjson11_serializeOpDocumentStartTaskInput(v *StartTaskInput, value smi ok.String(*v.TaskDefinition) } + if v.VolumeConfigurations != nil { + ok := object.Key("volumeConfigurations") + if err := awsAwsjson11_serializeDocumentTaskVolumeConfigurations(v.VolumeConfigurations, ok); err != nil { + return err + } + } + return nil } @@ -7445,6 +7709,13 @@ func awsAwsjson11_serializeOpDocumentUpdateServiceInput(v *UpdateServiceInput, v ok.String(*v.TaskDefinition) } + if v.VolumeConfigurations != nil { + ok := object.Key("volumeConfigurations") + if err := awsAwsjson11_serializeDocumentServiceVolumeConfigurations(v.VolumeConfigurations, ok); err != nil { + return err + } + } + return nil } diff --git a/service/ecs/types/enums.go b/service/ecs/types/enums.go index 6e95ae68efb..a94b14e6523 100644 --- a/service/ecs/types/enums.go +++ b/service/ecs/types/enums.go @@ -367,6 +367,22 @@ func (DeviceCgroupPermission) Values() []DeviceCgroupPermission { } } +type EBSResourceType string + +// Enum values for EBSResourceType +const ( + EBSResourceTypeVolume EBSResourceType = "volume" +) + +// Values returns all known values for EBSResourceType. Note that this can be +// expanded in the future, and so it is only as up to date as the client. The +// ordering of this slice is not guaranteed to be stable across updates. +func (EBSResourceType) Values() []EBSResourceType { + return []EBSResourceType{ + "volume", + } +} + type EFSAuthorizationConfigIAM string // Enum values for EFSAuthorizationConfigIAM @@ -1093,6 +1109,26 @@ func (TaskField) Values() []TaskField { } } +type TaskFilesystemType string + +// Enum values for TaskFilesystemType +const ( + TaskFilesystemTypeExt3 TaskFilesystemType = "ext3" + TaskFilesystemTypeExt4 TaskFilesystemType = "ext4" + TaskFilesystemTypeXfs TaskFilesystemType = "xfs" +) + +// Values returns all known values for TaskFilesystemType. Note that this can be +// expanded in the future, and so it is only as up to date as the client. The +// ordering of this slice is not guaranteed to be stable across updates. +func (TaskFilesystemType) Values() []TaskFilesystemType { + return []TaskFilesystemType{ + "ext3", + "ext4", + "xfs", + } +} + type TaskSetField string // Enum values for TaskSetField diff --git a/service/ecs/types/types.go b/service/ecs/types/types.go index 7787f6d3672..0eee7ecc882 100644 --- a/service/ecs/types/types.go +++ b/service/ecs/types/types.go @@ -12,7 +12,10 @@ type Attachment struct { // 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. + // 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 // The unique identifier for the attachment. @@ -22,7 +25,8 @@ type Attachment struct { // , ATTACHED , DETACHING , DETACHED , DELETED , and FAILED . Status *string - // The type of the attachment, such as ElasticNetworkInterface . + // The type of the attachment, such as ElasticNetworkInterface , Service Connect , + // and AmazonElasticBlockStorage . Type *string noSmithyDocumentSerde @@ -85,8 +89,7 @@ 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 . + // instances that are in the Auto Scaling group capacity provider. ManagedDraining ManagedDraining // The managed scaling settings for the Auto Scaling group capacity provider. @@ -114,8 +117,7 @@ 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 . + // instances that are in the Auto Scaling group capacity provider. ManagedDraining ManagedDraining // The managed scaling settings for the Auto Scaling group capacity provider. @@ -1425,6 +1427,12 @@ type Deployment struct { // The Unix timestamp for the time when the service deployment was last updated. UpdatedAt *time.Time + // 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 + noSmithyDocumentSerde } @@ -1653,6 +1661,27 @@ type DockerVolumeConfiguration struct { noSmithyDocumentSerde } +// The tag specifications of an Amazon EBS volume. +type EBSTagSpecification struct { + + // The type of volume resource. + // + // This member is required. + ResourceType EBSResourceType + + // 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 PropagateTags + + // The tags applied to this Amazon EBS volume. AmazonECSCreated and + // AmazonECSManaged are reserved tags that can't be used. + Tags []Tag + + noSmithyDocumentSerde +} + // The authorization configuration details for the Amazon EFS file system. type EFSAuthorizationConfig struct { @@ -3282,6 +3311,108 @@ type ServiceEvent struct { noSmithyDocumentSerde } +// 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 { + + // 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. + // + // This member is required. + RoleArn *string + + // 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 + + // 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 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 *int32 + + // 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 + + // 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 *int32 + + // 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 + + // 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 + + // 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 *int32 + + // 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 + + noSmithyDocumentSerde +} + // The details for the service registry. Each service may be associated with one // service registry. Multiple service registries for each service are not // supported. When you add, update, or remove the service registries configuration, @@ -3320,6 +3451,26 @@ type ServiceRegistry struct { noSmithyDocumentSerde } +// 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 { + + // The name of the volume. This value must match the volume name from the Volume + // object in the task definition. + // + // This member is required. + Name *string + + // 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 + + noSmithyDocumentSerde +} + // The details for the execute command session. type Session struct { @@ -3883,6 +4034,129 @@ type TaskDefinitionPlacementConstraint struct { noSmithyDocumentSerde } +// 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 { + + // 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. + // + // This member is required. + RoleArn *string + + // 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 + + // 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 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 *int32 + + // 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 + + // 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 *int32 + + // 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 + + // 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 + + // 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 + + // 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 *int32 + + // 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 + + noSmithyDocumentSerde +} + +// 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 { + + // 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. + // + // This member is required. + DeleteOnTermination *bool + + noSmithyDocumentSerde +} + // The overrides that are associated with a task. type TaskOverride struct { @@ -4051,6 +4325,25 @@ type TaskSet struct { noSmithyDocumentSerde } +// Configuration settings for the task volume that was configuredAtLaunch that +// weren't set during RegisterTaskDef . +type TaskVolumeConfiguration struct { + + // The name of the volume. This value must match the volume name from the Volume + // object in the task definition. + // + // This member is required. + Name *string + + // 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 + + noSmithyDocumentSerde +} + // The container path, mount options, and size of the tmpfs mount. type Tmpfs struct { @@ -4121,16 +4414,25 @@ type VersionInfo struct { noSmithyDocumentSerde } -// 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 { + // 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 + // This parameter is specified when you use Docker volumes. Windows containers // only support the use of the local driver. To use bind mounts, specify the host // parameter instead. Docker volumes aren't supported by tasks run on Fargate. @@ -4157,9 +4459,13 @@ type Volume struct { Host *HostVolumeProperties // 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. + // 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. Name *string noSmithyDocumentSerde diff --git a/service/ecs/validators.go b/service/ecs/validators.go index 1d97872953c..7cdbf49ff99 100644 --- a/service/ecs/validators.go +++ b/service/ecs/validators.go @@ -1488,6 +1488,38 @@ func validateDevicesList(v []types.Device) error { } } +func validateEBSTagSpecification(v *types.EBSTagSpecification) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "EBSTagSpecification"} + if len(v.ResourceType) == 0 { + invalidParams.Add(smithy.NewErrParamRequired("ResourceType")) + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + +func validateEBSTagSpecifications(v []types.EBSTagSpecification) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "EBSTagSpecifications"} + for i := range v { + if err := validateEBSTagSpecification(&v[i]); err != nil { + invalidParams.AddNested(fmt.Sprintf("[%d]", i), err.(smithy.InvalidParamsError)) + } + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + func validateEFSVolumeConfiguration(v *types.EFSVolumeConfiguration) error { if v == nil { return nil @@ -2016,6 +2048,103 @@ func validateServiceConnectServiceList(v []types.ServiceConnectService) error { } } +func validateServiceManagedEBSVolumeConfiguration(v *types.ServiceManagedEBSVolumeConfiguration) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "ServiceManagedEBSVolumeConfiguration"} + if v.TagSpecifications != nil { + if err := validateEBSTagSpecifications(v.TagSpecifications); err != nil { + invalidParams.AddNested("TagSpecifications", err.(smithy.InvalidParamsError)) + } + } + if v.RoleArn == nil { + invalidParams.Add(smithy.NewErrParamRequired("RoleArn")) + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + +func validateServiceVolumeConfiguration(v *types.ServiceVolumeConfiguration) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "ServiceVolumeConfiguration"} + if v.Name == nil { + invalidParams.Add(smithy.NewErrParamRequired("Name")) + } + if v.ManagedEBSVolume != nil { + if err := validateServiceManagedEBSVolumeConfiguration(v.ManagedEBSVolume); err != nil { + invalidParams.AddNested("ManagedEBSVolume", err.(smithy.InvalidParamsError)) + } + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + +func validateServiceVolumeConfigurations(v []types.ServiceVolumeConfiguration) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "ServiceVolumeConfigurations"} + for i := range v { + if err := validateServiceVolumeConfiguration(&v[i]); err != nil { + invalidParams.AddNested(fmt.Sprintf("[%d]", i), err.(smithy.InvalidParamsError)) + } + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + +func validateTaskManagedEBSVolumeConfiguration(v *types.TaskManagedEBSVolumeConfiguration) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "TaskManagedEBSVolumeConfiguration"} + if v.TagSpecifications != nil { + if err := validateEBSTagSpecifications(v.TagSpecifications); err != nil { + invalidParams.AddNested("TagSpecifications", err.(smithy.InvalidParamsError)) + } + } + if v.RoleArn == nil { + invalidParams.Add(smithy.NewErrParamRequired("RoleArn")) + } + if v.TerminationPolicy != nil { + if err := validateTaskManagedEBSVolumeTerminationPolicy(v.TerminationPolicy); err != nil { + invalidParams.AddNested("TerminationPolicy", err.(smithy.InvalidParamsError)) + } + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + +func validateTaskManagedEBSVolumeTerminationPolicy(v *types.TaskManagedEBSVolumeTerminationPolicy) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "TaskManagedEBSVolumeTerminationPolicy"} + if v.DeleteOnTermination == nil { + invalidParams.Add(smithy.NewErrParamRequired("DeleteOnTermination")) + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + func validateTaskOverride(v *types.TaskOverride) error { if v == nil { return nil @@ -2038,6 +2167,43 @@ func validateTaskOverride(v *types.TaskOverride) error { } } +func validateTaskVolumeConfiguration(v *types.TaskVolumeConfiguration) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "TaskVolumeConfiguration"} + if v.Name == nil { + invalidParams.Add(smithy.NewErrParamRequired("Name")) + } + if v.ManagedEBSVolume != nil { + if err := validateTaskManagedEBSVolumeConfiguration(v.ManagedEBSVolume); err != nil { + invalidParams.AddNested("ManagedEBSVolume", err.(smithy.InvalidParamsError)) + } + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + +func validateTaskVolumeConfigurations(v []types.TaskVolumeConfiguration) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "TaskVolumeConfigurations"} + for i := range v { + if err := validateTaskVolumeConfiguration(&v[i]); err != nil { + invalidParams.AddNested(fmt.Sprintf("[%d]", i), err.(smithy.InvalidParamsError)) + } + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + func validateTmpfs(v *types.Tmpfs) error { if v == nil { return nil @@ -2218,6 +2384,11 @@ func validateOpCreateServiceInput(v *CreateServiceInput) error { invalidParams.AddNested("ServiceConnectConfiguration", err.(smithy.InvalidParamsError)) } } + if v.VolumeConfigurations != nil { + if err := validateServiceVolumeConfigurations(v.VolumeConfigurations); err != nil { + invalidParams.AddNested("VolumeConfigurations", err.(smithy.InvalidParamsError)) + } + } if invalidParams.Len() > 0 { return invalidParams } else { @@ -2724,6 +2895,11 @@ func validateOpRunTaskInput(v *RunTaskInput) error { if v.TaskDefinition == nil { invalidParams.Add(smithy.NewErrParamRequired("TaskDefinition")) } + if v.VolumeConfigurations != nil { + if err := validateTaskVolumeConfigurations(v.VolumeConfigurations); err != nil { + invalidParams.AddNested("VolumeConfigurations", err.(smithy.InvalidParamsError)) + } + } if invalidParams.Len() > 0 { return invalidParams } else { @@ -2752,6 +2928,11 @@ func validateOpStartTaskInput(v *StartTaskInput) error { if v.TaskDefinition == nil { invalidParams.Add(smithy.NewErrParamRequired("TaskDefinition")) } + if v.VolumeConfigurations != nil { + if err := validateTaskVolumeConfigurations(v.VolumeConfigurations); err != nil { + invalidParams.AddNested("VolumeConfigurations", err.(smithy.InvalidParamsError)) + } + } if invalidParams.Len() > 0 { return invalidParams } else { @@ -2968,6 +3149,11 @@ func validateOpUpdateServiceInput(v *UpdateServiceInput) error { invalidParams.AddNested("ServiceConnectConfiguration", err.(smithy.InvalidParamsError)) } } + if v.VolumeConfigurations != nil { + if err := validateServiceVolumeConfigurations(v.VolumeConfigurations); err != nil { + invalidParams.AddNested("VolumeConfigurations", err.(smithy.InvalidParamsError)) + } + } if invalidParams.Len() > 0 { return invalidParams } else { diff --git a/service/eventbridge/api_op_PutRule.go b/service/eventbridge/api_op_PutRule.go index 95655c21a0a..9d52a00b085 100644 --- a/service/eventbridge/api_op_PutRule.go +++ b/service/eventbridge/api_op_PutRule.go @@ -99,24 +99,7 @@ type PutRuleInput struct { // minutes)". ScheduleExpression *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 types.RuleState // The list of key-value pairs to associate with the rule. diff --git a/service/eventbridge/deserializers.go b/service/eventbridge/deserializers.go index 3a28b1e40ab..68fa037de65 100644 --- a/service/eventbridge/deserializers.go +++ b/service/eventbridge/deserializers.go @@ -6944,6 +6944,46 @@ func awsAwsjson11_deserializeDocumentApiDestinationResponseList(v *[]types.ApiDe return nil } +func awsAwsjson11_deserializeDocumentAppSyncParameters(v **types.AppSyncParameters, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.AppSyncParameters + if *v == nil { + sv = &types.AppSyncParameters{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "GraphQLOperation": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected GraphQLOperation to be of type string, got %T instead", value) + } + sv.GraphQLOperation = ptr.String(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + func awsAwsjson11_deserializeDocumentArchive(v **types.Archive, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) @@ -11493,6 +11533,11 @@ func awsAwsjson11_deserializeDocumentTarget(v **types.Target, value interface{}) for key, value := range shape { switch key { + case "AppSyncParameters": + if err := awsAwsjson11_deserializeDocumentAppSyncParameters(&sv.AppSyncParameters, value); err != nil { + return err + } + case "Arn": if value != nil { jtv, ok := value.(string) diff --git a/service/eventbridge/serializers.go b/service/eventbridge/serializers.go index b3a943d629a..a1b572c24c8 100644 --- a/service/eventbridge/serializers.go +++ b/service/eventbridge/serializers.go @@ -3095,6 +3095,18 @@ func (m *awsAwsjson11_serializeOpUpdateEndpoint) HandleSerialize(ctx context.Con return next.HandleSerialize(ctx, in) } +func awsAwsjson11_serializeDocumentAppSyncParameters(v *types.AppSyncParameters, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.GraphQLOperation != nil { + ok := object.Key("GraphQLOperation") + ok.String(*v.GraphQLOperation) + } + + return nil +} + func awsAwsjson11_serializeDocumentAwsVpcConfiguration(v *types.AwsVpcConfiguration, value smithyjson.Value) error { object := value.Object() defer object.Close() @@ -4230,6 +4242,13 @@ func awsAwsjson11_serializeDocumentTarget(v *types.Target, value smithyjson.Valu object := value.Object() defer object.Close() + if v.AppSyncParameters != nil { + ok := object.Key("AppSyncParameters") + if err := awsAwsjson11_serializeDocumentAppSyncParameters(v.AppSyncParameters, ok); err != nil { + return err + } + } + if v.Arn != nil { ok := object.Key("Arn") ok.String(*v.Arn) diff --git a/service/eventbridge/types/types.go b/service/eventbridge/types/types.go index e2fdacd77e8..3f0f6608c51 100644 --- a/service/eventbridge/types/types.go +++ b/service/eventbridge/types/types.go @@ -40,6 +40,18 @@ type ApiDestination struct { noSmithyDocumentSerde } +// Contains the GraphQL operation to be parsed and executed, if the event target +// is an AppSync API. +type AppSyncParameters struct { + + // 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 *string + + noSmithyDocumentSerde +} + // An Archive object that contains details about an archive. type Archive struct { @@ -1226,24 +1238,7 @@ type Rule struct { // . ScheduleExpression *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) - // . + // The state of the rule. State RuleState noSmithyDocumentSerde @@ -1371,6 +1366,10 @@ type Target struct { // This member is required. Id *string + // Contains the GraphQL operation to be parsed and executed, if the event target + // is an AppSync API. + AppSyncParameters *AppSyncParameters + // If the event target is an Batch job, this contains the job definition, job // name, and other parameters. For more information, see Jobs (https://docs.aws.amazon.com/batch/latest/userguide/jobs.html) // in the Batch User Guide. diff --git a/service/guardduty/internal/endpoints/endpoints.go b/service/guardduty/internal/endpoints/endpoints.go index acaa30350ee..dc84b3ca892 100644 --- a/service/guardduty/internal/endpoints/endpoints.go +++ b/service/guardduty/internal/endpoints/endpoints.go @@ -348,6 +348,11 @@ var defaultPartitions = endpoints.Partitions{ }, RegionRegex: partitionRegexp.AwsIso, IsRegionalized: true, + Endpoints: endpoints.Endpoints{ + endpoints.EndpointKey{ + Region: "us-iso-east-1", + }: endpoints.Endpoint{}, + }, }, { ID: "aws-iso-b", diff --git a/service/iot/api_op_CreateJob.go b/service/iot/api_op_CreateJob.go index de446e5e1e3..ab259dff777 100644 --- a/service/iot/api_op_CreateJob.go +++ b/service/iot/api_op_CreateJob.go @@ -50,8 +50,11 @@ type CreateJobInput struct { Description *string // 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. + // 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. DestinationPackageVersions []string // The job document. Required if you don't specify a value for documentSource . diff --git a/service/iot/api_op_CreateJobTemplate.go b/service/iot/api_op_CreateJobTemplate.go index 6efb37e0a1d..7d5f92caea6 100644 --- a/service/iot/api_op_CreateJobTemplate.go +++ b/service/iot/api_op_CreateJobTemplate.go @@ -46,8 +46,11 @@ type CreateJobTemplateInput struct { AbortConfig *types.AbortConfig // 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. + // 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. DestinationPackageVersions []string // The job document. Required if you don't specify a value for documentSource . diff --git a/service/iot/api_op_CreateProvisioningTemplate.go b/service/iot/api_op_CreateProvisioningTemplate.go index eefe6c4ef28..4292a1179c0 100644 --- a/service/iot/api_op_CreateProvisioningTemplate.go +++ b/service/iot/api_op_CreateProvisioningTemplate.go @@ -52,7 +52,7 @@ type CreateProvisioningTemplateInput struct { Description *string // True to enable the provisioning template, otherwise false. - Enabled bool + Enabled *bool // Creates a pre-provisioning hook template. Only supports template of type // FLEET_PROVISIONING . For more information about provisioning template types, see diff --git a/service/iot/api_op_DescribeJobTemplate.go b/service/iot/api_op_DescribeJobTemplate.go index d4b3604097f..f5896405993 100644 --- a/service/iot/api_op_DescribeJobTemplate.go +++ b/service/iot/api_op_DescribeJobTemplate.go @@ -51,8 +51,11 @@ type DescribeJobTemplateOutput struct { Description *string // 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. + // 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. DestinationPackageVersions []string // The job document. diff --git a/service/iot/api_op_DescribeProvisioningTemplate.go b/service/iot/api_op_DescribeProvisioningTemplate.go index 898d133dcd0..44eb1684f74 100644 --- a/service/iot/api_op_DescribeProvisioningTemplate.go +++ b/service/iot/api_op_DescribeProvisioningTemplate.go @@ -53,7 +53,7 @@ type DescribeProvisioningTemplateOutput struct { Description *string // True if the provisioning template is enabled, otherwise false. - Enabled bool + Enabled *bool // The date when the provisioning template was last modified. LastModifiedDate *time.Time diff --git a/service/iot/api_op_UpdateProvisioningTemplate.go b/service/iot/api_op_UpdateProvisioningTemplate.go index 0887cbaf9b1..f4eede1e4b5 100644 --- a/service/iot/api_op_UpdateProvisioningTemplate.go +++ b/service/iot/api_op_UpdateProvisioningTemplate.go @@ -44,7 +44,7 @@ type UpdateProvisioningTemplateInput struct { Description *string // True to enable the provisioning template, otherwise false. - Enabled bool + Enabled *bool // Updates the pre-provisioning hook template. Only supports template of type // FLEET_PROVISIONING . For more information about provisioning template types, see diff --git a/service/iot/deserializers.go b/service/iot/deserializers.go index 16669b151db..80a24d38072 100644 --- a/service/iot/deserializers.go +++ b/service/iot/deserializers.go @@ -15587,9 +15587,9 @@ func awsRestjson1_deserializeOpDocumentDescribeProvisioningTemplateOutput(v **De if value != nil { jtv, ok := value.(bool) if !ok { - return fmt.Errorf("expected Enabled to be of type *bool, got %T instead", value) + return fmt.Errorf("expected Enabled2 to be of type *bool, got %T instead", value) } - sv.Enabled = jtv + sv.Enabled = ptr.Bool(jtv) } case "lastModifiedDate": @@ -37341,6 +37341,9 @@ func awsRestjson1_deserializeOpErrorUpdatePackage(response *smithyhttp.Response, } switch { + case strings.EqualFold("ConflictException", errorCode): + return awsRestjson1_deserializeErrorConflictException(response, errorBody) + case strings.EqualFold("InternalServerException", errorCode): return awsRestjson1_deserializeErrorInternalServerException(response, errorBody) @@ -37433,6 +37436,9 @@ func awsRestjson1_deserializeOpErrorUpdatePackageConfiguration(response *smithyh } switch { + case strings.EqualFold("ConflictException", errorCode): + return awsRestjson1_deserializeErrorConflictException(response, errorBody) + case strings.EqualFold("InternalServerException", errorCode): return awsRestjson1_deserializeErrorInternalServerException(response, errorBody) @@ -37522,6 +37528,9 @@ func awsRestjson1_deserializeOpErrorUpdatePackageVersion(response *smithyhttp.Re } switch { + case strings.EqualFold("ConflictException", errorCode): + return awsRestjson1_deserializeErrorConflictException(response, errorBody) + case strings.EqualFold("InternalServerException", errorCode): return awsRestjson1_deserializeErrorInternalServerException(response, errorBody) @@ -52813,9 +52822,9 @@ func awsRestjson1_deserializeDocumentProvisioningTemplateSummary(v **types.Provi if value != nil { jtv, ok := value.(bool) if !ok { - return fmt.Errorf("expected Enabled to be of type *bool, got %T instead", value) + return fmt.Errorf("expected Enabled2 to be of type *bool, got %T instead", value) } - sv.Enabled = jtv + sv.Enabled = ptr.Bool(jtv) } case "lastModifiedDate": @@ -56944,7 +56953,7 @@ func awsRestjson1_deserializeDocumentThingConnectivity(v **types.ThingConnectivi if !ok { return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value) } - sv.Connected = jtv + sv.Connected = ptr.Bool(jtv) } case "disconnectReason": @@ -57720,7 +57729,7 @@ func awsRestjson1_deserializeDocumentThingTypeMetadata(v **types.ThingTypeMetada if value != nil { jtv, ok := value.(bool) if !ok { - return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value) + return fmt.Errorf("expected Boolean2 to be of type *bool, got %T instead", value) } sv.Deprecated = jtv } diff --git a/service/iot/serializers.go b/service/iot/serializers.go index ac39fc648e3..85106a094ca 100644 --- a/service/iot/serializers.go +++ b/service/iot/serializers.go @@ -3544,9 +3544,9 @@ func awsRestjson1_serializeOpDocumentCreateProvisioningTemplateInput(v *CreatePr ok.String(*v.Description) } - if v.Enabled { + if v.Enabled != nil { ok := object.Key("enabled") - ok.Boolean(v.Enabled) + ok.Boolean(*v.Enabled) } if v.PreProvisioningHook != nil { @@ -19543,9 +19543,9 @@ func awsRestjson1_serializeOpDocumentUpdateProvisioningTemplateInput(v *UpdatePr ok.String(*v.Description) } - if v.Enabled { + if v.Enabled != nil { ok := object.Key("enabled") - ok.Boolean(v.Enabled) + ok.Boolean(*v.Enabled) } if v.PreProvisioningHook != nil { diff --git a/service/iot/types/types.go b/service/iot/types/types.go index 3bc7c8af000..2846e699429 100644 --- a/service/iot/types/types.go +++ b/service/iot/types/types.go @@ -1942,8 +1942,13 @@ type Job struct { Description *string // 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. + // 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. DestinationPackageVersions []string // A key-value map that pairs the patterns that need to be replaced in a managed @@ -3037,7 +3042,7 @@ type ProvisioningTemplateSummary struct { Description *string // True if the fleet provision template is enabled, otherwise false. - Enabled bool + Enabled *bool // The date when the provisioning template summary was last modified. LastModifiedDate *time.Time @@ -3834,7 +3839,7 @@ type ThingConnectivity struct { // True if the thing is connected to the Amazon Web Services IoT Core service; // false if it is not connected. - Connected bool + Connected *bool // The reason why the client is disconnected. If the thing has been disconnected // for approximately an hour, the disconnectReason value might be missing. diff --git a/service/iotfleetwise/types/enums.go b/service/iotfleetwise/types/enums.go index 18b8341c87f..de88bb0e020 100644 --- a/service/iotfleetwise/types/enums.go +++ b/service/iotfleetwise/types/enums.go @@ -160,14 +160,13 @@ type NetworkInterfaceFailureReason string // Enum values for NetworkInterfaceFailureReason const ( - NetworkInterfaceFailureReasonDuplicateInterface NetworkInterfaceFailureReason = "DUPLICATE_NETWORK_INTERFACE" - NetworkInterfaceFailureReasonConflictingNetworkInterface NetworkInterfaceFailureReason = "CONFLICTING_NETWORK_INTERFACE" - NetworkInterfaceFailureReasonNetworkInterfaceToAddAlreadyExists NetworkInterfaceFailureReason = "NETWORK_INTERFACE_TO_ADD_ALREADY_EXISTS" - NetworkInterfaceFailureReasonCanNetworkInterfaceInfoIsNull NetworkInterfaceFailureReason = "CAN_NETWORK_INTERFACE_INFO_IS_NULL" - NetworkInterfaceFailureReasonObdNetworkInterfaceInfoIsNull NetworkInterfaceFailureReason = "OBD_NETWORK_INTERFACE_INFO_IS_NULL" - NetworkInterfaceFailureReasonNetworkInterfaceToRemoveAssociatedWithSignals NetworkInterfaceFailureReason = "NETWORK_INTERFACE_TO_REMOVE_ASSOCIATED_WITH_SIGNALS" - NetworkInterfaceFailureReasonVehicleMiddlewareNetworkInterfaceInfoIsNull NetworkInterfaceFailureReason = "VEHICLE_MIDDLEWARE_NETWORK_INTERFACE_INFO_IS_NULL" - NetworkInterfaceFailureReasonCustomerDecodedSignalNetworkInterfaceInfoIsNull NetworkInterfaceFailureReason = "CUSTOMER_DECODED_SIGNAL_NETWORK_INTERFACE_INFO_IS_NULL" + NetworkInterfaceFailureReasonDuplicateInterface NetworkInterfaceFailureReason = "DUPLICATE_NETWORK_INTERFACE" + NetworkInterfaceFailureReasonConflictingNetworkInterface NetworkInterfaceFailureReason = "CONFLICTING_NETWORK_INTERFACE" + NetworkInterfaceFailureReasonNetworkInterfaceToAddAlreadyExists NetworkInterfaceFailureReason = "NETWORK_INTERFACE_TO_ADD_ALREADY_EXISTS" + NetworkInterfaceFailureReasonCanNetworkInterfaceInfoIsNull NetworkInterfaceFailureReason = "CAN_NETWORK_INTERFACE_INFO_IS_NULL" + NetworkInterfaceFailureReasonObdNetworkInterfaceInfoIsNull NetworkInterfaceFailureReason = "OBD_NETWORK_INTERFACE_INFO_IS_NULL" + NetworkInterfaceFailureReasonNetworkInterfaceToRemoveAssociatedWithSignals NetworkInterfaceFailureReason = "NETWORK_INTERFACE_TO_REMOVE_ASSOCIATED_WITH_SIGNALS" + NetworkInterfaceFailureReasonVehicleMiddlewareNetworkInterfaceInfoIsNull NetworkInterfaceFailureReason = "VEHICLE_MIDDLEWARE_NETWORK_INTERFACE_INFO_IS_NULL" ) // Values returns all known values for NetworkInterfaceFailureReason. Note that @@ -183,7 +182,6 @@ func (NetworkInterfaceFailureReason) Values() []NetworkInterfaceFailureReason { "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", } } @@ -191,10 +189,9 @@ type NetworkInterfaceType string // Enum values for NetworkInterfaceType const ( - NetworkInterfaceTypeCanInterface NetworkInterfaceType = "CAN_INTERFACE" - NetworkInterfaceTypeObdInterface NetworkInterfaceType = "OBD_INTERFACE" - NetworkInterfaceTypeVehicleMiddleware NetworkInterfaceType = "VEHICLE_MIDDLEWARE" - NetworkInterfaceTypeCustomerDecodedInterface NetworkInterfaceType = "CUSTOMER_DECODED_INTERFACE" + NetworkInterfaceTypeCanInterface NetworkInterfaceType = "CAN_INTERFACE" + NetworkInterfaceTypeObdInterface NetworkInterfaceType = "OBD_INTERFACE" + NetworkInterfaceTypeVehicleMiddleware NetworkInterfaceType = "VEHICLE_MIDDLEWARE" ) // Values returns all known values for NetworkInterfaceType. Note that this can be @@ -205,7 +202,6 @@ func (NetworkInterfaceType) Values() []NetworkInterfaceType { "CAN_INTERFACE", "OBD_INTERFACE", "VEHICLE_MIDDLEWARE", - "CUSTOMER_DECODED_INTERFACE", } } @@ -382,7 +378,6 @@ const ( SignalDecoderFailureReasonNoSignalInCatalogForDecoderSignal SignalDecoderFailureReason = "NO_SIGNAL_IN_CATALOG_FOR_DECODER_SIGNAL" SignalDecoderFailureReasonSignalDecoderIncompatibleWithSignalCatalog SignalDecoderFailureReason = "SIGNAL_DECODER_INCOMPATIBLE_WITH_SIGNAL_CATALOG" SignalDecoderFailureReasonEmptyMessageSignal SignalDecoderFailureReason = "EMPTY_MESSAGE_SIGNAL" - SignalDecoderFailureReasonCustomerDecodedSignalInfoIsNull SignalDecoderFailureReason = "CUSTOMER_DECODED_SIGNAL_INFO_IS_NULL" ) // Values returns all known values for SignalDecoderFailureReason. Note that this @@ -405,7 +400,6 @@ func (SignalDecoderFailureReason) Values() []SignalDecoderFailureReason { "NO_SIGNAL_IN_CATALOG_FOR_DECODER_SIGNAL", "SIGNAL_DECODER_INCOMPATIBLE_WITH_SIGNAL_CATALOG", "EMPTY_MESSAGE_SIGNAL", - "CUSTOMER_DECODED_SIGNAL_INFO_IS_NULL", } } @@ -413,10 +407,9 @@ type SignalDecoderType string // Enum values for SignalDecoderType const ( - SignalDecoderTypeCanSignal SignalDecoderType = "CAN_SIGNAL" - SignalDecoderTypeObdSignal SignalDecoderType = "OBD_SIGNAL" - SignalDecoderTypeMessageSignal SignalDecoderType = "MESSAGE_SIGNAL" - SignalDecoderTypeCustomerDecodedSignal SignalDecoderType = "CUSTOMER_DECODED_SIGNAL" + SignalDecoderTypeCanSignal SignalDecoderType = "CAN_SIGNAL" + SignalDecoderTypeObdSignal SignalDecoderType = "OBD_SIGNAL" + SignalDecoderTypeMessageSignal SignalDecoderType = "MESSAGE_SIGNAL" ) // Values returns all known values for SignalDecoderType. Note that this can be @@ -427,7 +420,6 @@ func (SignalDecoderType) Values() []SignalDecoderType { "CAN_SIGNAL", "OBD_SIGNAL", "MESSAGE_SIGNAL", - "CUSTOMER_DECODED_SIGNAL", } } diff --git a/service/secretsmanager/api_op_DescribeSecret.go b/service/secretsmanager/api_op_DescribeSecret.go index a5b2f0ad3b8..2e714de6d75 100644 --- a/service/secretsmanager/api_op_DescribeSecret.go +++ b/service/secretsmanager/api_op_DescribeSecret.go @@ -83,14 +83,16 @@ type DescribeSecretOutput struct { LastChangedDate *time.Time // 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 // The name of the secret. Name *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 // The ID of the service that created this secret. For more information, see diff --git a/service/secretsmanager/api_op_GetRandomPassword.go b/service/secretsmanager/api_op_GetRandomPassword.go index f302fb8b8a6..a9b2deaa346 100644 --- a/service/secretsmanager/api_op_GetRandomPassword.go +++ b/service/secretsmanager/api_op_GetRandomPassword.go @@ -13,10 +13,12 @@ import ( // 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 (https://docs.aws.amazon.com/secretsmanager/latest/userguide/retrieve-ct-entries.html) +// 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 (https://docs.aws.amazon.com/secretsmanager/latest/userguide/retrieve-ct-entries.html) // . Required permissions: secretsmanager:GetRandomPassword . 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) diff --git a/service/secretsmanager/api_op_GetSecretValue.go b/service/secretsmanager/api_op_GetSecretValue.go index a8778ab3fe9..11ecfcd359b 100644 --- a/service/secretsmanager/api_op_GetSecretValue.go +++ b/service/secretsmanager/api_op_GetSecretValue.go @@ -87,11 +87,12 @@ type GetSecretValueOutput struct { Name *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. 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. + // 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. SecretBinary []byte // The decrypted secret value, if the secret value was originally provided as a diff --git a/service/secretsmanager/api_op_ReplicateSecretToRegions.go b/service/secretsmanager/api_op_ReplicateSecretToRegions.go index 313f28ca5c8..44d3acb0375 100644 --- a/service/secretsmanager/api_op_ReplicateSecretToRegions.go +++ b/service/secretsmanager/api_op_ReplicateSecretToRegions.go @@ -16,8 +16,11 @@ import ( // . 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 (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) // . func (c *Client) ReplicateSecretToRegions(ctx context.Context, params *ReplicateSecretToRegionsInput, optFns ...func(*Options)) (*ReplicateSecretToRegionsOutput, error) { diff --git a/service/secretsmanager/types/types.go b/service/secretsmanager/types/types.go index 7d549c908f9..e04e17e788c 100644 --- a/service/secretsmanager/types/types.go +++ b/service/secretsmanager/types/types.go @@ -178,7 +178,8 @@ type SecretListEntry struct { Name *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 // Returns the name of the service that created the secret. diff --git a/service/workspaces/api_op_CreateWorkspaces.go b/service/workspaces/api_op_CreateWorkspaces.go index df9691052db..854ac776e3c 100644 --- a/service/workspaces/api_op_CreateWorkspaces.go +++ b/service/workspaces/api_op_CreateWorkspaces.go @@ -20,9 +20,6 @@ import ( // . // - 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) func (c *Client) CreateWorkspaces(ctx context.Context, params *CreateWorkspacesInput, optFns ...func(*Options)) (*CreateWorkspacesOutput, error) { if params == nil { params = &CreateWorkspacesInput{} diff --git a/service/workspaces/api_op_RebootWorkspaces.go b/service/workspaces/api_op_RebootWorkspaces.go index 09338d7497b..dc1f862b4fc 100644 --- a/service/workspaces/api_op_RebootWorkspaces.go +++ b/service/workspaces/api_op_RebootWorkspaces.go @@ -13,8 +13,10 @@ import ( ) // 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. +// 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. func (c *Client) RebootWorkspaces(ctx context.Context, params *RebootWorkspacesInput, optFns ...func(*Options)) (*RebootWorkspacesOutput, error) { if params == nil { params = &RebootWorkspacesInput{} diff --git a/service/workspaces/types/types.go b/service/workspaces/types/types.go index 73f4f793c20..906088e0899 100644 --- a/service/workspaces/types/types.go +++ b/service/workspaces/types/types.go @@ -1269,13 +1269,9 @@ type WorkspaceProperties struct { RootVolumeSizeGib *int32 // 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 RunningMode // The time after a user logs off when WorkSpaces are automatically stopped.