diff --git a/.changes/next-release/feature-AmazonElasticComputeCloud-3ff7c4a.json b/.changes/next-release/feature-AmazonElasticComputeCloud-3ff7c4a.json new file mode 100644 index 000000000000..aeedab61388d --- /dev/null +++ b/.changes/next-release/feature-AmazonElasticComputeCloud-3ff7c4a.json @@ -0,0 +1,6 @@ +{ + "type": "feature", + "category": "Amazon Elastic Compute Cloud", + "contributor": "", + "description": "This feature enables customers to specify weekly recurring time window(s) for scheduled events that reboot, stop or terminate EC2 instances." +} diff --git a/services/ec2/src/main/resources/codegen-resources/paginators-1.json b/services/ec2/src/main/resources/codegen-resources/paginators-1.json index e1d041efc2c5..9da7b629d7bf 100755 --- a/services/ec2/src/main/resources/codegen-resources/paginators-1.json +++ b/services/ec2/src/main/resources/codegen-resources/paginators-1.json @@ -174,6 +174,12 @@ "output_token": "NextToken", "result_key": "InstanceCreditSpecifications" }, + "DescribeInstanceEventWindows": { + "input_token": "NextToken", + "limit_key": "MaxResults", + "output_token": "NextToken", + "result_key": "InstanceEventWindows" + }, "DescribeInstanceStatus": { "input_token": "NextToken", "limit_key": "MaxResults", diff --git a/services/ec2/src/main/resources/codegen-resources/service-2.json b/services/ec2/src/main/resources/codegen-resources/service-2.json index 31b978ea0e11..6efc9dcbdcf7 100755 --- a/services/ec2/src/main/resources/codegen-resources/service-2.json +++ b/services/ec2/src/main/resources/codegen-resources/service-2.json @@ -181,6 +181,16 @@ "output":{"shape":"AssociateIamInstanceProfileResult"}, "documentation":"

Associates an IAM instance profile with a running or stopped instance. You cannot associate more than one IAM instance profile with an instance.

" }, + "AssociateInstanceEventWindow":{ + "name":"AssociateInstanceEventWindow", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"AssociateInstanceEventWindowRequest"}, + "output":{"shape":"AssociateInstanceEventWindowResult"}, + "documentation":"

Associates one or more targets with an event window. Only one type of target (instance IDs, Dedicated Host IDs, or tags) can be specified with an event window.

For more information, see Define event windows for scheduled events in the Amazon EC2 User Guide.

" + }, "AssociateRouteTable":{ "name":"AssociateRouteTable", "http":{ @@ -578,6 +588,16 @@ "output":{"shape":"CreateImageResult"}, "documentation":"

Creates an Amazon EBS-backed AMI from an Amazon EBS-backed instance that is either running or stopped.

If you customized your instance with instance store volumes or EBS volumes in addition to the root device volume, the new AMI contains block device mapping information for those volumes. When you launch an instance from this new AMI, the instance automatically launches with those additional volumes.

For more information, see Creating Amazon EBS-Backed Linux AMIs in the Amazon Elastic Compute Cloud User Guide.

" }, + "CreateInstanceEventWindow":{ + "name":"CreateInstanceEventWindow", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateInstanceEventWindowRequest"}, + "output":{"shape":"CreateInstanceEventWindowResult"}, + "documentation":"

Creates an event window in which scheduled events for the associated Amazon EC2 instances can run.

You can define either a set of time ranges or a cron expression when creating the event window, but not both. All event window times are in UTC.

You can create up to 200 event windows per Amazon Web Services Region.

When you create the event window, targets (instance IDs, Dedicated Host IDs, or tags) are not yet associated with it. To ensure that the event window can be used, you must associate one or more targets with it by using the AssociateInstanceEventWindow API.

Event windows are applicable only for scheduled events that stop, reboot, or terminate instances.

Event windows are not applicable for:

For more information, see Define event windows for scheduled events in the Amazon EC2 User Guide.

" + }, "CreateInstanceExportTask":{ "name":"CreateInstanceExportTask", "http":{ @@ -1153,6 +1173,16 @@ "output":{"shape":"DeleteFpgaImageResult"}, "documentation":"

Deletes the specified Amazon FPGA Image (AFI).

" }, + "DeleteInstanceEventWindow":{ + "name":"DeleteInstanceEventWindow", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteInstanceEventWindowRequest"}, + "output":{"shape":"DeleteInstanceEventWindowResult"}, + "documentation":"

Deletes the specified event window.

For more information, see Define event windows for scheduled events in the Amazon EC2 User Guide.

" + }, "DeleteInternetGateway":{ "name":"DeleteInternetGateway", "http":{ @@ -1612,7 +1642,7 @@ }, "input":{"shape":"DeregisterInstanceEventNotificationAttributesRequest"}, "output":{"shape":"DeregisterInstanceEventNotificationAttributesResult"}, - "documentation":"

Deregisters tag keys to prevent tags that have the specified tag keys from being included in scheduled event notifications for resources in the Region.

" + "documentation":"

c

Deregisters tag keys to prevent tags that have the specified tag keys from being included in scheduled event notifications for resources in the Region.

" }, "DeregisterTransitGatewayMulticastGroupMembers":{ "name":"DeregisterTransitGatewayMulticastGroupMembers", @@ -2064,6 +2094,16 @@ "output":{"shape":"DescribeInstanceEventNotificationAttributesResult"}, "documentation":"

Describes the tag keys that are registered to appear in scheduled event notifications for resources in the current Region.

" }, + "DescribeInstanceEventWindows":{ + "name":"DescribeInstanceEventWindows", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeInstanceEventWindowsRequest"}, + "output":{"shape":"DescribeInstanceEventWindowsResult"}, + "documentation":"

Describes the specified event windows or all event windows.

If you specify event window IDs, the output includes information for only the specified event windows. If you specify filters, the output includes information for only those event windows that meet the filter criteria. If you do not specify event windows IDs or filters, the output includes information for all event windows, which can affect performance. We recommend that you use pagination to ensure that the operation returns quickly and successfully.

For more information, see Define event windows for scheduled events in the Amazon EC2 User Guide.

" + }, "DescribeInstanceStatus":{ "name":"DescribeInstanceStatus", "http":{ @@ -3039,6 +3079,16 @@ "output":{"shape":"DisassociateIamInstanceProfileResult"}, "documentation":"

Disassociates an IAM instance profile from a running or stopped instance.

Use DescribeIamInstanceProfileAssociations to get the association ID.

" }, + "DisassociateInstanceEventWindow":{ + "name":"DisassociateInstanceEventWindow", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DisassociateInstanceEventWindowRequest"}, + "output":{"shape":"DisassociateInstanceEventWindowResult"}, + "documentation":"

Disassociates one or more targets from an event window.

For more information, see Define event windows for scheduled events in the Amazon EC2 User Guide.

" + }, "DisassociateRouteTable":{ "name":"DisassociateRouteTable", "http":{ @@ -3672,6 +3722,16 @@ "output":{"shape":"ModifyInstanceEventStartTimeResult"}, "documentation":"

Modifies the start time for a scheduled Amazon EC2 instance event.

" }, + "ModifyInstanceEventWindow":{ + "name":"ModifyInstanceEventWindow", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ModifyInstanceEventWindowRequest"}, + "output":{"shape":"ModifyInstanceEventWindowResult"}, + "documentation":"

Modifies the specified event window.

You can define either a set of time ranges or a cron expression when modifying the event window, but not both.

To modify the targets associated with the event window, use the AssociateInstanceEventWindow and DisassociateInstanceEventWindow API.

If Amazon Web Services has already scheduled an event, modifying an event window won't change the time of the scheduled event.

For more information, see Define event windows for scheduled events in the Amazon EC2 User Guide.

" + }, "ModifyInstanceMetadataOptions":{ "name":"ModifyInstanceMetadataOptions", "http":{ @@ -5761,6 +5821,37 @@ } } }, + "AssociateInstanceEventWindowRequest":{ + "type":"structure", + "required":[ + "InstanceEventWindowId", + "AssociationTarget" + ], + "members":{ + "DryRun":{ + "shape":"Boolean", + "documentation":"

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

" + }, + "InstanceEventWindowId":{ + "shape":"InstanceEventWindowId", + "documentation":"

The ID of the event window.

" + }, + "AssociationTarget":{ + "shape":"InstanceEventWindowAssociationRequest", + "documentation":"

One or more targets associated with the specified event window.

" + } + } + }, + "AssociateInstanceEventWindowResult":{ + "type":"structure", + "members":{ + "InstanceEventWindow":{ + "shape":"InstanceEventWindow", + "documentation":"

Information about the event window.

", + "locationName":"instanceEventWindow" + } + } + }, "AssociateRouteTableRequest":{ "type":"structure", "required":["RouteTableId"], @@ -9577,6 +9668,43 @@ } } }, + "CreateInstanceEventWindowRequest":{ + "type":"structure", + "members":{ + "DryRun":{ + "shape":"Boolean", + "documentation":"

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

" + }, + "Name":{ + "shape":"String", + "documentation":"

The name of the event window.

" + }, + "TimeRanges":{ + "shape":"InstanceEventWindowTimeRangeRequestSet", + "documentation":"

The time range for the event window. If you specify a time range, you can't specify a cron expression.

", + "locationName":"TimeRange" + }, + "CronExpression":{ + "shape":"InstanceEventWindowCronExpression", + "documentation":"

The cron expression for the event window, for example, * 0-4,20-23 * * 1,5. If you specify a cron expression, you can't specify a time range.

Constraints:

For more information about cron expressions, see cron on the Wikipedia website.

" + }, + "TagSpecifications":{ + "shape":"TagSpecificationList", + "documentation":"

The tags to apply to the event window.

", + "locationName":"TagSpecification" + } + } + }, + "CreateInstanceEventWindowResult":{ + "type":"structure", + "members":{ + "InstanceEventWindow":{ + "shape":"InstanceEventWindow", + "documentation":"

Information about the event window.

", + "locationName":"instanceEventWindow" + } + } + }, "CreateInstanceExportTaskRequest":{ "type":"structure", "required":[ @@ -11951,6 +12079,13 @@ "DateTime":{"type":"timestamp"}, "DedicatedHostFlag":{"type":"boolean"}, "DedicatedHostId":{"type":"string"}, + "DedicatedHostIdList":{ + "type":"list", + "member":{ + "shape":"DedicatedHostId", + "locationName":"item" + } + }, "DefaultNetworkCardIndex":{"type":"integer"}, "DefaultRouteTableAssociationValue":{ "type":"string", @@ -12274,6 +12409,34 @@ } } }, + "DeleteInstanceEventWindowRequest":{ + "type":"structure", + "required":["InstanceEventWindowId"], + "members":{ + "DryRun":{ + "shape":"Boolean", + "documentation":"

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

" + }, + "ForceDelete":{ + "shape":"Boolean", + "documentation":"

Specify true to force delete the event window. Use the force delete parameter if the event window is currently associated with targets.

" + }, + "InstanceEventWindowId":{ + "shape":"InstanceEventWindowId", + "documentation":"

The ID of the event window.

" + } + } + }, + "DeleteInstanceEventWindowResult":{ + "type":"structure", + "members":{ + "InstanceEventWindowState":{ + "shape":"InstanceEventWindowStateChange", + "documentation":"

The state of the event window.

", + "locationName":"instanceEventWindowState" + } + } + }, "DeleteInternetGatewayRequest":{ "type":"structure", "required":["InternetGatewayId"], @@ -12878,7 +13041,7 @@ }, "Tags":{ "shape":"TagList", - "documentation":"

The tags to delete. Specify a tag key and an optional tag value to delete specific tags. If you specify a tag key without a tag value, we delete any tag with this key regardless of its value. If you specify a tag key with an empty string as the tag value, we delete the tag only if its value is an empty string.

If you omit this parameter, we delete all user-defined tags for the specified resources. We do not delete AWS-generated tags (tags that have the aws: prefix).

", + "documentation":"

The tags to delete. Specify a tag key and an optional tag value to delete specific tags. If you specify a tag key without a tag value, we delete any tag with this key regardless of its value. If you specify a tag key with an empty string as the tag value, we delete the tag only if its value is an empty string.

If you omit this parameter, we delete all user-defined tags for the specified resources. We do not delete Amazon Web Services-generated tags (tags that have the aws: prefix).

", "locationName":"tag" } } @@ -15376,6 +15539,49 @@ } } }, + "DescribeInstanceEventWindowsRequest":{ + "type":"structure", + "members":{ + "DryRun":{ + "shape":"Boolean", + "documentation":"

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

" + }, + "InstanceEventWindowIds":{ + "shape":"InstanceEventWindowIdSet", + "documentation":"

The IDs of the event windows.

", + "locationName":"InstanceEventWindowId" + }, + "Filters":{ + "shape":"FilterList", + "documentation":"

One or more filters.

", + "locationName":"Filter" + }, + "MaxResults":{ + "shape":"ResultRange", + "documentation":"

The maximum number of results to return in a single call. To retrieve the remaining results, make another call with the returned NextToken value. This value can be between 20 and 500. You cannot specify this parameter and the event window IDs parameter in the same call.

" + }, + "NextToken":{ + "shape":"String", + "documentation":"

The token to request the next page of results.

" + } + }, + "documentation":"Describe instance event windows by InstanceEventWindow." + }, + "DescribeInstanceEventWindowsResult":{ + "type":"structure", + "members":{ + "InstanceEventWindows":{ + "shape":"InstanceEventWindowSet", + "documentation":"

Information about the event windows.

", + "locationName":"instanceEventWindowSet" + }, + "NextToken":{ + "shape":"String", + "documentation":"

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

", + "locationName":"nextToken" + } + } + }, "DescribeInstanceStatusRequest":{ "type":"structure", "members":{ @@ -19635,6 +19841,37 @@ } } }, + "DisassociateInstanceEventWindowRequest":{ + "type":"structure", + "required":[ + "InstanceEventWindowId", + "AssociationTarget" + ], + "members":{ + "DryRun":{ + "shape":"Boolean", + "documentation":"

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

" + }, + "InstanceEventWindowId":{ + "shape":"InstanceEventWindowId", + "documentation":"

The ID of the event window.

" + }, + "AssociationTarget":{ + "shape":"InstanceEventWindowDisassociationRequest", + "documentation":"

One or more targets to disassociate from the specified event window.

" + } + } + }, + "DisassociateInstanceEventWindowResult":{ + "type":"structure", + "members":{ + "InstanceEventWindow":{ + "shape":"InstanceEventWindow", + "documentation":"

Information about the event window.

", + "locationName":"instanceEventWindow" + } + } + }, "DisassociateRouteTableRequest":{ "type":"structure", "required":["AssociationId"], @@ -23739,6 +23976,11 @@ "host" ] }, + "Hour":{ + "type":"integer", + "max":23, + "min":0 + }, "HttpTokensState":{ "type":"string", "enum":[ @@ -25476,6 +25718,210 @@ "documentation":"

Describes the credit option for CPU usage of a burstable performance instance.

" }, "InstanceEventId":{"type":"string"}, + "InstanceEventWindow":{ + "type":"structure", + "members":{ + "InstanceEventWindowId":{ + "shape":"InstanceEventWindowId", + "documentation":"

The ID of the event window.

", + "locationName":"instanceEventWindowId" + }, + "TimeRanges":{ + "shape":"InstanceEventWindowTimeRangeList", + "documentation":"

One or more time ranges defined for the event window.

", + "locationName":"timeRangeSet" + }, + "Name":{ + "shape":"String", + "documentation":"

The name of the event window.

", + "locationName":"name" + }, + "CronExpression":{ + "shape":"InstanceEventWindowCronExpression", + "documentation":"

The cron expression defined for the event window.

", + "locationName":"cronExpression" + }, + "AssociationTarget":{ + "shape":"InstanceEventWindowAssociationTarget", + "documentation":"

One or more targets associated with the event window.

", + "locationName":"associationTarget" + }, + "State":{ + "shape":"InstanceEventWindowState", + "documentation":"

The current state of the event window.

", + "locationName":"state" + }, + "Tags":{ + "shape":"TagList", + "documentation":"

The instance tags associated with the event window.

", + "locationName":"tagSet" + } + }, + "documentation":"

The event window.

" + }, + "InstanceEventWindowAssociationRequest":{ + "type":"structure", + "members":{ + "InstanceIds":{ + "shape":"InstanceIdList", + "documentation":"

The IDs of the instances to associate with the event window. If the instance is on a Dedicated Host, you can't specify the Instance ID parameter; you must use the Dedicated Host ID parameter.

", + "locationName":"InstanceId" + }, + "InstanceTags":{ + "shape":"TagList", + "documentation":"

The instance tags to associate with the event window. Any instances associated with the tags will be associated with the event window.

", + "locationName":"InstanceTag" + }, + "DedicatedHostIds":{ + "shape":"DedicatedHostIdList", + "documentation":"

The IDs of the Dedicated Hosts to associate with the event window.

", + "locationName":"DedicatedHostId" + } + }, + "documentation":"

One or more targets associated with the specified event window. Only one type of target (instance ID, instance tag, or Dedicated Host ID) can be associated with an event window.

" + }, + "InstanceEventWindowAssociationTarget":{ + "type":"structure", + "members":{ + "InstanceIds":{ + "shape":"InstanceIdList", + "documentation":"

The IDs of the instances associated with the event window.

", + "locationName":"instanceIdSet" + }, + "Tags":{ + "shape":"TagList", + "documentation":"

The instance tags associated with the event window. Any instances associated with the tags will be associated with the event window.

", + "locationName":"tagSet" + }, + "DedicatedHostIds":{ + "shape":"DedicatedHostIdList", + "documentation":"

The IDs of the Dedicated Hosts associated with the event window.

", + "locationName":"dedicatedHostIdSet" + } + }, + "documentation":"

One or more targets associated with the event window.

" + }, + "InstanceEventWindowCronExpression":{"type":"string"}, + "InstanceEventWindowDisassociationRequest":{ + "type":"structure", + "members":{ + "InstanceIds":{ + "shape":"InstanceIdList", + "documentation":"

The IDs of the instances to disassociate from the event window.

", + "locationName":"InstanceId" + }, + "InstanceTags":{ + "shape":"TagList", + "documentation":"

The instance tags to disassociate from the event window. Any instances associated with the tags will be disassociated from the event window.

", + "locationName":"InstanceTag" + }, + "DedicatedHostIds":{ + "shape":"DedicatedHostIdList", + "documentation":"

The IDs of the Dedicated Hosts to disassociate from the event window.

", + "locationName":"DedicatedHostId" + } + }, + "documentation":"

The targets to disassociate from the specified event window.

" + }, + "InstanceEventWindowId":{"type":"string"}, + "InstanceEventWindowIdSet":{ + "type":"list", + "member":{ + "shape":"InstanceEventWindowId", + "locationName":"InstanceEventWindowId" + } + }, + "InstanceEventWindowSet":{ + "type":"list", + "member":{ + "shape":"InstanceEventWindow", + "locationName":"item" + } + }, + "InstanceEventWindowState":{ + "type":"string", + "enum":[ + "creating", + "deleting", + "active", + "deleted" + ] + }, + "InstanceEventWindowStateChange":{ + "type":"structure", + "members":{ + "InstanceEventWindowId":{ + "shape":"InstanceEventWindowId", + "documentation":"

The ID of the event window.

", + "locationName":"instanceEventWindowId" + }, + "State":{ + "shape":"InstanceEventWindowState", + "documentation":"

The current state of the event window.

", + "locationName":"state" + } + }, + "documentation":"

The state of the event window.

" + }, + "InstanceEventWindowTimeRange":{ + "type":"structure", + "members":{ + "StartWeekDay":{ + "shape":"WeekDay", + "documentation":"

The day on which the time range begins.

", + "locationName":"startWeekDay" + }, + "StartHour":{ + "shape":"Hour", + "documentation":"

The hour when the time range begins.

", + "locationName":"startHour" + }, + "EndWeekDay":{ + "shape":"WeekDay", + "documentation":"

The day on which the time range ends.

", + "locationName":"endWeekDay" + }, + "EndHour":{ + "shape":"Hour", + "documentation":"

The hour when the time range ends.

", + "locationName":"endHour" + } + }, + "documentation":"

The start day and time and the end day and time of the time range, in UTC.

" + }, + "InstanceEventWindowTimeRangeList":{ + "type":"list", + "member":{ + "shape":"InstanceEventWindowTimeRange", + "locationName":"item" + } + }, + "InstanceEventWindowTimeRangeRequest":{ + "type":"structure", + "members":{ + "StartWeekDay":{ + "shape":"WeekDay", + "documentation":"

The day on which the time range begins.

" + }, + "StartHour":{ + "shape":"Hour", + "documentation":"

The hour when the time range begins.

" + }, + "EndWeekDay":{ + "shape":"WeekDay", + "documentation":"

The day on which the time range ends.

" + }, + "EndHour":{ + "shape":"Hour", + "documentation":"

The hour when the time range ends.

" + } + }, + "documentation":"

The start day and time and the end day and time of the time range, in UTC.

" + }, + "InstanceEventWindowTimeRangeRequestSet":{ + "type":"list", + "member":{"shape":"InstanceEventWindowTimeRangeRequest"} + }, "InstanceExportDetails":{ "type":"structure", "members":{ @@ -25516,6 +25962,13 @@ ] }, "InstanceId":{"type":"string"}, + "InstanceIdList":{ + "type":"list", + "member":{ + "shape":"InstanceId", + "locationName":"item" + } + }, "InstanceIdSet":{ "type":"list", "member":{ @@ -29715,6 +30168,43 @@ } } }, + "ModifyInstanceEventWindowRequest":{ + "type":"structure", + "required":["InstanceEventWindowId"], + "members":{ + "DryRun":{ + "shape":"Boolean", + "documentation":"

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

" + }, + "Name":{ + "shape":"String", + "documentation":"

The name of the event window.

" + }, + "InstanceEventWindowId":{ + "shape":"InstanceEventWindowId", + "documentation":"

The ID of the event window.

" + }, + "TimeRanges":{ + "shape":"InstanceEventWindowTimeRangeRequestSet", + "documentation":"

The time ranges of the event window.

", + "locationName":"TimeRange" + }, + "CronExpression":{ + "shape":"InstanceEventWindowCronExpression", + "documentation":"

The cron expression of the event window, for example, * 0-4,20-23 * * 1,5.

Constraints:

For more information about cron expressions, see cron on the Wikipedia website.

" + } + } + }, + "ModifyInstanceEventWindowResult":{ + "type":"structure", + "members":{ + "InstanceEventWindow":{ + "shape":"InstanceEventWindow", + "documentation":"

Information about the event window.

", + "locationName":"instanceEventWindow" + } + } + }, "ModifyInstanceMetadataOptionsRequest":{ "type":"structure", "required":["InstanceId"], @@ -35613,6 +36103,7 @@ "import-image-task", "import-snapshot-task", "instance", + "instance-event-window", "internet-gateway", "key-pair", "launch-template", @@ -35889,6 +36380,11 @@ } } }, + "ResultRange":{ + "type":"integer", + "max":500, + "min":20 + }, "RevokeClientVpnIngressRequest":{ "type":"structure", "required":[ @@ -38648,7 +39144,7 @@ }, "BlockDurationMinutes":{ "shape":"Integer", - "documentation":"

The required duration for the Spot Instances (also known as Spot blocks), in minutes. This value must be a multiple of 60 (60, 120, 180, 240, 300, or 360).

The duration period starts as soon as your Spot Instance receives its instance ID. At the end of the duration period, Amazon EC2 marks the Spot Instance for termination and provides a Spot Instance termination notice, which gives the instance a two-minute warning before it terminates.

You can't specify an Availability Zone group or a launch group if you specify a duration.

New accounts or accounts with no previous billing history with Amazon Web Services are not eligible for Spot Instances with a defined duration (also known as Spot blocks).

" + "documentation":"

Deprecated.

" }, "ValidUntil":{ "shape":"DateTime", @@ -39458,7 +39954,7 @@ "members":{ "ResourceType":{ "shape":"ResourceType", - "documentation":"

The type of resource to tag. Currently, the resource types that support tagging on creation are: capacity-reservation | carrier-gateway | client-vpn-endpoint | customer-gateway | dedicated-host | dhcp-options | egress-only-internet-gateway | elastic-ip | elastic-gpu | export-image-task | export-instance-task | fleet | fpga-image | host-reservation | image| import-image-task | import-snapshot-task | instance | internet-gateway | ipv4pool-ec2 | ipv6pool-ec2 | key-pair | launch-template | local-gateway-route-table-vpc-association | placement-group | prefix-list | natgateway | network-acl | network-interface | reserved-instances |route-table | security-group| snapshot | spot-fleet-request | spot-instances-request | snapshot | subnet | traffic-mirror-filter | traffic-mirror-session | traffic-mirror-target | transit-gateway | transit-gateway-attachment | transit-gateway-multicast-domain | transit-gateway-route-table | volume |vpc | vpc-peering-connection | vpc-endpoint (for interface and gateway endpoints) | vpc-endpoint-service (for AWS PrivateLink) | vpc-flow-log | vpn-connection | vpn-gateway.

To tag a resource after it has been created, see CreateTags.

", + "documentation":"

The type of resource to tag. Currently, the resource types that support tagging on creation are: capacity-reservation | carrier-gateway | client-vpn-endpoint | customer-gateway | dedicated-host | dhcp-options | egress-only-internet-gateway | elastic-ip | elastic-gpu | export-image-task | export-instance-task | fleet | fpga-image | host-reservation | image| import-image-task | import-snapshot-task | instance | instance-event-window | internet-gateway | ipv4pool-ec2 | ipv6pool-ec2 | key-pair | launch-template | local-gateway-route-table-vpc-association | placement-group | prefix-list | natgateway | network-acl | network-interface | reserved-instances |route-table | security-group| snapshot | spot-fleet-request | spot-instances-request | snapshot | subnet | traffic-mirror-filter | traffic-mirror-session | traffic-mirror-target | transit-gateway | transit-gateway-attachment | transit-gateway-multicast-domain | transit-gateway-route-table | volume |vpc | vpc-peering-connection | vpc-endpoint (for interface and gateway endpoints) | vpc-endpoint-service (for PrivateLink) | vpc-flow-log | vpn-connection | vpn-gateway.

To tag a resource after it has been created, see CreateTags.

", "locationName":"resourceType" }, "Tags":{ @@ -43612,6 +44108,18 @@ "type":"list", "member":{"shape":"VpnTunnelOptionsSpecification"} }, + "WeekDay":{ + "type":"string", + "enum":[ + "sunday", + "monday", + "tuesday", + "wednesday", + "thursday", + "friday", + "saturday" + ] + }, "WithdrawByoipCidrRequest":{ "type":"structure", "required":["Cidr"],