AWS SDK

AWS SDK

rev. b9ccf3dabc550b0fbe85e785b19c58a2472f505e..96418c2288c67c1dde0d5d93cadadbf52fc820f4

Files changed:

tmp-codegen-diff/services/ec2/generated-src/main/kotlin/aws/sdk/kotlin/services/ec2/Ec2Client.kt

@@ -146,146 +205,207 @@
  166    166   
import aws.sdk.kotlin.services.ec2.model.CreateEgressOnlyInternetGatewayRequest
  167    167   
import aws.sdk.kotlin.services.ec2.model.CreateEgressOnlyInternetGatewayResponse
  168    168   
import aws.sdk.kotlin.services.ec2.model.CreateFleetRequest
  169    169   
import aws.sdk.kotlin.services.ec2.model.CreateFleetResponse
  170    170   
import aws.sdk.kotlin.services.ec2.model.CreateFlowLogsRequest
  171    171   
import aws.sdk.kotlin.services.ec2.model.CreateFlowLogsResponse
  172    172   
import aws.sdk.kotlin.services.ec2.model.CreateFpgaImageRequest
  173    173   
import aws.sdk.kotlin.services.ec2.model.CreateFpgaImageResponse
  174    174   
import aws.sdk.kotlin.services.ec2.model.CreateImageRequest
  175    175   
import aws.sdk.kotlin.services.ec2.model.CreateImageResponse
         176  +
import aws.sdk.kotlin.services.ec2.model.CreateImageUsageReportRequest
         177  +
import aws.sdk.kotlin.services.ec2.model.CreateImageUsageReportResponse
  176    178   
import aws.sdk.kotlin.services.ec2.model.CreateInstanceConnectEndpointRequest
  177    179   
import aws.sdk.kotlin.services.ec2.model.CreateInstanceConnectEndpointResponse
  178    180   
import aws.sdk.kotlin.services.ec2.model.CreateInstanceEventWindowRequest
  179    181   
import aws.sdk.kotlin.services.ec2.model.CreateInstanceEventWindowResponse
  180    182   
import aws.sdk.kotlin.services.ec2.model.CreateInstanceExportTaskRequest
  181    183   
import aws.sdk.kotlin.services.ec2.model.CreateInstanceExportTaskResponse
  182    184   
import aws.sdk.kotlin.services.ec2.model.CreateInternetGatewayRequest
  183    185   
import aws.sdk.kotlin.services.ec2.model.CreateInternetGatewayResponse
  184    186   
import aws.sdk.kotlin.services.ec2.model.CreateIpamExternalResourceVerificationTokenRequest
  185    187   
import aws.sdk.kotlin.services.ec2.model.CreateIpamExternalResourceVerificationTokenResponse
@@ -316,318 +375,379 @@
  336    338   
import aws.sdk.kotlin.services.ec2.model.DeleteDhcpOptionsRequest
  337    339   
import aws.sdk.kotlin.services.ec2.model.DeleteDhcpOptionsResponse
  338    340   
import aws.sdk.kotlin.services.ec2.model.DeleteEgressOnlyInternetGatewayRequest
  339    341   
import aws.sdk.kotlin.services.ec2.model.DeleteEgressOnlyInternetGatewayResponse
  340    342   
import aws.sdk.kotlin.services.ec2.model.DeleteFleetsRequest
  341    343   
import aws.sdk.kotlin.services.ec2.model.DeleteFleetsResponse
  342    344   
import aws.sdk.kotlin.services.ec2.model.DeleteFlowLogsRequest
  343    345   
import aws.sdk.kotlin.services.ec2.model.DeleteFlowLogsResponse
  344    346   
import aws.sdk.kotlin.services.ec2.model.DeleteFpgaImageRequest
  345    347   
import aws.sdk.kotlin.services.ec2.model.DeleteFpgaImageResponse
         348  +
import aws.sdk.kotlin.services.ec2.model.DeleteImageUsageReportRequest
         349  +
import aws.sdk.kotlin.services.ec2.model.DeleteImageUsageReportResponse
  346    350   
import aws.sdk.kotlin.services.ec2.model.DeleteInstanceConnectEndpointRequest
  347    351   
import aws.sdk.kotlin.services.ec2.model.DeleteInstanceConnectEndpointResponse
  348    352   
import aws.sdk.kotlin.services.ec2.model.DeleteInstanceEventWindowRequest
  349    353   
import aws.sdk.kotlin.services.ec2.model.DeleteInstanceEventWindowResponse
  350    354   
import aws.sdk.kotlin.services.ec2.model.DeleteInternetGatewayRequest
  351    355   
import aws.sdk.kotlin.services.ec2.model.DeleteInternetGatewayResponse
  352    356   
import aws.sdk.kotlin.services.ec2.model.DeleteIpamExternalResourceVerificationTokenRequest
  353    357   
import aws.sdk.kotlin.services.ec2.model.DeleteIpamExternalResourceVerificationTokenResponse
  354    358   
import aws.sdk.kotlin.services.ec2.model.DeleteIpamPoolRequest
  355    359   
import aws.sdk.kotlin.services.ec2.model.DeleteIpamPoolResponse
@@ -568,572 +627,637 @@
  588    592   
import aws.sdk.kotlin.services.ec2.model.DescribeHostsRequest
  589    593   
import aws.sdk.kotlin.services.ec2.model.DescribeHostsResponse
  590    594   
import aws.sdk.kotlin.services.ec2.model.DescribeIamInstanceProfileAssociationsRequest
  591    595   
import aws.sdk.kotlin.services.ec2.model.DescribeIamInstanceProfileAssociationsResponse
  592    596   
import aws.sdk.kotlin.services.ec2.model.DescribeIdFormatRequest
  593    597   
import aws.sdk.kotlin.services.ec2.model.DescribeIdFormatResponse
  594    598   
import aws.sdk.kotlin.services.ec2.model.DescribeIdentityIdFormatRequest
  595    599   
import aws.sdk.kotlin.services.ec2.model.DescribeIdentityIdFormatResponse
  596    600   
import aws.sdk.kotlin.services.ec2.model.DescribeImageAttributeRequest
  597    601   
import aws.sdk.kotlin.services.ec2.model.DescribeImageAttributeResponse
         602  +
import aws.sdk.kotlin.services.ec2.model.DescribeImageReferencesRequest
         603  +
import aws.sdk.kotlin.services.ec2.model.DescribeImageReferencesResponse
         604  +
import aws.sdk.kotlin.services.ec2.model.DescribeImageUsageReportEntriesRequest
         605  +
import aws.sdk.kotlin.services.ec2.model.DescribeImageUsageReportEntriesResponse
         606  +
import aws.sdk.kotlin.services.ec2.model.DescribeImageUsageReportsRequest
         607  +
import aws.sdk.kotlin.services.ec2.model.DescribeImageUsageReportsResponse
  598    608   
import aws.sdk.kotlin.services.ec2.model.DescribeImagesRequest
  599    609   
import aws.sdk.kotlin.services.ec2.model.DescribeImagesResponse
  600    610   
import aws.sdk.kotlin.services.ec2.model.DescribeImportImageTasksRequest
  601    611   
import aws.sdk.kotlin.services.ec2.model.DescribeImportImageTasksResponse
  602    612   
import aws.sdk.kotlin.services.ec2.model.DescribeImportSnapshotTasksRequest
  603    613   
import aws.sdk.kotlin.services.ec2.model.DescribeImportSnapshotTasksResponse
  604    614   
import aws.sdk.kotlin.services.ec2.model.DescribeInstanceAttributeRequest
  605    615   
import aws.sdk.kotlin.services.ec2.model.DescribeInstanceAttributeResponse
  606    616   
import aws.sdk.kotlin.services.ec2.model.DescribeInstanceConnectEndpointsRequest
  607    617   
import aws.sdk.kotlin.services.ec2.model.DescribeInstanceConnectEndpointsResponse
@@ -1104,1114 +1163,1175 @@
 1124   1134   
import aws.sdk.kotlin.services.ec2.model.ModifyIdFormatRequest
 1125   1135   
import aws.sdk.kotlin.services.ec2.model.ModifyIdFormatResponse
 1126   1136   
import aws.sdk.kotlin.services.ec2.model.ModifyIdentityIdFormatRequest
 1127   1137   
import aws.sdk.kotlin.services.ec2.model.ModifyIdentityIdFormatResponse
 1128   1138   
import aws.sdk.kotlin.services.ec2.model.ModifyImageAttributeRequest
 1129   1139   
import aws.sdk.kotlin.services.ec2.model.ModifyImageAttributeResponse
 1130   1140   
import aws.sdk.kotlin.services.ec2.model.ModifyInstanceAttributeRequest
 1131   1141   
import aws.sdk.kotlin.services.ec2.model.ModifyInstanceAttributeResponse
 1132   1142   
import aws.sdk.kotlin.services.ec2.model.ModifyInstanceCapacityReservationAttributesRequest
 1133   1143   
import aws.sdk.kotlin.services.ec2.model.ModifyInstanceCapacityReservationAttributesResponse
        1144  +
import aws.sdk.kotlin.services.ec2.model.ModifyInstanceConnectEndpointRequest
        1145  +
import aws.sdk.kotlin.services.ec2.model.ModifyInstanceConnectEndpointResponse
 1134   1146   
import aws.sdk.kotlin.services.ec2.model.ModifyInstanceCpuOptionsRequest
 1135   1147   
import aws.sdk.kotlin.services.ec2.model.ModifyInstanceCpuOptionsResponse
 1136   1148   
import aws.sdk.kotlin.services.ec2.model.ModifyInstanceCreditSpecificationRequest
 1137   1149   
import aws.sdk.kotlin.services.ec2.model.ModifyInstanceCreditSpecificationResponse
 1138   1150   
import aws.sdk.kotlin.services.ec2.model.ModifyInstanceEventStartTimeRequest
 1139   1151   
import aws.sdk.kotlin.services.ec2.model.ModifyInstanceEventStartTimeResponse
 1140   1152   
import aws.sdk.kotlin.services.ec2.model.ModifyInstanceEventWindowRequest
 1141   1153   
import aws.sdk.kotlin.services.ec2.model.ModifyInstanceEventWindowResponse
 1142   1154   
import aws.sdk.kotlin.services.ec2.model.ModifyInstanceMaintenanceOptionsRequest
 1143   1155   
import aws.sdk.kotlin.services.ec2.model.ModifyInstanceMaintenanceOptionsResponse
@@ -1403,1415 +1463,1475 @@
 1423   1435   
import aws.smithy.kotlin.runtime.telemetry.TelemetryConfig
 1424   1436   
import aws.smithy.kotlin.runtime.telemetry.TelemetryProvider
 1425   1437   
import aws.smithy.kotlin.runtime.util.LazyAsyncValue
 1426   1438   
import kotlin.collections.List
 1427   1439   
import kotlin.jvm.JvmStatic
 1428   1440   
import kotlin.time.Duration
 1429   1441   
import kotlinx.coroutines.runBlocking
 1430   1442   
 1431   1443   
 1432   1444   
public const val ServiceId: String = "EC2"
 1433         -
public const val SdkVersion: String = "1.5.12-SNAPSHOT"
        1445  +
public const val SdkVersion: String = "1.5.53-SNAPSHOT"
 1434   1446   
public const val ServiceApiVersion: String = "2016-11-15"
 1435   1447   
 1436   1448   
/**
 1437   1449   
 * # Amazon Elastic Compute Cloud
 1438   1450   
 * You can access the features of Amazon Elastic Compute Cloud (Amazon EC2) programmatically. For more information, see the [Amazon EC2 Developer Guide](https://docs.aws.amazon.com/ec2/latest/devguide).
 1439   1451   
 */
 1440   1452   
public interface Ec2Client : SdkClient {
 1441   1453   
    /**
 1442   1454   
     * Ec2Client's configuration
 1443   1455   
     */
@@ -2127,2139 +2208,2245 @@
 2147   2159   
     * @sample aws.sdk.kotlin.services.ec2.samples.ConfirmProductInstance.sample
 2148   2160   
     */
 2149   2161   
    public suspend fun confirmProductInstance(input: ConfirmProductInstanceRequest): ConfirmProductInstanceResponse
 2150   2162   
 2151   2163   
    /**
 2152   2164   
     * Copies the specified Amazon FPGA Image (AFI) to the current Region.
 2153   2165   
     */
 2154   2166   
    public suspend fun copyFpgaImage(input: CopyFpgaImageRequest): CopyFpgaImageResponse
 2155   2167   
 2156   2168   
    /**
 2157         -
     * Initiates an AMI copy operation. You can copy an AMI from one Region to another, or from a Region to an Outpost. You can't copy an AMI from an Outpost to a Region, from one Outpost to another, or within the same Outpost. To copy an AMI to another partition, see [CreateStoreImageTask](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateStoreImageTask.html).
        2169  +
     * Initiates an AMI copy operation. You must specify the source AMI ID and both the source and destination locations. The copy operation must be initiated in the destination Region.
 2158   2170   
     *
 2159         -
     * When you copy an AMI from one Region to another, the destination Region is the current Region.
        2171  +
     * **CopyImage supports the following source to destination copies:**
        2172  +
     * + Region to Region
        2173  +
     * + Region to Outpost
        2174  +
     * + Parent Region to Local Zone
        2175  +
     * + Local Zone to parent Region
        2176  +
     * + Between Local Zones with the same parent Region (only supported for certain Local Zones)
 2160   2177   
     *
 2161         -
     * When you copy an AMI from a Region to an Outpost, specify the ARN of the Outpost as the destination. Backing snapshots copied to an Outpost are encrypted by default using the default encryption key for the Region or the key that you specify. Outposts do not support unencrypted snapshots.
        2178  +
     * **CopyImage does not support the following source to destination copies:**
        2179  +
     * + Local Zone to non-parent Regions
        2180  +
     * + Between Local Zones with different parent Regions
        2181  +
     * + Local Zone to Outpost
        2182  +
     * + Outpost to Local Zone
        2183  +
     * + Outpost to Region
        2184  +
     * + Between Outposts
        2185  +
     * + Within same Outpost
        2186  +
     * + Cross-partition copies (use [CreateStoreImageTask](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateStoreImageTask.html) instead)
 2162   2187   
     *
 2163         -
     * For information about the prerequisites when copying an AMI, see [Copy an Amazon EC2 AMI](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/CopyingAMIs.html) in the *Amazon EC2 User Guide*.
        2188  +
     * **Destination specification**
        2189  +
     * + Region to Region: The destination Region is the Region in which you initiate the copy operation.
        2190  +
     * + Region to Outpost: Specify the destination using the `DestinationOutpostArn` parameter (the ARN of the Outpost)
        2191  +
     * + Region to Local Zone, and Local Zone to Local Zone copies: Specify the destination using the `DestinationAvailabilityZone` parameter (the name of the destination Local Zone) or `DestinationAvailabilityZoneId` parameter (the ID of the destination Local Zone).
        2192  +
     *
        2193  +
     * **Snapshot encryption**
        2194  +
     * + Region to Outpost: Backing snapshots copied to an Outpost are encrypted by default using the default encryption key for the Region or the key that you specify. Outposts do not support unencrypted snapshots.
        2195  +
     * + Region to Local Zone, and Local Zone to Local Zone: Not all Local Zones require encrypted snapshots. In Local Zones that require encrypted snapshots, backing snapshots are automatically encrypted during copy. In Local Zones where encryption is not required, snapshots retain their original encryption state (encrypted or unencrypted) by default.
        2196  +
     *
        2197  +
     * For more information, including the required permissions for copying an AMI, see [Copy an Amazon EC2 AMI](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/CopyingAMIs.html) in the *Amazon EC2 User Guide*.
 2164   2198   
     *
 2165   2199   
     * @sample aws.sdk.kotlin.services.ec2.samples.CopyImage.sample
 2166   2200   
     */
 2167   2201   
    public suspend fun copyImage(input: CopyImageRequest): CopyImageResponse
 2168   2202   
 2169   2203   
    /**
 2170         -
     * Copies a point-in-time snapshot of an EBS volume and stores it in Amazon S3. You can copy a snapshot within the same Region, from one Region to another, or from a Region to an Outpost. You can't copy a snapshot from an Outpost to a Region, from one Outpost to another, or within the same Outpost.
        2204  +
     * Creates an exact copy of an Amazon EBS snapshot.
 2171   2205   
     *
 2172         -
     * You can use the snapshot to create EBS volumes or Amazon Machine Images (AMIs).
        2206  +
     * The location of the source snapshot determines whether you can copy it or not, and the allowed destinations for the snapshot copy.
        2207  +
     * + If the source snapshot is in a Region, you can copy it within that Region, to another Region, to an Outpost associated with that Region, or to a Local Zone in that Region.
        2208  +
     * + If the source snapshot is in a Local Zone, you can copy it within that Local Zone, to another Local Zone in the same zone group, or to the parent Region of the Local Zone.
        2209  +
     * + If the source snapshot is on an Outpost, you can't copy it.
 2173   2210   
     *
 2174         -
     * When copying snapshots to a Region, copies of encrypted EBS snapshots remain encrypted. Copies of unencrypted snapshots remain unencrypted, unless you enable encryption for the snapshot copy operation. By default, encrypted snapshot copies use the default KMS key; however, you can specify a different KMS key. To copy an encrypted snapshot that has been shared from another account, you must have permissions for the KMS key used to encrypt the snapshot.
        2211  +
     * When copying snapshots to a Region, the encryption outcome for the snapshot copy depends on the Amazon EBS encryption by default setting for the destination Region, the encryption status of the source snapshot, and the encryption parameters you specify in the request. For more information, see [ Encryption and snapshot copying](https://docs.aws.amazon.com/ebs/latest/userguide/ebs-copy-snapshot.html#creating-encrypted-snapshots).
 2175   2212   
     *
 2176         -
     * Snapshots copied to an Outpost are encrypted by default using the default encryption key for the Region, or a different key that you specify in the request using **KmsKeyId**. Outposts do not support unencrypted snapshots. For more information, see [Amazon EBS local snapshots on Outposts](https://docs.aws.amazon.com/ebs/latest/userguide/snapshots-outposts.html#ami) in the *Amazon EBS User Guide*.
        2213  +
     * Snapshots copied to an Outpost must be encrypted. Unencrypted snapshots are not supported on Outposts. For more information, [ Amazon EBS local snapshots on Outposts](https://docs.aws.amazon.com/ebs/latest/userguide/snapshots-outposts.html#considerations).
 2177   2214   
     *
 2178         -
     * Snapshots created by copying another snapshot have an arbitrary volume ID that should not be used for any purpose.
        2215  +
     * Snapshots copies have an arbitrary source volume ID. Do not use this volume ID for any purpose.
 2179   2216   
     *
 2180   2217   
     * For more information, see [Copy an Amazon EBS snapshot](https://docs.aws.amazon.com/ebs/latest/userguide/ebs-copy-snapshot.html) in the *Amazon EBS User Guide*.
 2181   2218   
     *
 2182   2219   
     * @sample aws.sdk.kotlin.services.ec2.samples.CopySnapshot.sample
 2183   2220   
     */
 2184   2221   
    public suspend fun copySnapshot(input: CopySnapshotRequest): CopySnapshotResponse
 2185   2222   
 2186   2223   
    /**
 2187   2224   
     * Creates a new Capacity Reservation with the specified attributes. Capacity Reservations enable you to reserve capacity for your Amazon EC2 instances in a specific Availability Zone for any duration.
 2188   2225   
     *
@@ -2218,2255 +2353,2397 @@
 2238   2275   
     *
 2239   2276   
     * To create more than one customer gateway with the same VPN type, IP address, and BGP ASN, specify a unique device name for each customer gateway. An identical request returns information about the existing customer gateway; it doesn't create a new customer gateway.
 2240   2277   
     *
 2241   2278   
     * @sample aws.sdk.kotlin.services.ec2.samples.CreateCustomerGateway.sample
 2242   2279   
     */
 2243   2280   
    public suspend fun createCustomerGateway(input: CreateCustomerGatewayRequest): CreateCustomerGatewayResponse
 2244   2281   
 2245   2282   
    /**
 2246   2283   
     * Creates a default subnet with a size `/20` IPv4 CIDR block in the specified Availability Zone in your default VPC. You can have only one default subnet per Availability Zone. For more information, see [Create a default subnet](https://docs.aws.amazon.com/vpc/latest/userguide/work-with-default-vpc.html#create-default-subnet) in the *Amazon VPC User Guide*.
 2247   2284   
     */
 2248         -
    public suspend fun createDefaultSubnet(input: CreateDefaultSubnetRequest): CreateDefaultSubnetResponse
        2285  +
    public suspend fun createDefaultSubnet(input: CreateDefaultSubnetRequest = CreateDefaultSubnetRequest { }): CreateDefaultSubnetResponse
 2249   2286   
 2250   2287   
    /**
 2251   2288   
     * Creates a default VPC with a size `/16` IPv4 CIDR block and a default subnet in each Availability Zone. For more information about the components of a default VPC, see [Default VPCs](https://docs.aws.amazon.com/vpc/latest/userguide/default-vpc.html) in the *Amazon VPC User Guide*. You cannot specify the components of the default VPC yourself.
 2252   2289   
     *
 2253   2290   
     * If you deleted your previous default VPC, you can create a default VPC. You cannot have more than one default VPC per Region.
 2254   2291   
     */
 2255   2292   
    public suspend fun createDefaultVpc(input: CreateDefaultVpcRequest = CreateDefaultVpcRequest { }): CreateDefaultVpcResponse
 2256   2293   
 2257   2294   
    /**
 2258   2295   
     * Delegates ownership of the Amazon EBS root volume for an Apple silicon Mac instance to an administrative user.
 2259   2296   
     */
 2260   2297   
    public suspend fun createDelegateMacVolumeOwnershipTask(input: CreateDelegateMacVolumeOwnershipTaskRequest): CreateDelegateMacVolumeOwnershipTaskResponse
 2261   2298   
 2262   2299   
    /**
 2263   2300   
     * Creates a custom set of DHCP options. After you create a DHCP option set, you associate it with a VPC. After you associate a DHCP option set with a VPC, all existing and newly launched instances in the VPC use this set of DHCP options.
 2264   2301   
     *
 2265   2302   
     * The following are the individual DHCP options you can specify. For more information, see [DHCP option sets](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_DHCP_Options.html) in the *Amazon VPC User Guide*.
 2266   2303   
     * + `domain-name` - If you're using AmazonProvidedDNS in `us-east-1`, specify `ec2.internal`. If you're using AmazonProvidedDNS in any other Region, specify `region.compute.internal`. Otherwise, specify a custom domain name. This value is used to complete unqualified DNS hostnames.Some Linux operating systems accept multiple domain names separated by spaces. However, Windows and other Linux operating systems treat the value as a single domain, which results in unexpected behavior. If your DHCP option set is associated with a VPC that has instances running operating systems that treat the value as a single domain, specify only one domain name.
 2267   2304   
     * + `domain-name-servers` - The IP addresses of up to four DNS servers, or AmazonProvidedDNS. To specify multiple domain name servers in a single parameter, separate the IP addresses using commas. To have your instances receive custom DNS hostnames as specified in `domain-name`, you must specify a custom DNS server.
 2268   2305   
     * + `ntp-servers` - The IP addresses of up to eight Network Time Protocol (NTP) servers (four IPv4 addresses and four IPv6 addresses).
 2269   2306   
     * + `netbios-name-servers` - The IP addresses of up to four NetBIOS name servers.
 2270   2307   
     * + `netbios-node-type` - The NetBIOS node type (1, 2, 4, or 8). We recommend that you specify 2. Broadcast and multicast are not supported. For more information about NetBIOS node types, see [RFC 2132](https://www.ietf.org/rfc/rfc2132.txt).
 2271   2308   
     * + `ipv6-address-preferred-lease-time` - A value (in seconds, minutes, hours, or years) for how frequently a running instance with an IPv6 assigned to it goes through DHCPv6 lease renewal. Acceptable values are between 140 and 2147483647 seconds (approximately 68 years). If no value is entered, the default lease time is 140 seconds. If you use long-term addressing for EC2 instances, you can increase the lease time and avoid frequent lease renewal requests. Lease renewal typically occurs when half of the lease time has elapsed.
 2272   2309   
     *
 2273   2310   
     * @sample aws.sdk.kotlin.services.ec2.samples.CreateDhcpOptions.sample
 2274   2311   
     */
 2275   2312   
    public suspend fun createDhcpOptions(input: CreateDhcpOptionsRequest): CreateDhcpOptionsResponse
 2276   2313   
 2277   2314   
    /**
 2278   2315   
     * [IPv6 only] Creates an egress-only internet gateway for your VPC. An egress-only internet gateway is used to enable outbound communication over IPv6 from instances in your VPC to the internet, and prevents hosts outside of your VPC from initiating an IPv6 connection with your instance.
 2279   2316   
     */
 2280   2317   
    public suspend fun createEgressOnlyInternetGateway(input: CreateEgressOnlyInternetGatewayRequest): CreateEgressOnlyInternetGatewayResponse
 2281   2318   
 2282   2319   
    /**
 2283   2320   
     * Creates an EC2 Fleet that contains the configuration information for On-Demand Instances and Spot Instances. Instances are launched immediately if there is available capacity.
 2284   2321   
     *
 2285   2322   
     * A single EC2 Fleet can include multiple launch specifications that vary by instance type, AMI, Availability Zone, or subnet.
 2286   2323   
     *
 2287   2324   
     * For more information, see [EC2 Fleet](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-fleet.html) in the *Amazon EC2 User Guide*.
 2288   2325   
     */
 2289   2326   
    public suspend fun createFleet(input: CreateFleetRequest): CreateFleetResponse
 2290   2327   
 2291   2328   
    /**
 2292   2329   
     * Creates one or more flow logs to capture information about IP traffic for a specific network interface, subnet, or VPC.
 2293   2330   
     *
 2294   2331   
     * Flow log data for a monitored network interface is recorded as flow log records, which are log events consisting of fields that describe the traffic flow. For more information, see [Flow log records](https://docs.aws.amazon.com/vpc/latest/userguide/flow-log-records.html) in the *Amazon VPC User Guide*.
 2295   2332   
     *
 2296   2333   
     * When publishing to CloudWatch Logs, flow log records are published to a log group, and each network interface has a unique log stream in the log group. When publishing to Amazon S3, flow log records for all of the monitored network interfaces are published to a single log file object that is stored in the specified bucket.
 2297   2334   
     *
 2298   2335   
     * For more information, see [VPC Flow Logs](https://docs.aws.amazon.com/vpc/latest/userguide/flow-logs.html) in the *Amazon VPC User Guide*.
 2299   2336   
     */
 2300   2337   
    public suspend fun createFlowLogs(input: CreateFlowLogsRequest): CreateFlowLogsResponse
 2301   2338   
 2302   2339   
    /**
 2303   2340   
     * Creates an Amazon FPGA Image (AFI) from the specified design checkpoint (DCP).
 2304   2341   
     *
 2305         -
     * The create operation is asynchronous. To verify that the AFI is ready for use, check the output logs.
        2342  +
     * The create operation is asynchronous. To verify that the AFI was successfully created and is ready for use, check the output logs.
 2306   2343   
     *
 2307   2344   
     * An AFI contains the FPGA bitstream that is ready to download to an FPGA. You can securely deploy an AFI on multiple FPGA-accelerated instances. For more information, see the [Amazon Web Services FPGA Hardware Development Kit](https://github.com/aws/aws-fpga/).
 2308   2345   
     */
 2309   2346   
    public suspend fun createFpgaImage(input: CreateFpgaImageRequest): CreateFpgaImageResponse
 2310   2347   
 2311   2348   
    /**
 2312   2349   
     * Creates an Amazon EBS-backed AMI from an Amazon EBS-backed instance that is either running or stopped.
 2313   2350   
     *
 2314   2351   
     * If you customized your instance with instance store volumes or Amazon 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.
 2315   2352   
     *
 2316   2353   
     * The location of the source instance determines where you can create the snapshots of the AMI:
 2317   2354   
     * + If the source instance is in a Region, you must create the snapshots in the same Region as the instance.
 2318   2355   
     * + If the source instance is in a Local Zone, you can create the snapshots in the same Local Zone or in its parent Region.
 2319   2356   
     *
 2320   2357   
     * For more information, see [Create an Amazon EBS-backed AMI](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/creating-an-ami-ebs.html) in the *Amazon Elastic Compute Cloud User Guide*.
 2321   2358   
     */
 2322   2359   
    public suspend fun createImage(input: CreateImageRequest): CreateImageResponse
 2323   2360   
        2361  +
    /**
        2362  +
     * Creates a report that shows how your image is used across other Amazon Web Services accounts. The report provides visibility into which accounts are using the specified image, and how many resources (EC2 instances or launch templates) are referencing it.
        2363  +
     *
        2364  +
     * For more information, see [View your AMI usage](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/your-ec2-ami-usage.html) in the *Amazon EC2 User Guide*.
        2365  +
     */
        2366  +
    public suspend fun createImageUsageReport(input: CreateImageUsageReportRequest): CreateImageUsageReportResponse
        2367  +
 2324   2368   
    /**
 2325   2369   
     * Creates an EC2 Instance Connect Endpoint.
 2326   2370   
     *
 2327   2371   
     * An EC2 Instance Connect Endpoint allows you to connect to an instance, without requiring the instance to have a public IPv4 or public IPv6 address. For more information, see [Connect to your instances using EC2 Instance Connect Endpoint](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Connect-using-EC2-Instance-Connect-Endpoint.html) in the *Amazon EC2 User Guide*.
 2328   2372   
     */
 2329   2373   
    public suspend fun createInstanceConnectEndpoint(input: CreateInstanceConnectEndpointRequest): CreateInstanceConnectEndpointResponse
 2330   2374   
 2331   2375   
    /**
 2332   2376   
     * Creates an event window in which scheduled events for the associated Amazon EC2 instances can run.
 2333   2377   
     *
@@ -2880,2924 +2940,2984 @@
 2900   2944   
     *
 2901   2945   
     * You can create encrypted volumes. Encrypted volumes must be attached to instances that support Amazon EBS encryption. Volumes that are created from encrypted snapshots are also automatically encrypted. For more information, see [Amazon EBS encryption](https://docs.aws.amazon.com/ebs/latest/userguide/ebs-encryption.html) in the *Amazon EBS User Guide*.
 2902   2946   
     *
 2903   2947   
     * You can tag your volumes during creation. For more information, see [Tag your Amazon EC2 resources](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Using_Tags.html) in the *Amazon EC2 User Guide*.
 2904   2948   
     *
 2905   2949   
     * For more information, see [Create an Amazon EBS volume](https://docs.aws.amazon.com/ebs/latest/userguide/ebs-creating-volume.html) in the *Amazon EBS User Guide*.
 2906   2950   
     *
 2907   2951   
     * @sample aws.sdk.kotlin.services.ec2.samples.CreateVolume.sample
 2908   2952   
     * @sample aws.sdk.kotlin.services.ec2.samples.CreateVolume.sample2
 2909   2953   
     */
 2910         -
    public suspend fun createVolume(input: CreateVolumeRequest): CreateVolumeResponse
        2954  +
    public suspend fun createVolume(input: CreateVolumeRequest = CreateVolumeRequest { }): CreateVolumeResponse
 2911   2955   
 2912   2956   
    /**
 2913   2957   
     * Creates a VPC with the specified CIDR blocks. For more information, see [IP addressing for your VPCs and subnets](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-ip-addressing.html) in the *Amazon VPC User Guide*.
 2914   2958   
     *
 2915   2959   
     * You can optionally request an IPv6 CIDR block for the VPC. You can request an Amazon-provided IPv6 CIDR block from Amazon's pool of IPv6 addresses or an IPv6 CIDR block from an IPv6 address pool that you provisioned through bring your own IP addresses ([BYOIP](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-byoip.html)).
 2916   2960   
     *
 2917   2961   
     * By default, each instance that you launch in the VPC has the default DHCP options, which include only a default DNS server that we provide (AmazonProvidedDNS). For more information, see [DHCP option sets](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_DHCP_Options.html) in the *Amazon VPC User Guide*.
 2918   2962   
     *
 2919   2963   
     * You can specify the instance tenancy value for the VPC when you create it. You can't change this value for the VPC after you create it. For more information, see [Dedicated Instances](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/dedicated-instance.html) in the *Amazon EC2 User Guide*.
 2920   2964   
     *
@@ -3040,3084 +3099,3150 @@
 3060   3104   
    /**
 3061   3105   
     * Deletes one or more flow logs.
 3062   3106   
     */
 3063   3107   
    public suspend fun deleteFlowLogs(input: DeleteFlowLogsRequest): DeleteFlowLogsResponse
 3064   3108   
 3065   3109   
    /**
 3066   3110   
     * Deletes the specified Amazon FPGA Image (AFI).
 3067   3111   
     */
 3068   3112   
    public suspend fun deleteFpgaImage(input: DeleteFpgaImageRequest): DeleteFpgaImageResponse
 3069   3113   
        3114  +
    /**
        3115  +
     * Deletes the specified image usage report.
        3116  +
     *
        3117  +
     * For more information, see [View your AMI usage](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/your-ec2-ami-usage.html) in the *Amazon EC2 User Guide*.
        3118  +
     */
        3119  +
    public suspend fun deleteImageUsageReport(input: DeleteImageUsageReportRequest): DeleteImageUsageReportResponse
        3120  +
 3070   3121   
    /**
 3071   3122   
     * Deletes the specified EC2 Instance Connect Endpoint.
 3072   3123   
     */
 3073   3124   
    public suspend fun deleteInstanceConnectEndpoint(input: DeleteInstanceConnectEndpointRequest): DeleteInstanceConnectEndpointResponse
 3074   3125   
 3075   3126   
    /**
 3076   3127   
     * Deletes the specified event window.
 3077   3128   
     *
 3078   3129   
     * For more information, see [Define event windows for scheduled events](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/event-windows.html) in the *Amazon EC2 User Guide*.
 3079   3130   
     */
@@ -3864,3915 +3923,3995 @@
 3884   3935   
 3885   3936   
    /**
 3886   3937   
     * Describes the specified attribute of the specified AMI. You can specify only one attribute at a time.
 3887   3938   
     *
 3888   3939   
     * The order of the elements in the response, including those within nested structures, might vary. Applications should not assume the elements appear in a particular order.
 3889   3940   
     *
 3890   3941   
     * @sample aws.sdk.kotlin.services.ec2.samples.DescribeImageAttribute.sample
 3891   3942   
     */
 3892   3943   
    public suspend fun describeImageAttribute(input: DescribeImageAttributeRequest): DescribeImageAttributeResponse
 3893   3944   
        3945  +
    /**
        3946  +
     * Describes your Amazon Web Services resources that are referencing the specified images.
        3947  +
     *
        3948  +
     * For more information, see [Identify your resources referencing specified AMIs](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-ami-references.html) in the *Amazon EC2 User Guide*.
        3949  +
     */
        3950  +
    public suspend fun describeImageReferences(input: DescribeImageReferencesRequest): DescribeImageReferencesResponse
        3951  +
        3952  +
    /**
        3953  +
     * Describes the entries in image usage reports, showing how your images are used across other Amazon Web Services accounts.
        3954  +
     *
        3955  +
     * For more information, see [View your AMI usage](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/your-ec2-ami-usage.html) in the *Amazon EC2 User Guide*.
        3956  +
     */
        3957  +
    public suspend fun describeImageUsageReportEntries(input: DescribeImageUsageReportEntriesRequest = DescribeImageUsageReportEntriesRequest { }): DescribeImageUsageReportEntriesResponse
        3958  +
        3959  +
    /**
        3960  +
     * Describes the configuration and status of image usage reports, filtered by report IDs or image IDs.
        3961  +
     *
        3962  +
     * For more information, see [View your AMI usage](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/your-ec2-ami-usage.html) in the *Amazon EC2 User Guide*.
        3963  +
     */
        3964  +
    public suspend fun describeImageUsageReports(input: DescribeImageUsageReportsRequest = DescribeImageUsageReportsRequest { }): DescribeImageUsageReportsResponse
        3965  +
 3894   3966   
    /**
 3895   3967   
     * Describes the specified images (AMIs, AKIs, and ARIs) available to you or all of the images available to you.
 3896   3968   
     *
 3897   3969   
     * The images available to you include public images, private images that you own, and private images owned by other Amazon Web Services accounts for which you have explicit launch permissions.
 3898   3970   
     *
 3899   3971   
     * Recently deregistered images appear in the returned results for a short interval and then return empty results. After all instances that reference a deregistered AMI are terminated, specifying the ID of the image will eventually return an error indicating that the AMI ID cannot be found.
 3900   3972   
     *
 3901   3973   
     * When Allowed AMIs is set to `enabled`, only allowed images are returned in the results, with the `imageAllowed` field set to `true` for each image. In `audit-mode`, the `imageAllowed` field is set to `true` for images that meet the account's Allowed AMIs criteria, and `false` for images that don't meet the criteria. For more information, see [Allowed AMIs](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-allowed-amis.html).
 3902   3974   
     *
 3903   3975   
     * The Amazon EC2 API follows an eventual consistency model. This means that the result of an API command you run that creates or modifies resources might not be immediately available to all subsequent commands you run. For guidance on how to manage eventual consistency, see [Eventual consistency in the Amazon EC2 API](https://docs.aws.amazon.com/ec2/latest/devguide/eventual-consistency.html) in the *Amazon EC2 Developer Guide*.
@@ -4884,4956 +4945,5015 @@
 4904   4976   
     *
 4905   4977   
     * You can re-enable a disabled AMI using [EnableImage](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_EnableImage.html).
 4906   4978   
     *
 4907   4979   
     * For more information, see [Disable an AMI](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/disable-an-ami.html) in the *Amazon EC2 User Guide*.
 4908   4980   
     */
 4909   4981   
    public suspend fun disableImage(input: DisableImageRequest): DisableImageResponse
 4910   4982   
 4911   4983   
    /**
 4912   4984   
     * Disables *block public access for AMIs* at the account level in the specified Amazon Web Services Region. This removes the *block public access* restriction from your account. With the restriction removed, you can publicly share your AMIs in the specified Amazon Web Services Region.
 4913   4985   
     *
 4914         -
     * The API can take up to 10 minutes to configure this setting. During this time, if you run [GetImageBlockPublicAccessState](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_GetImageBlockPublicAccessState.html), the response will be `block-new-sharing`. When the API has completed the configuration, the response will be `unblocked`.
 4915         -
     *
 4916   4986   
     * For more information, see [Block public access to your AMIs](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/block-public-access-to-amis.html) in the *Amazon EC2 User Guide*.
 4917   4987   
     */
 4918   4988   
    public suspend fun disableImageBlockPublicAccess(input: DisableImageBlockPublicAccessRequest = DisableImageBlockPublicAccessRequest { }): DisableImageBlockPublicAccessResponse
 4919   4989   
 4920   4990   
    /**
 4921   4991   
     * Cancels the deprecation of the specified AMI.
 4922   4992   
     *
 4923   4993   
     * For more information, see [Deprecate an Amazon EC2 AMI](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ami-deprecate.html) in the *Amazon EC2 User Guide*.
 4924   4994   
     */
 4925   4995   
    public suspend fun disableImageDeprecation(input: DisableImageDeprecationRequest): DisableImageDeprecationResponse
@@ -5855,5925 +5914,5991 @@
 5875   5945   
     * @sample aws.sdk.kotlin.services.ec2.samples.ModifyInstanceAttribute.sample
 5876   5946   
     * @sample aws.sdk.kotlin.services.ec2.samples.ModifyInstanceAttribute.sample2
 5877   5947   
     */
 5878   5948   
    public suspend fun modifyInstanceAttribute(input: ModifyInstanceAttributeRequest): ModifyInstanceAttributeResponse
 5879   5949   
 5880   5950   
    /**
 5881   5951   
     * Modifies the Capacity Reservation settings for a stopped instance. Use this action to configure an instance to target a specific Capacity Reservation, run in any `open` Capacity Reservation with matching attributes, run in On-Demand Instance capacity, or only run in a Capacity Reservation.
 5882   5952   
     */
 5883   5953   
    public suspend fun modifyInstanceCapacityReservationAttributes(input: ModifyInstanceCapacityReservationAttributesRequest): ModifyInstanceCapacityReservationAttributesResponse
 5884   5954   
        5955  +
    /**
        5956  +
     * Modifies the specified EC2 Instance Connect Endpoint.
        5957  +
     *
        5958  +
     * For more information, see [Modify an EC2 Instance Connect Endpoint](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/modify-ec2-instance-connect-endpoint.html) in the *Amazon EC2 User Guide*.
        5959  +
     */
        5960  +
    public suspend fun modifyInstanceConnectEndpoint(input: ModifyInstanceConnectEndpointRequest): ModifyInstanceConnectEndpointResponse
        5961  +
 5885   5962   
    /**
 5886   5963   
     * By default, all vCPUs for the instance type are active when you launch an instance. When you configure the number of active vCPUs for the instance, it can help you save on licensing costs and optimize performance. The base cost of the instance remains unchanged.
 5887   5964   
     *
 5888   5965   
     * The number of active vCPUs equals the number of threads per CPU core multiplied by the number of cores. The instance must be in a `Stopped` state before you make changes.
 5889   5966   
     *
 5890   5967   
     * Some instance type options do not support this capability. For more information, see [Supported CPU options](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/cpu-options-supported-instances-values.html) in the *Amazon EC2 User Guide*.
 5891   5968   
     */
 5892   5969   
    public suspend fun modifyInstanceCpuOptions(input: ModifyInstanceCpuOptionsRequest): ModifyInstanceCpuOptionsResponse
 5893   5970   
 5894   5971   
    /**
@@ -7422,7499 +7503,7605 @@
 7442   7519   
 * @sample aws.sdk.kotlin.services.ec2.samples.ConfirmProductInstance.sample
 7443   7520   
 */
 7444   7521   
public suspend inline fun Ec2Client.confirmProductInstance(crossinline block: ConfirmProductInstanceRequest.Builder.() -> Unit): ConfirmProductInstanceResponse = confirmProductInstance(ConfirmProductInstanceRequest.Builder().apply(block).build())
 7445   7522   
 7446   7523   
/**
 7447   7524   
 * Copies the specified Amazon FPGA Image (AFI) to the current Region.
 7448   7525   
 */
 7449   7526   
public suspend inline fun Ec2Client.copyFpgaImage(crossinline block: CopyFpgaImageRequest.Builder.() -> Unit): CopyFpgaImageResponse = copyFpgaImage(CopyFpgaImageRequest.Builder().apply(block).build())
 7450   7527   
 7451   7528   
/**
 7452         -
 * Initiates an AMI copy operation. You can copy an AMI from one Region to another, or from a Region to an Outpost. You can't copy an AMI from an Outpost to a Region, from one Outpost to another, or within the same Outpost. To copy an AMI to another partition, see [CreateStoreImageTask](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateStoreImageTask.html).
        7529  +
 * Initiates an AMI copy operation. You must specify the source AMI ID and both the source and destination locations. The copy operation must be initiated in the destination Region.
 7453   7530   
 *
 7454         -
 * When you copy an AMI from one Region to another, the destination Region is the current Region.
        7531  +
 * **CopyImage supports the following source to destination copies:**
        7532  +
 * + Region to Region
        7533  +
 * + Region to Outpost
        7534  +
 * + Parent Region to Local Zone
        7535  +
 * + Local Zone to parent Region
        7536  +
 * + Between Local Zones with the same parent Region (only supported for certain Local Zones)
 7455   7537   
 *
 7456         -
 * When you copy an AMI from a Region to an Outpost, specify the ARN of the Outpost as the destination. Backing snapshots copied to an Outpost are encrypted by default using the default encryption key for the Region or the key that you specify. Outposts do not support unencrypted snapshots.
        7538  +
 * **CopyImage does not support the following source to destination copies:**
        7539  +
 * + Local Zone to non-parent Regions
        7540  +
 * + Between Local Zones with different parent Regions
        7541  +
 * + Local Zone to Outpost
        7542  +
 * + Outpost to Local Zone
        7543  +
 * + Outpost to Region
        7544  +
 * + Between Outposts
        7545  +
 * + Within same Outpost
        7546  +
 * + Cross-partition copies (use [CreateStoreImageTask](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateStoreImageTask.html) instead)
 7457   7547   
 *
 7458         -
 * For information about the prerequisites when copying an AMI, see [Copy an Amazon EC2 AMI](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/CopyingAMIs.html) in the *Amazon EC2 User Guide*.
        7548  +
 * **Destination specification**
        7549  +
 * + Region to Region: The destination Region is the Region in which you initiate the copy operation.
        7550  +
 * + Region to Outpost: Specify the destination using the `DestinationOutpostArn` parameter (the ARN of the Outpost)
        7551  +
 * + Region to Local Zone, and Local Zone to Local Zone copies: Specify the destination using the `DestinationAvailabilityZone` parameter (the name of the destination Local Zone) or `DestinationAvailabilityZoneId` parameter (the ID of the destination Local Zone).
        7552  +
 *
        7553  +
 * **Snapshot encryption**
        7554  +
 * + Region to Outpost: Backing snapshots copied to an Outpost are encrypted by default using the default encryption key for the Region or the key that you specify. Outposts do not support unencrypted snapshots.
        7555  +
 * + Region to Local Zone, and Local Zone to Local Zone: Not all Local Zones require encrypted snapshots. In Local Zones that require encrypted snapshots, backing snapshots are automatically encrypted during copy. In Local Zones where encryption is not required, snapshots retain their original encryption state (encrypted or unencrypted) by default.
        7556  +
 *
        7557  +
 * For more information, including the required permissions for copying an AMI, see [Copy an Amazon EC2 AMI](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/CopyingAMIs.html) in the *Amazon EC2 User Guide*.
 7459   7558   
 *
 7460   7559   
 * @sample aws.sdk.kotlin.services.ec2.samples.CopyImage.sample
 7461   7560   
 */
 7462   7561   
public suspend inline fun Ec2Client.copyImage(crossinline block: CopyImageRequest.Builder.() -> Unit): CopyImageResponse = copyImage(CopyImageRequest.Builder().apply(block).build())
 7463   7562   
 7464   7563   
/**
 7465         -
 * Copies a point-in-time snapshot of an EBS volume and stores it in Amazon S3. You can copy a snapshot within the same Region, from one Region to another, or from a Region to an Outpost. You can't copy a snapshot from an Outpost to a Region, from one Outpost to another, or within the same Outpost.
        7564  +
 * Creates an exact copy of an Amazon EBS snapshot.
 7466   7565   
 *
 7467         -
 * You can use the snapshot to create EBS volumes or Amazon Machine Images (AMIs).
        7566  +
 * The location of the source snapshot determines whether you can copy it or not, and the allowed destinations for the snapshot copy.
        7567  +
 * + If the source snapshot is in a Region, you can copy it within that Region, to another Region, to an Outpost associated with that Region, or to a Local Zone in that Region.
        7568  +
 * + If the source snapshot is in a Local Zone, you can copy it within that Local Zone, to another Local Zone in the same zone group, or to the parent Region of the Local Zone.
        7569  +
 * + If the source snapshot is on an Outpost, you can't copy it.
 7468   7570   
 *
 7469         -
 * When copying snapshots to a Region, copies of encrypted EBS snapshots remain encrypted. Copies of unencrypted snapshots remain unencrypted, unless you enable encryption for the snapshot copy operation. By default, encrypted snapshot copies use the default KMS key; however, you can specify a different KMS key. To copy an encrypted snapshot that has been shared from another account, you must have permissions for the KMS key used to encrypt the snapshot.
        7571  +
 * When copying snapshots to a Region, the encryption outcome for the snapshot copy depends on the Amazon EBS encryption by default setting for the destination Region, the encryption status of the source snapshot, and the encryption parameters you specify in the request. For more information, see [ Encryption and snapshot copying](https://docs.aws.amazon.com/ebs/latest/userguide/ebs-copy-snapshot.html#creating-encrypted-snapshots).
 7470   7572   
 *
 7471         -
 * Snapshots copied to an Outpost are encrypted by default using the default encryption key for the Region, or a different key that you specify in the request using **KmsKeyId**. Outposts do not support unencrypted snapshots. For more information, see [Amazon EBS local snapshots on Outposts](https://docs.aws.amazon.com/ebs/latest/userguide/snapshots-outposts.html#ami) in the *Amazon EBS User Guide*.
        7573  +
 * Snapshots copied to an Outpost must be encrypted. Unencrypted snapshots are not supported on Outposts. For more information, [ Amazon EBS local snapshots on Outposts](https://docs.aws.amazon.com/ebs/latest/userguide/snapshots-outposts.html#considerations).
 7472   7574   
 *
 7473         -
 * Snapshots created by copying another snapshot have an arbitrary volume ID that should not be used for any purpose.
        7575  +
 * Snapshots copies have an arbitrary source volume ID. Do not use this volume ID for any purpose.
 7474   7576   
 *
 7475   7577   
 * For more information, see [Copy an Amazon EBS snapshot](https://docs.aws.amazon.com/ebs/latest/userguide/ebs-copy-snapshot.html) in the *Amazon EBS User Guide*.
 7476   7578   
 *
 7477   7579   
 * @sample aws.sdk.kotlin.services.ec2.samples.CopySnapshot.sample
 7478   7580   
 */
 7479   7581   
public suspend inline fun Ec2Client.copySnapshot(crossinline block: CopySnapshotRequest.Builder.() -> Unit): CopySnapshotResponse = copySnapshot(CopySnapshotRequest.Builder().apply(block).build())
 7480   7582   
 7481   7583   
/**
 7482   7584   
 * Creates a new Capacity Reservation with the specified attributes. Capacity Reservations enable you to reserve capacity for your Amazon EC2 instances in a specific Availability Zone for any duration.
 7483   7585   
 *
@@ -7570,7672 +7648,7757 @@
 7590   7692   
 *
 7591   7693   
 * When publishing to CloudWatch Logs, flow log records are published to a log group, and each network interface has a unique log stream in the log group. When publishing to Amazon S3, flow log records for all of the monitored network interfaces are published to a single log file object that is stored in the specified bucket.
 7592   7694   
 *
 7593   7695   
 * For more information, see [VPC Flow Logs](https://docs.aws.amazon.com/vpc/latest/userguide/flow-logs.html) in the *Amazon VPC User Guide*.
 7594   7696   
 */
 7595   7697   
public suspend inline fun Ec2Client.createFlowLogs(crossinline block: CreateFlowLogsRequest.Builder.() -> Unit): CreateFlowLogsResponse = createFlowLogs(CreateFlowLogsRequest.Builder().apply(block).build())
 7596   7698   
 7597   7699   
/**
 7598   7700   
 * Creates an Amazon FPGA Image (AFI) from the specified design checkpoint (DCP).
 7599   7701   
 *
 7600         -
 * The create operation is asynchronous. To verify that the AFI is ready for use, check the output logs.
        7702  +
 * The create operation is asynchronous. To verify that the AFI was successfully created and is ready for use, check the output logs.
 7601   7703   
 *
 7602   7704   
 * An AFI contains the FPGA bitstream that is ready to download to an FPGA. You can securely deploy an AFI on multiple FPGA-accelerated instances. For more information, see the [Amazon Web Services FPGA Hardware Development Kit](https://github.com/aws/aws-fpga/).
 7603   7705   
 */
 7604   7706   
public suspend inline fun Ec2Client.createFpgaImage(crossinline block: CreateFpgaImageRequest.Builder.() -> Unit): CreateFpgaImageResponse = createFpgaImage(CreateFpgaImageRequest.Builder().apply(block).build())
 7605   7707   
 7606   7708   
/**
 7607   7709   
 * Creates an Amazon EBS-backed AMI from an Amazon EBS-backed instance that is either running or stopped.
 7608   7710   
 *
 7609   7711   
 * If you customized your instance with instance store volumes or Amazon 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.
 7610   7712   
 *
 7611   7713   
 * The location of the source instance determines where you can create the snapshots of the AMI:
 7612   7714   
 * + If the source instance is in a Region, you must create the snapshots in the same Region as the instance.
 7613   7715   
 * + If the source instance is in a Local Zone, you can create the snapshots in the same Local Zone or in its parent Region.
 7614   7716   
 *
 7615   7717   
 * For more information, see [Create an Amazon EBS-backed AMI](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/creating-an-ami-ebs.html) in the *Amazon Elastic Compute Cloud User Guide*.
 7616   7718   
 */
 7617   7719   
public suspend inline fun Ec2Client.createImage(crossinline block: CreateImageRequest.Builder.() -> Unit): CreateImageResponse = createImage(CreateImageRequest.Builder().apply(block).build())
 7618   7720   
        7721  +
/**
        7722  +
 * Creates a report that shows how your image is used across other Amazon Web Services accounts. The report provides visibility into which accounts are using the specified image, and how many resources (EC2 instances or launch templates) are referencing it.
        7723  +
 *
        7724  +
 * For more information, see [View your AMI usage](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/your-ec2-ami-usage.html) in the *Amazon EC2 User Guide*.
        7725  +
 */
        7726  +
public suspend inline fun Ec2Client.createImageUsageReport(crossinline block: CreateImageUsageReportRequest.Builder.() -> Unit): CreateImageUsageReportResponse = createImageUsageReport(CreateImageUsageReportRequest.Builder().apply(block).build())
        7727  +
 7619   7728   
/**
 7620   7729   
 * Creates an EC2 Instance Connect Endpoint.
 7621   7730   
 *
 7622   7731   
 * An EC2 Instance Connect Endpoint allows you to connect to an instance, without requiring the instance to have a public IPv4 or public IPv6 address. For more information, see [Connect to your instances using EC2 Instance Connect Endpoint](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Connect-using-EC2-Instance-Connect-Endpoint.html) in the *Amazon EC2 User Guide*.
 7623   7732   
 */
 7624   7733   
public suspend inline fun Ec2Client.createInstanceConnectEndpoint(crossinline block: CreateInstanceConnectEndpointRequest.Builder.() -> Unit): CreateInstanceConnectEndpointResponse = createInstanceConnectEndpoint(CreateInstanceConnectEndpointRequest.Builder().apply(block).build())
 7625   7734   
 7626   7735   
/**
 7627   7736   
 * Creates an event window in which scheduled events for the associated Amazon EC2 instances can run.
 7628   7737   
 *
@@ -8335,8444 +8394,8510 @@
 8355   8464   
/**
 8356   8465   
 * Deletes one or more flow logs.
 8357   8466   
 */
 8358   8467   
public suspend inline fun Ec2Client.deleteFlowLogs(crossinline block: DeleteFlowLogsRequest.Builder.() -> Unit): DeleteFlowLogsResponse = deleteFlowLogs(DeleteFlowLogsRequest.Builder().apply(block).build())
 8359   8468   
 8360   8469   
/**
 8361   8470   
 * Deletes the specified Amazon FPGA Image (AFI).
 8362   8471   
 */
 8363   8472   
public suspend inline fun Ec2Client.deleteFpgaImage(crossinline block: DeleteFpgaImageRequest.Builder.() -> Unit): DeleteFpgaImageResponse = deleteFpgaImage(DeleteFpgaImageRequest.Builder().apply(block).build())
 8364   8473   
        8474  +
/**
        8475  +
 * Deletes the specified image usage report.
        8476  +
 *
        8477  +
 * For more information, see [View your AMI usage](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/your-ec2-ami-usage.html) in the *Amazon EC2 User Guide*.
        8478  +
 */
        8479  +
public suspend inline fun Ec2Client.deleteImageUsageReport(crossinline block: DeleteImageUsageReportRequest.Builder.() -> Unit): DeleteImageUsageReportResponse = deleteImageUsageReport(DeleteImageUsageReportRequest.Builder().apply(block).build())
        8480  +
 8365   8481   
/**
 8366   8482   
 * Deletes the specified EC2 Instance Connect Endpoint.
 8367   8483   
 */
 8368   8484   
public suspend inline fun Ec2Client.deleteInstanceConnectEndpoint(crossinline block: DeleteInstanceConnectEndpointRequest.Builder.() -> Unit): DeleteInstanceConnectEndpointResponse = deleteInstanceConnectEndpoint(DeleteInstanceConnectEndpointRequest.Builder().apply(block).build())
 8369   8485   
 8370   8486   
/**
 8371   8487   
 * Deletes the specified event window.
 8372   8488   
 *
 8373   8489   
 * For more information, see [Define event windows for scheduled events](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/event-windows.html) in the *Amazon EC2 User Guide*.
 8374   8490   
 */
@@ -9159,9275 +9218,9355 @@
 9179   9295   
 9180   9296   
/**
 9181   9297   
 * Describes the specified attribute of the specified AMI. You can specify only one attribute at a time.
 9182   9298   
 *
 9183   9299   
 * The order of the elements in the response, including those within nested structures, might vary. Applications should not assume the elements appear in a particular order.
 9184   9300   
 *
 9185   9301   
 * @sample aws.sdk.kotlin.services.ec2.samples.DescribeImageAttribute.sample
 9186   9302   
 */
 9187   9303   
public suspend inline fun Ec2Client.describeImageAttribute(crossinline block: DescribeImageAttributeRequest.Builder.() -> Unit): DescribeImageAttributeResponse = describeImageAttribute(DescribeImageAttributeRequest.Builder().apply(block).build())
 9188   9304   
        9305  +
/**
        9306  +
 * Describes your Amazon Web Services resources that are referencing the specified images.
        9307  +
 *
        9308  +
 * For more information, see [Identify your resources referencing specified AMIs](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-ami-references.html) in the *Amazon EC2 User Guide*.
        9309  +
 */
        9310  +
public suspend inline fun Ec2Client.describeImageReferences(crossinline block: DescribeImageReferencesRequest.Builder.() -> Unit): DescribeImageReferencesResponse = describeImageReferences(DescribeImageReferencesRequest.Builder().apply(block).build())
        9311  +
        9312  +
/**
        9313  +
 * Describes the entries in image usage reports, showing how your images are used across other Amazon Web Services accounts.
        9314  +
 *
        9315  +
 * For more information, see [View your AMI usage](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/your-ec2-ami-usage.html) in the *Amazon EC2 User Guide*.
        9316  +
 */
        9317  +
public suspend inline fun Ec2Client.describeImageUsageReportEntries(crossinline block: DescribeImageUsageReportEntriesRequest.Builder.() -> Unit): DescribeImageUsageReportEntriesResponse = describeImageUsageReportEntries(DescribeImageUsageReportEntriesRequest.Builder().apply(block).build())
        9318  +
        9319  +
/**
        9320  +
 * Describes the configuration and status of image usage reports, filtered by report IDs or image IDs.
        9321  +
 *
        9322  +
 * For more information, see [View your AMI usage](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/your-ec2-ami-usage.html) in the *Amazon EC2 User Guide*.
        9323  +
 */
        9324  +
public suspend inline fun Ec2Client.describeImageUsageReports(crossinline block: DescribeImageUsageReportsRequest.Builder.() -> Unit): DescribeImageUsageReportsResponse = describeImageUsageReports(DescribeImageUsageReportsRequest.Builder().apply(block).build())
        9325  +
 9189   9326   
/**
 9190   9327   
 * Describes the specified images (AMIs, AKIs, and ARIs) available to you or all of the images available to you.
 9191   9328   
 *
 9192   9329   
 * The images available to you include public images, private images that you own, and private images owned by other Amazon Web Services accounts for which you have explicit launch permissions.
 9193   9330   
 *
 9194   9331   
 * Recently deregistered images appear in the returned results for a short interval and then return empty results. After all instances that reference a deregistered AMI are terminated, specifying the ID of the image will eventually return an error indicating that the AMI ID cannot be found.
 9195   9332   
 *
 9196   9333   
 * When Allowed AMIs is set to `enabled`, only allowed images are returned in the results, with the `imageAllowed` field set to `true` for each image. In `audit-mode`, the `imageAllowed` field is set to `true` for images that meet the account's Allowed AMIs criteria, and `false` for images that don't meet the criteria. For more information, see [Allowed AMIs](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-allowed-amis.html).
 9197   9334   
 *
 9198   9335   
 * The Amazon EC2 API follows an eventual consistency model. This means that the result of an API command you run that creates or modifies resources might not be immediately available to all subsequent commands you run. For guidance on how to manage eventual consistency, see [Eventual consistency in the Amazon EC2 API](https://docs.aws.amazon.com/ec2/latest/devguide/eventual-consistency.html) in the *Amazon EC2 Developer Guide*.
@@ -10179,10316 +10240,10375 @@
10199  10336   
 *
10200  10337   
 * You can re-enable a disabled AMI using [EnableImage](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_EnableImage.html).
10201  10338   
 *
10202  10339   
 * For more information, see [Disable an AMI](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/disable-an-ami.html) in the *Amazon EC2 User Guide*.
10203  10340   
 */
10204  10341   
public suspend inline fun Ec2Client.disableImage(crossinline block: DisableImageRequest.Builder.() -> Unit): DisableImageResponse = disableImage(DisableImageRequest.Builder().apply(block).build())
10205  10342   
10206  10343   
/**
10207  10344   
 * Disables *block public access for AMIs* at the account level in the specified Amazon Web Services Region. This removes the *block public access* restriction from your account. With the restriction removed, you can publicly share your AMIs in the specified Amazon Web Services Region.
10208  10345   
 *
10209         -
 * The API can take up to 10 minutes to configure this setting. During this time, if you run [GetImageBlockPublicAccessState](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_GetImageBlockPublicAccessState.html), the response will be `block-new-sharing`. When the API has completed the configuration, the response will be `unblocked`.
10210         -
 *
10211  10346   
 * For more information, see [Block public access to your AMIs](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/block-public-access-to-amis.html) in the *Amazon EC2 User Guide*.
10212  10347   
 */
10213  10348   
public suspend inline fun Ec2Client.disableImageBlockPublicAccess(crossinline block: DisableImageBlockPublicAccessRequest.Builder.() -> Unit): DisableImageBlockPublicAccessResponse = disableImageBlockPublicAccess(DisableImageBlockPublicAccessRequest.Builder().apply(block).build())
10214  10349   
10215  10350   
/**
10216  10351   
 * Cancels the deprecation of the specified AMI.
10217  10352   
 *
10218  10353   
 * For more information, see [Deprecate an Amazon EC2 AMI](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ami-deprecate.html) in the *Amazon EC2 User Guide*.
10219  10354   
 */
10220  10355   
public suspend inline fun Ec2Client.disableImageDeprecation(crossinline block: DisableImageDeprecationRequest.Builder.() -> Unit): DisableImageDeprecationResponse = disableImageDeprecation(DisableImageDeprecationRequest.Builder().apply(block).build())
@@ -11150,11285 +11209,11351 @@
11170  11305   
 * @sample aws.sdk.kotlin.services.ec2.samples.ModifyInstanceAttribute.sample
11171  11306   
 * @sample aws.sdk.kotlin.services.ec2.samples.ModifyInstanceAttribute.sample2
11172  11307   
 */
11173  11308   
public suspend inline fun Ec2Client.modifyInstanceAttribute(crossinline block: ModifyInstanceAttributeRequest.Builder.() -> Unit): ModifyInstanceAttributeResponse = modifyInstanceAttribute(ModifyInstanceAttributeRequest.Builder().apply(block).build())
11174  11309   
11175  11310   
/**
11176  11311   
 * Modifies the Capacity Reservation settings for a stopped instance. Use this action to configure an instance to target a specific Capacity Reservation, run in any `open` Capacity Reservation with matching attributes, run in On-Demand Instance capacity, or only run in a Capacity Reservation.
11177  11312   
 */
11178  11313   
public suspend inline fun Ec2Client.modifyInstanceCapacityReservationAttributes(crossinline block: ModifyInstanceCapacityReservationAttributesRequest.Builder.() -> Unit): ModifyInstanceCapacityReservationAttributesResponse = modifyInstanceCapacityReservationAttributes(ModifyInstanceCapacityReservationAttributesRequest.Builder().apply(block).build())
11179  11314   
       11315  +
/**
       11316  +
 * Modifies the specified EC2 Instance Connect Endpoint.
       11317  +
 *
       11318  +
 * For more information, see [Modify an EC2 Instance Connect Endpoint](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/modify-ec2-instance-connect-endpoint.html) in the *Amazon EC2 User Guide*.
       11319  +
 */
       11320  +
public suspend inline fun Ec2Client.modifyInstanceConnectEndpoint(crossinline block: ModifyInstanceConnectEndpointRequest.Builder.() -> Unit): ModifyInstanceConnectEndpointResponse = modifyInstanceConnectEndpoint(ModifyInstanceConnectEndpointRequest.Builder().apply(block).build())
       11321  +
11180  11322   
/**
11181  11323   
 * By default, all vCPUs for the instance type are active when you launch an instance. When you configure the number of active vCPUs for the instance, it can help you save on licensing costs and optimize performance. The base cost of the instance remains unchanged.
11182  11324   
 *
11183  11325   
 * The number of active vCPUs equals the number of threads per CPU core multiplied by the number of cores. The instance must be in a `Stopped` state before you make changes.
11184  11326   
 *
11185  11327   
 * Some instance type options do not support this capability. For more information, see [Supported CPU options](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/cpu-options-supported-instances-values.html) in the *Amazon EC2 User Guide*.
11186  11328   
 */
11187  11329   
public suspend inline fun Ec2Client.modifyInstanceCpuOptions(crossinline block: ModifyInstanceCpuOptionsRequest.Builder.() -> Unit): ModifyInstanceCpuOptionsResponse = modifyInstanceCpuOptions(ModifyInstanceCpuOptionsRequest.Builder().apply(block).build())
11188  11330   
11189  11331   
/**

tmp-codegen-diff/services/ec2/generated-src/main/kotlin/aws/sdk/kotlin/services/ec2/endpoints/internal/Partitions.kt

@@ -14,14 +73,75 @@
   34     34   
            "ap-southeast-1" to PartitionConfig(
   35     35   
            ),
   36     36   
            "ap-southeast-2" to PartitionConfig(
   37     37   
            ),
   38     38   
            "ap-southeast-3" to PartitionConfig(
   39     39   
            ),
   40     40   
            "ap-southeast-4" to PartitionConfig(
   41     41   
            ),
   42     42   
            "ap-southeast-5" to PartitionConfig(
   43     43   
            ),
          44  +
            "ap-southeast-6" to PartitionConfig(
          45  +
            ),
   44     46   
            "ap-southeast-7" to PartitionConfig(
   45     47   
            ),
   46     48   
            "aws-global" to PartitionConfig(
   47     49   
            ),
   48     50   
            "ca-central-1" to PartitionConfig(
   49     51   
            ),
   50     52   
            "ca-west-1" to PartitionConfig(
   51     53   
            ),
   52     54   
            "eu-central-1" to PartitionConfig(
   53     55   
            ),
@@ -87,89 +228,230 @@
  107    109   
        baseConfig = PartitionConfig(
  108    110   
            name = "aws-cn",
  109    111   
            dnsSuffix = "amazonaws.com.cn",
  110    112   
            dualStackDnsSuffix = "api.amazonwebservices.com.cn",
  111    113   
            supportsFIPS = true,
  112    114   
            supportsDualStack = true,
  113    115   
            implicitGlobalRegion = "cn-northwest-1",
  114    116   
        ),
  115    117   
    ),
  116    118   
    Partition(
  117         -
        id = "aws-us-gov",
  118         -
        regionRegex = Regex("^us\\-gov\\-\\w+\\-\\d+$"),
         119  +
        id = "aws-eusc",
         120  +
        regionRegex = Regex("^eusc\\-(de)\\-\\w+\\-\\d+$"),
  119    121   
        regions = mapOf(
  120         -
            "aws-us-gov-global" to PartitionConfig(
  121         -
            ),
  122         -
            "us-gov-east-1" to PartitionConfig(
  123         -
            ),
  124         -
            "us-gov-west-1" to PartitionConfig(
         122  +
            "eusc-de-east-1" to PartitionConfig(
  125    123   
            ),
  126    124   
        ),
  127    125   
        baseConfig = PartitionConfig(
  128         -
            name = "aws-us-gov",
  129         -
            dnsSuffix = "amazonaws.com",
  130         -
            dualStackDnsSuffix = "api.aws",
         126  +
            name = "aws-eusc",
         127  +
            dnsSuffix = "amazonaws.eu",
         128  +
            dualStackDnsSuffix = "api.amazonwebservices.eu",
  131    129   
            supportsFIPS = true,
  132    130   
            supportsDualStack = true,
  133         -
            implicitGlobalRegion = "us-gov-west-1",
         131  +
            implicitGlobalRegion = "eusc-de-east-1",
  134    132   
        ),
  135    133   
    ),
  136    134   
    Partition(
  137    135   
        id = "aws-iso",
  138    136   
        regionRegex = Regex("^us\\-iso\\-\\w+\\-\\d+$"),
  139    137   
        regions = mapOf(
  140    138   
            "aws-iso-global" to PartitionConfig(
  141    139   
            ),
  142    140   
            "us-iso-east-1" to PartitionConfig(
  143    141   
            ),
  144    142   
            "us-iso-west-1" to PartitionConfig(
  145    143   
            ),
  146    144   
        ),
  147    145   
        baseConfig = PartitionConfig(
  148    146   
            name = "aws-iso",
  149    147   
            dnsSuffix = "c2s.ic.gov",
  150         -
            dualStackDnsSuffix = "c2s.ic.gov",
         148  +
            dualStackDnsSuffix = "api.aws.ic.gov",
  151    149   
            supportsFIPS = true,
  152         -
            supportsDualStack = false,
         150  +
            supportsDualStack = true,
  153    151   
            implicitGlobalRegion = "us-iso-east-1",
  154    152   
        ),
  155    153   
    ),
  156    154   
    Partition(
  157    155   
        id = "aws-iso-b",
  158    156   
        regionRegex = Regex("^us\\-isob\\-\\w+\\-\\d+$"),
  159    157   
        regions = mapOf(
  160    158   
            "aws-iso-b-global" to PartitionConfig(
  161    159   
            ),
  162    160   
            "us-isob-east-1" to PartitionConfig(
  163    161   
            ),
  164    162   
        ),
  165    163   
        baseConfig = PartitionConfig(
  166    164   
            name = "aws-iso-b",
  167    165   
            dnsSuffix = "sc2s.sgov.gov",
  168         -
            dualStackDnsSuffix = "sc2s.sgov.gov",
         166  +
            dualStackDnsSuffix = "api.aws.scloud",
  169    167   
            supportsFIPS = true,
  170         -
            supportsDualStack = false,
         168  +
            supportsDualStack = true,
  171    169   
            implicitGlobalRegion = "us-isob-east-1",
  172    170   
        ),
  173    171   
    ),
  174    172   
    Partition(
  175    173   
        id = "aws-iso-e",
  176    174   
        regionRegex = Regex("^eu\\-isoe\\-\\w+\\-\\d+$"),
  177    175   
        regions = mapOf(
  178    176   
            "aws-iso-e-global" to PartitionConfig(
  179    177   
            ),
  180    178   
            "eu-isoe-west-1" to PartitionConfig(
  181    179   
            ),
  182    180   
        ),
  183    181   
        baseConfig = PartitionConfig(
  184    182   
            name = "aws-iso-e",
  185    183   
            dnsSuffix = "cloud.adc-e.uk",
  186         -
            dualStackDnsSuffix = "cloud.adc-e.uk",
         184  +
            dualStackDnsSuffix = "api.cloud-aws.adc-e.uk",
  187    185   
            supportsFIPS = true,
  188         -
            supportsDualStack = false,
         186  +
            supportsDualStack = true,
  189    187   
            implicitGlobalRegion = "eu-isoe-west-1",
  190    188   
        ),
  191    189   
    ),
  192    190   
    Partition(
  193    191   
        id = "aws-iso-f",
  194    192   
        regionRegex = Regex("^us\\-isof\\-\\w+\\-\\d+$"),
  195    193   
        regions = mapOf(
  196    194   
            "aws-iso-f-global" to PartitionConfig(
  197    195   
            ),
  198    196   
            "us-isof-east-1" to PartitionConfig(
  199    197   
            ),
  200    198   
            "us-isof-south-1" to PartitionConfig(
  201    199   
            ),
  202    200   
        ),
  203    201   
        baseConfig = PartitionConfig(
  204    202   
            name = "aws-iso-f",
  205    203   
            dnsSuffix = "csp.hci.ic.gov",
  206         -
            dualStackDnsSuffix = "csp.hci.ic.gov",
         204  +
            dualStackDnsSuffix = "api.aws.hci.ic.gov",
  207    205   
            supportsFIPS = true,
  208         -
            supportsDualStack = false,
         206  +
            supportsDualStack = true,
  209    207   
            implicitGlobalRegion = "us-isof-south-1",
  210    208   
        ),
  211    209   
    ),
  212    210   
    Partition(
  213         -
        id = "aws-eusc",
  214         -
        regionRegex = Regex("^eusc\\-(de)\\-\\w+\\-\\d+$"),
         211  +
        id = "aws-us-gov",
         212  +
        regionRegex = Regex("^us\\-gov\\-\\w+\\-\\d+$"),
  215    213   
        regions = mapOf(
  216         -
            "eusc-de-east-1" to PartitionConfig(
         214  +
            "aws-us-gov-global" to PartitionConfig(
         215  +
            ),
         216  +
            "us-gov-east-1" to PartitionConfig(
         217  +
            ),
         218  +
            "us-gov-west-1" to PartitionConfig(
  217    219   
            ),
  218    220   
        ),
  219    221   
        baseConfig = PartitionConfig(
  220         -
            name = "aws-eusc",
  221         -
            dnsSuffix = "amazonaws.eu",
  222         -
            dualStackDnsSuffix = "amazonaws.eu",
         222  +
            name = "aws-us-gov",
         223  +
            dnsSuffix = "amazonaws.com",
         224  +
            dualStackDnsSuffix = "api.aws",
  223    225   
            supportsFIPS = true,
  224         -
            supportsDualStack = false,
  225         -
            implicitGlobalRegion = "eusc-de-east-1",
         226  +
            supportsDualStack = true,
         227  +
            implicitGlobalRegion = "us-gov-west-1",
  226    228   
        ),
  227    229   
    ),
  228    230   
)

tmp-codegen-diff/services/ec2/generated-src/main/kotlin/aws/sdk/kotlin/services/ec2/model/AssociateRouteTableRequest.kt

@@ -1,1 +98,110 @@
    6      6   
    7      7   
public class AssociateRouteTableRequest private constructor(builder: Builder) {
    8      8   
    /**
    9      9   
     * 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`.
   10     10   
     */
   11     11   
    public val dryRun: kotlin.Boolean? = builder.dryRun
   12     12   
    /**
   13     13   
     * The ID of the internet gateway or virtual private gateway.
   14     14   
     */
   15     15   
    public val gatewayId: kotlin.String? = builder.gatewayId
          16  +
    /**
          17  +
     * The ID of a public IPv4 pool. A public IPv4 pool is a pool of IPv4 addresses that you've brought to Amazon Web Services with BYOIP.
          18  +
     */
          19  +
    public val publicIpv4Pool: kotlin.String? = builder.publicIpv4Pool
   16     20   
    /**
   17     21   
     * The ID of the route table.
   18     22   
     */
   19     23   
    public val routeTableId: kotlin.String? = builder.routeTableId
   20     24   
    /**
   21     25   
     * The ID of the subnet.
   22     26   
     */
   23     27   
    public val subnetId: kotlin.String? = builder.subnetId
   24     28   
   25     29   
    public companion object {
   26     30   
        public operator fun invoke(block: Builder.() -> kotlin.Unit): aws.sdk.kotlin.services.ec2.model.AssociateRouteTableRequest = Builder().apply(block).build()
   27     31   
    }
   28     32   
   29     33   
    override fun toString(): kotlin.String = buildString {
   30     34   
        append("AssociateRouteTableRequest(")
   31     35   
        append("dryRun=$dryRun,")
   32     36   
        append("gatewayId=$gatewayId,")
          37  +
        append("publicIpv4Pool=$publicIpv4Pool,")
   33     38   
        append("routeTableId=$routeTableId,")
   34     39   
        append("subnetId=$subnetId")
   35     40   
        append(")")
   36     41   
    }
   37     42   
   38     43   
    override fun hashCode(): kotlin.Int {
   39     44   
        var result = dryRun?.hashCode() ?: 0
   40     45   
        result = 31 * result + (this.gatewayId?.hashCode() ?: 0)
          46  +
        result = 31 * result + (this.publicIpv4Pool?.hashCode() ?: 0)
   41     47   
        result = 31 * result + (this.routeTableId?.hashCode() ?: 0)
   42     48   
        result = 31 * result + (this.subnetId?.hashCode() ?: 0)
   43     49   
        return result
   44     50   
    }
   45     51   
   46     52   
    override fun equals(other: kotlin.Any?): kotlin.Boolean {
   47     53   
        if (this === other) return true
   48     54   
        if (other == null || this::class != other::class) return false
   49     55   
   50     56   
        other as AssociateRouteTableRequest
   51     57   
   52     58   
        if (dryRun != other.dryRun) return false
   53     59   
        if (gatewayId != other.gatewayId) return false
          60  +
        if (publicIpv4Pool != other.publicIpv4Pool) return false
   54     61   
        if (routeTableId != other.routeTableId) return false
   55     62   
        if (subnetId != other.subnetId) return false
   56     63   
   57     64   
        return true
   58     65   
    }
   59     66   
   60     67   
    public inline fun copy(block: Builder.() -> kotlin.Unit = {}): aws.sdk.kotlin.services.ec2.model.AssociateRouteTableRequest = Builder(this).apply(block).build()
   61     68   
   62     69   
    @SdkDsl
   63     70   
    public class Builder {
   64     71   
        /**
   65     72   
         * 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`.
   66     73   
         */
   67     74   
        public var dryRun: kotlin.Boolean? = null
   68     75   
        /**
   69     76   
         * The ID of the internet gateway or virtual private gateway.
   70     77   
         */
   71     78   
        public var gatewayId: kotlin.String? = null
          79  +
        /**
          80  +
         * The ID of a public IPv4 pool. A public IPv4 pool is a pool of IPv4 addresses that you've brought to Amazon Web Services with BYOIP.
          81  +
         */
          82  +
        public var publicIpv4Pool: kotlin.String? = null
   72     83   
        /**
   73     84   
         * The ID of the route table.
   74     85   
         */
   75     86   
        public var routeTableId: kotlin.String? = null
   76     87   
        /**
   77     88   
         * The ID of the subnet.
   78     89   
         */
   79     90   
        public var subnetId: kotlin.String? = null
   80     91   
   81     92   
        @PublishedApi
   82     93   
        internal constructor()
   83     94   
        @PublishedApi
   84     95   
        internal constructor(x: aws.sdk.kotlin.services.ec2.model.AssociateRouteTableRequest) : this() {
   85     96   
            this.dryRun = x.dryRun
   86     97   
            this.gatewayId = x.gatewayId
          98  +
            this.publicIpv4Pool = x.publicIpv4Pool
   87     99   
            this.routeTableId = x.routeTableId
   88    100   
            this.subnetId = x.subnetId
   89    101   
        }
   90    102   
   91    103   
        @PublishedApi
   92    104   
        internal fun build(): aws.sdk.kotlin.services.ec2.model.AssociateRouteTableRequest = AssociateRouteTableRequest(this)
   93    105   
   94    106   
        internal fun correctErrors(): Builder {
   95    107   
            return this
   96    108   
        }

tmp-codegen-diff/services/ec2/generated-src/main/kotlin/aws/sdk/kotlin/services/ec2/model/BlockDeviceMapping.kt

@@ -1,1 +102,102 @@
    2      2   
    3      3   
package aws.sdk.kotlin.services.ec2.model
    4      4   
    5      5   
import aws.smithy.kotlin.runtime.SdkDsl
    6      6   
    7      7   
/**
    8      8   
 * Describes a block device mapping, which defines the EBS volumes and instance store volumes to attach to an instance at launch.
    9      9   
 */
   10     10   
public class BlockDeviceMapping private constructor(builder: Builder) {
   11     11   
    /**
   12         -
     * The device name (for example, `/dev/sdh` or `xvdh`).
          12  +
     * The device name. For available device names, see [Device names for volumes](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/device_naming.html).
   13     13   
     */
   14     14   
    public val deviceName: kotlin.String? = builder.deviceName
   15     15   
    /**
   16     16   
     * Parameters used to automatically set up EBS volumes when the instance is launched.
   17     17   
     */
   18     18   
    public val ebs: aws.sdk.kotlin.services.ec2.model.EbsBlockDevice? = builder.ebs
   19     19   
    /**
   20     20   
     * To omit the device from the block device mapping, specify an empty string. When this property is specified, the device is removed from the block device mapping regardless of the assigned value.
   21     21   
     */
   22     22   
    public val noDevice: kotlin.String? = builder.noDevice
   23     23   
    /**
   24     24   
     * The virtual device name (`ephemeral`N). Instance store volumes are numbered starting from 0. An instance type with 2 available instance store volumes can specify mappings for `ephemeral0` and `ephemeral1`. The number of available instance store volumes depends on the instance type. After you connect to the instance, you must mount the volume.
   25     25   
     *
   26     26   
     * NVMe instance store volumes are automatically enumerated and assigned a device name. Including them in your block device mapping has no effect.
   27     27   
     *
   28     28   
     * Constraints: For M3 instances, you must specify instance store volumes in the block device mapping for the instance. When you launch an M3 instance, we ignore any instance store volumes specified in the block device mapping for the AMI.
   29     29   
     */
   30     30   
    public val virtualName: kotlin.String? = builder.virtualName
   31     31   
   32     32   
    public companion object {
   33     33   
        public operator fun invoke(block: Builder.() -> kotlin.Unit): aws.sdk.kotlin.services.ec2.model.BlockDeviceMapping = Builder().apply(block).build()
   34     34   
    }
   35     35   
   36     36   
    override fun toString(): kotlin.String = buildString {
   37     37   
        append("BlockDeviceMapping(")
   38     38   
        append("deviceName=$deviceName,")
   39     39   
        append("ebs=$ebs,")
   40     40   
        append("noDevice=$noDevice,")
   41     41   
        append("virtualName=$virtualName")
   42     42   
        append(")")
   43     43   
    }
   44     44   
   45     45   
    override fun hashCode(): kotlin.Int {
   46     46   
        var result = deviceName?.hashCode() ?: 0
   47     47   
        result = 31 * result + (this.ebs?.hashCode() ?: 0)
   48     48   
        result = 31 * result + (this.noDevice?.hashCode() ?: 0)
   49     49   
        result = 31 * result + (this.virtualName?.hashCode() ?: 0)
   50     50   
        return result
   51     51   
    }
   52     52   
   53     53   
    override fun equals(other: kotlin.Any?): kotlin.Boolean {
   54     54   
        if (this === other) return true
   55     55   
        if (other == null || this::class != other::class) return false
   56     56   
   57     57   
        other as BlockDeviceMapping
   58     58   
   59     59   
        if (deviceName != other.deviceName) return false
   60     60   
        if (ebs != other.ebs) return false
   61     61   
        if (noDevice != other.noDevice) return false
   62     62   
        if (virtualName != other.virtualName) return false
   63     63   
   64     64   
        return true
   65     65   
    }
   66     66   
   67     67   
    public inline fun copy(block: Builder.() -> kotlin.Unit = {}): aws.sdk.kotlin.services.ec2.model.BlockDeviceMapping = Builder(this).apply(block).build()
   68     68   
   69     69   
    @SdkDsl
   70     70   
    public class Builder {
   71     71   
        /**
   72         -
         * The device name (for example, `/dev/sdh` or `xvdh`).
          72  +
         * The device name. For available device names, see [Device names for volumes](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/device_naming.html).
   73     73   
         */
   74     74   
        public var deviceName: kotlin.String? = null
   75     75   
        /**
   76     76   
         * Parameters used to automatically set up EBS volumes when the instance is launched.
   77     77   
         */
   78     78   
        public var ebs: aws.sdk.kotlin.services.ec2.model.EbsBlockDevice? = null
   79     79   
        /**
   80     80   
         * To omit the device from the block device mapping, specify an empty string. When this property is specified, the device is removed from the block device mapping regardless of the assigned value.
   81     81   
         */
   82     82   
        public var noDevice: kotlin.String? = null

tmp-codegen-diff/services/ec2/generated-src/main/kotlin/aws/sdk/kotlin/services/ec2/model/ClientVpnConnection.kt

@@ -1,1 +228,240 @@
    5      5   
import aws.smithy.kotlin.runtime.SdkDsl
    6      6   
    7      7   
/**
    8      8   
 * Describes a client connection.
    9      9   
 */
   10     10   
public class ClientVpnConnection private constructor(builder: Builder) {
   11     11   
    /**
   12     12   
     * The IP address of the client.
   13     13   
     */
   14     14   
    public val clientIp: kotlin.String? = builder.clientIp
          15  +
    /**
          16  +
     * The IPv6 address assigned to the client connection when using a dual-stack Client VPN endpoint. This field is only populated when the endpoint is configured for dual-stack addressing, and the client is using IPv6 for connectivity.
          17  +
     */
          18  +
    public val clientIpv6Address: kotlin.String? = builder.clientIpv6Address
   15     19   
    /**
   16     20   
     * The ID of the Client VPN endpoint to which the client is connected.
   17     21   
     */
   18     22   
    public val clientVpnEndpointId: kotlin.String? = builder.clientVpnEndpointId
   19     23   
    /**
   20     24   
     * The common name associated with the client. This is either the name of the client certificate, or the Active Directory user name.
   21     25   
     */
   22     26   
    public val commonName: kotlin.String? = builder.commonName
   23     27   
    /**
   24     28   
     * The date and time the client connection was terminated.
   25     29   
     */
   26     30   
    public val connectionEndTime: kotlin.String? = builder.connectionEndTime
   27     31   
    /**
   28     32   
     * The date and time the client connection was established.
   29     33   
     */
   30     34   
    public val connectionEstablishedTime: kotlin.String? = builder.connectionEstablishedTime
   31     35   
    /**
   32     36   
     * The ID of the client connection.
   33     37   
     */
   34     38   
    public val connectionId: kotlin.String? = builder.connectionId
   35     39   
    /**
   36     40   
     * The number of bytes received by the client.
   37     41   
     */
   38     42   
    public val egressBytes: kotlin.String? = builder.egressBytes
   39     43   
    /**
   40     44   
     * The number of packets received by the client.
   41     45   
     */
   42     46   
    public val egressPackets: kotlin.String? = builder.egressPackets
   43     47   
    /**
   44     48   
     * The number of bytes sent by the client.
   45     49   
     */
   46     50   
    public val ingressBytes: kotlin.String? = builder.ingressBytes
   47     51   
    /**
   48     52   
     * The number of packets sent by the client.
   49     53   
     */
   50     54   
    public val ingressPackets: kotlin.String? = builder.ingressPackets
   51     55   
    /**
   52     56   
     * The statuses returned by the client connect handler for posture compliance, if applicable.
   53     57   
     */
   54     58   
    public val postureComplianceStatuses: List<String>? = builder.postureComplianceStatuses
   55     59   
    /**
   56     60   
     * The current state of the client connection.
   57     61   
     */
   58     62   
    public val status: aws.sdk.kotlin.services.ec2.model.ClientVpnConnectionStatus? = builder.status
   59     63   
    /**
   60     64   
     * The current date and time.
   61     65   
     */
   62     66   
    public val timestamp: kotlin.String? = builder.timestamp
   63     67   
    /**
   64     68   
     * The username of the client who established the client connection. This information is only provided if Active Directory client authentication is used.
   65     69   
     */
   66     70   
    public val username: kotlin.String? = builder.username
   67     71   
   68     72   
    public companion object {
   69     73   
        public operator fun invoke(block: Builder.() -> kotlin.Unit): aws.sdk.kotlin.services.ec2.model.ClientVpnConnection = Builder().apply(block).build()
   70     74   
    }
   71     75   
   72     76   
    override fun toString(): kotlin.String = buildString {
   73     77   
        append("ClientVpnConnection(")
   74     78   
        append("clientIp=$clientIp,")
          79  +
        append("clientIpv6Address=$clientIpv6Address,")
   75     80   
        append("clientVpnEndpointId=$clientVpnEndpointId,")
   76     81   
        append("commonName=$commonName,")
   77     82   
        append("connectionEndTime=$connectionEndTime,")
   78     83   
        append("connectionEstablishedTime=$connectionEstablishedTime,")
   79     84   
        append("connectionId=$connectionId,")
   80     85   
        append("egressBytes=$egressBytes,")
   81     86   
        append("egressPackets=$egressPackets,")
   82     87   
        append("ingressBytes=$ingressBytes,")
   83     88   
        append("ingressPackets=$ingressPackets,")
   84     89   
        append("postureComplianceStatuses=$postureComplianceStatuses,")
   85     90   
        append("status=$status,")
   86     91   
        append("timestamp=$timestamp,")
   87     92   
        append("username=$username")
   88     93   
        append(")")
   89     94   
    }
   90     95   
   91     96   
    override fun hashCode(): kotlin.Int {
   92     97   
        var result = clientIp?.hashCode() ?: 0
          98  +
        result = 31 * result + (this.clientIpv6Address?.hashCode() ?: 0)
   93     99   
        result = 31 * result + (this.clientVpnEndpointId?.hashCode() ?: 0)
   94    100   
        result = 31 * result + (this.commonName?.hashCode() ?: 0)
   95    101   
        result = 31 * result + (this.connectionEndTime?.hashCode() ?: 0)
   96    102   
        result = 31 * result + (this.connectionEstablishedTime?.hashCode() ?: 0)
   97    103   
        result = 31 * result + (this.connectionId?.hashCode() ?: 0)
   98    104   
        result = 31 * result + (this.egressBytes?.hashCode() ?: 0)
   99    105   
        result = 31 * result + (this.egressPackets?.hashCode() ?: 0)
  100    106   
        result = 31 * result + (this.ingressBytes?.hashCode() ?: 0)
  101    107   
        result = 31 * result + (this.ingressPackets?.hashCode() ?: 0)
  102    108   
        result = 31 * result + (this.postureComplianceStatuses?.hashCode() ?: 0)
  103    109   
        result = 31 * result + (this.status?.hashCode() ?: 0)
  104    110   
        result = 31 * result + (this.timestamp?.hashCode() ?: 0)
  105    111   
        result = 31 * result + (this.username?.hashCode() ?: 0)
  106    112   
        return result
  107    113   
    }
  108    114   
  109    115   
    override fun equals(other: kotlin.Any?): kotlin.Boolean {
  110    116   
        if (this === other) return true
  111    117   
        if (other == null || this::class != other::class) return false
  112    118   
  113    119   
        other as ClientVpnConnection
  114    120   
  115    121   
        if (clientIp != other.clientIp) return false
         122  +
        if (clientIpv6Address != other.clientIpv6Address) return false
  116    123   
        if (clientVpnEndpointId != other.clientVpnEndpointId) return false
  117    124   
        if (commonName != other.commonName) return false
  118    125   
        if (connectionEndTime != other.connectionEndTime) return false
  119    126   
        if (connectionEstablishedTime != other.connectionEstablishedTime) return false
  120    127   
        if (connectionId != other.connectionId) return false
  121    128   
        if (egressBytes != other.egressBytes) return false
  122    129   
        if (egressPackets != other.egressPackets) return false
  123    130   
        if (ingressBytes != other.ingressBytes) return false
  124    131   
        if (ingressPackets != other.ingressPackets) return false
  125    132   
        if (postureComplianceStatuses != other.postureComplianceStatuses) return false
  126    133   
        if (status != other.status) return false
  127    134   
        if (timestamp != other.timestamp) return false
  128    135   
        if (username != other.username) return false
  129    136   
  130    137   
        return true
  131    138   
    }
  132    139   
  133    140   
    public inline fun copy(block: Builder.() -> kotlin.Unit = {}): aws.sdk.kotlin.services.ec2.model.ClientVpnConnection = Builder(this).apply(block).build()
  134    141   
  135    142   
    @SdkDsl
  136    143   
    public class Builder {
  137    144   
        /**
  138    145   
         * The IP address of the client.
  139    146   
         */
  140    147   
        public var clientIp: kotlin.String? = null
         148  +
        /**
         149  +
         * The IPv6 address assigned to the client connection when using a dual-stack Client VPN endpoint. This field is only populated when the endpoint is configured for dual-stack addressing, and the client is using IPv6 for connectivity.
         150  +
         */
         151  +
        public var clientIpv6Address: kotlin.String? = null
  141    152   
        /**
  142    153   
         * The ID of the Client VPN endpoint to which the client is connected.
  143    154   
         */
  144    155   
        public var clientVpnEndpointId: kotlin.String? = null
  145    156   
        /**
  146    157   
         * The common name associated with the client. This is either the name of the client certificate, or the Active Directory user name.
  147    158   
         */
  148    159   
        public var commonName: kotlin.String? = null
  149    160   
        /**
  150    161   
         * The date and time the client connection was terminated.
  151    162   
         */
  152    163   
        public var connectionEndTime: kotlin.String? = null
  153    164   
        /**
  154    165   
         * The date and time the client connection was established.
  155    166   
         */
  156    167   
        public var connectionEstablishedTime: kotlin.String? = null
  157    168   
        /**
  158    169   
         * The ID of the client connection.
  159    170   
         */
  160    171   
        public var connectionId: kotlin.String? = null
  161    172   
        /**
  162    173   
         * The number of bytes received by the client.
  163    174   
         */
  164    175   
        public var egressBytes: kotlin.String? = null
  165    176   
        /**
  166    177   
         * The number of packets received by the client.
  167    178   
         */
  168    179   
        public var egressPackets: kotlin.String? = null
  169    180   
        /**
  170    181   
         * The number of bytes sent by the client.
  171    182   
         */
  172    183   
        public var ingressBytes: kotlin.String? = null
  173    184   
        /**
  174    185   
         * The number of packets sent by the client.
  175    186   
         */
  176    187   
        public var ingressPackets: kotlin.String? = null
  177    188   
        /**
  178    189   
         * The statuses returned by the client connect handler for posture compliance, if applicable.
  179    190   
         */
  180    191   
        public var postureComplianceStatuses: List<String>? = null
  181    192   
        /**
  182    193   
         * The current state of the client connection.
  183    194   
         */
  184    195   
        public var status: aws.sdk.kotlin.services.ec2.model.ClientVpnConnectionStatus? = null
  185    196   
        /**
  186    197   
         * The current date and time.
  187    198   
         */
  188    199   
        public var timestamp: kotlin.String? = null
  189    200   
        /**
  190    201   
         * The username of the client who established the client connection. This information is only provided if Active Directory client authentication is used.
  191    202   
         */
  192    203   
        public var username: kotlin.String? = null
  193    204   
  194    205   
        @PublishedApi
  195    206   
        internal constructor()
  196    207   
        @PublishedApi
  197    208   
        internal constructor(x: aws.sdk.kotlin.services.ec2.model.ClientVpnConnection) : this() {
  198    209   
            this.clientIp = x.clientIp
         210  +
            this.clientIpv6Address = x.clientIpv6Address
  199    211   
            this.clientVpnEndpointId = x.clientVpnEndpointId
  200    212   
            this.commonName = x.commonName
  201    213   
            this.connectionEndTime = x.connectionEndTime
  202    214   
            this.connectionEstablishedTime = x.connectionEstablishedTime
  203    215   
            this.connectionId = x.connectionId
  204    216   
            this.egressBytes = x.egressBytes
  205    217   
            this.egressPackets = x.egressPackets
  206    218   
            this.ingressBytes = x.ingressBytes
  207    219   
            this.ingressPackets = x.ingressPackets
  208    220   
            this.postureComplianceStatuses = x.postureComplianceStatuses

tmp-codegen-diff/services/ec2/generated-src/main/kotlin/aws/sdk/kotlin/services/ec2/model/ClientVpnEndpoint.kt

@@ -40,40 +240,254 @@
   60     60   
     */
   61     61   
    public val disconnectOnSessionTimeout: kotlin.Boolean? = builder.disconnectOnSessionTimeout
   62     62   
    /**
   63     63   
     * The DNS name to be used by clients when connecting to the Client VPN endpoint.
   64     64   
     */
   65     65   
    public val dnsName: kotlin.String? = builder.dnsName
   66     66   
    /**
   67     67   
     * Information about the DNS servers to be used for DNS resolution.
   68     68   
     */
   69     69   
    public val dnsServers: List<String>? = builder.dnsServers
          70  +
    /**
          71  +
     * The IP address type of the Client VPN endpoint. Possible values are `ipv4` for IPv4 addressing only, `ipv6` for IPv6 addressing only, or `dual-stack `for both IPv4 and IPv6 addressing.
          72  +
     */
          73  +
    public val endpointIpAddressType: aws.sdk.kotlin.services.ec2.model.EndpointIpAddressType? = builder.endpointIpAddressType
   70     74   
    /**
   71     75   
     * The IDs of the security groups for the target network.
   72     76   
     */
   73     77   
    public val securityGroupIds: List<String>? = builder.securityGroupIds
   74     78   
    /**
   75     79   
     * The URL of the self-service portal.
   76     80   
     */
   77     81   
    public val selfServicePortalUrl: kotlin.String? = builder.selfServicePortalUrl
   78     82   
    /**
   79     83   
     * The ARN of the server certificate.
   80     84   
     */
   81     85   
    public val serverCertificateArn: kotlin.String? = builder.serverCertificateArn
   82     86   
    /**
   83     87   
     * The maximum VPN session duration time in hours.
   84     88   
     *
   85     89   
     * Valid values: `8 | 10 | 12 | 24`
   86     90   
     *
   87     91   
     * Default value: `24`
   88     92   
     */
   89     93   
    public val sessionTimeoutHours: kotlin.Int? = builder.sessionTimeoutHours
   90     94   
    /**
   91     95   
     * Indicates whether split-tunnel is enabled in the Client VPN endpoint.
   92     96   
     *
   93     97   
     * For information about split-tunnel VPN endpoints, see [Split-Tunnel Client VPN endpoint](https://docs.aws.amazon.com/vpn/latest/clientvpn-admin/split-tunnel-vpn.html) in the *Client VPN Administrator Guide*.
   94     98   
     */
   95     99   
    public val splitTunnel: kotlin.Boolean? = builder.splitTunnel
   96    100   
    /**
   97    101   
     * The current state of the Client VPN endpoint.
   98    102   
     */
   99    103   
    public val status: aws.sdk.kotlin.services.ec2.model.ClientVpnEndpointStatus? = builder.status
  100    104   
    /**
  101    105   
     * Any tags assigned to the Client VPN endpoint.
  102    106   
     */
  103    107   
    public val tags: List<Tag>? = builder.tags
         108  +
    /**
         109  +
     * The IP address type of the Client VPN endpoint. Possible values are either `ipv4` for IPv4 addressing only, `ipv6` for IPv6 addressing only, or `dual-stack` for both IPv4 and IPv6 addressing.
         110  +
     */
         111  +
    public val trafficIpAddressType: aws.sdk.kotlin.services.ec2.model.TrafficIpAddressType? = builder.trafficIpAddressType
  104    112   
    /**
  105    113   
     * The transport protocol used by the Client VPN endpoint.
  106    114   
     */
  107    115   
    public val transportProtocol: aws.sdk.kotlin.services.ec2.model.TransportProtocol? = builder.transportProtocol
  108    116   
    /**
  109    117   
     * The ID of the VPC.
  110    118   
     */
  111    119   
    public val vpcId: kotlin.String? = builder.vpcId
  112    120   
    /**
  113    121   
     * The port number for the Client VPN endpoint.
  114    122   
     */
  115    123   
    public val vpnPort: kotlin.Int? = builder.vpnPort
  116    124   
    /**
  117    125   
     * The protocol used by the VPN session.
  118    126   
     */
  119    127   
    public val vpnProtocol: aws.sdk.kotlin.services.ec2.model.VpnProtocol? = builder.vpnProtocol
  120    128   
  121    129   
    public companion object {
  122    130   
        public operator fun invoke(block: Builder.() -> kotlin.Unit): aws.sdk.kotlin.services.ec2.model.ClientVpnEndpoint = Builder().apply(block).build()
  123    131   
    }
  124    132   
  125    133   
    override fun toString(): kotlin.String = buildString {
  126    134   
        append("ClientVpnEndpoint(")
  127    135   
        append("associatedTargetNetworks=$associatedTargetNetworks,")
  128    136   
        append("authenticationOptions=$authenticationOptions,")
  129    137   
        append("clientCidrBlock=$clientCidrBlock,")
  130    138   
        append("clientConnectOptions=$clientConnectOptions,")
  131    139   
        append("clientLoginBannerOptions=$clientLoginBannerOptions,")
  132    140   
        append("clientRouteEnforcementOptions=$clientRouteEnforcementOptions,")
  133    141   
        append("clientVpnEndpointId=$clientVpnEndpointId,")
  134    142   
        append("connectionLogOptions=$connectionLogOptions,")
  135    143   
        append("creationTime=$creationTime,")
  136    144   
        append("deletionTime=$deletionTime,")
  137    145   
        append("description=$description,")
  138    146   
        append("disconnectOnSessionTimeout=$disconnectOnSessionTimeout,")
  139    147   
        append("dnsName=$dnsName,")
  140    148   
        append("dnsServers=$dnsServers,")
         149  +
        append("endpointIpAddressType=$endpointIpAddressType,")
  141    150   
        append("securityGroupIds=$securityGroupIds,")
  142    151   
        append("selfServicePortalUrl=$selfServicePortalUrl,")
  143    152   
        append("serverCertificateArn=$serverCertificateArn,")
  144    153   
        append("sessionTimeoutHours=$sessionTimeoutHours,")
  145    154   
        append("splitTunnel=$splitTunnel,")
  146    155   
        append("status=$status,")
  147    156   
        append("tags=$tags,")
         157  +
        append("trafficIpAddressType=$trafficIpAddressType,")
  148    158   
        append("transportProtocol=$transportProtocol,")
  149    159   
        append("vpcId=$vpcId,")
  150    160   
        append("vpnPort=$vpnPort,")
  151    161   
        append("vpnProtocol=$vpnProtocol")
  152    162   
        append(")")
  153    163   
    }
  154    164   
  155    165   
    override fun hashCode(): kotlin.Int {
  156    166   
        var result = associatedTargetNetworks?.hashCode() ?: 0
  157    167   
        result = 31 * result + (this.authenticationOptions?.hashCode() ?: 0)
  158    168   
        result = 31 * result + (this.clientCidrBlock?.hashCode() ?: 0)
  159    169   
        result = 31 * result + (this.clientConnectOptions?.hashCode() ?: 0)
  160    170   
        result = 31 * result + (this.clientLoginBannerOptions?.hashCode() ?: 0)
  161    171   
        result = 31 * result + (this.clientRouteEnforcementOptions?.hashCode() ?: 0)
  162    172   
        result = 31 * result + (this.clientVpnEndpointId?.hashCode() ?: 0)
  163    173   
        result = 31 * result + (this.connectionLogOptions?.hashCode() ?: 0)
  164    174   
        result = 31 * result + (this.creationTime?.hashCode() ?: 0)
  165    175   
        result = 31 * result + (this.deletionTime?.hashCode() ?: 0)
  166    176   
        result = 31 * result + (this.description?.hashCode() ?: 0)
  167    177   
        result = 31 * result + (this.disconnectOnSessionTimeout?.hashCode() ?: 0)
  168    178   
        result = 31 * result + (this.dnsName?.hashCode() ?: 0)
  169    179   
        result = 31 * result + (this.dnsServers?.hashCode() ?: 0)
         180  +
        result = 31 * result + (this.endpointIpAddressType?.hashCode() ?: 0)
  170    181   
        result = 31 * result + (this.securityGroupIds?.hashCode() ?: 0)
  171    182   
        result = 31 * result + (this.selfServicePortalUrl?.hashCode() ?: 0)
  172    183   
        result = 31 * result + (this.serverCertificateArn?.hashCode() ?: 0)
  173    184   
        result = 31 * result + (this.sessionTimeoutHours ?: 0)
  174    185   
        result = 31 * result + (this.splitTunnel?.hashCode() ?: 0)
  175    186   
        result = 31 * result + (this.status?.hashCode() ?: 0)
  176    187   
        result = 31 * result + (this.tags?.hashCode() ?: 0)
         188  +
        result = 31 * result + (this.trafficIpAddressType?.hashCode() ?: 0)
  177    189   
        result = 31 * result + (this.transportProtocol?.hashCode() ?: 0)
  178    190   
        result = 31 * result + (this.vpcId?.hashCode() ?: 0)
  179    191   
        result = 31 * result + (this.vpnPort ?: 0)
  180    192   
        result = 31 * result + (this.vpnProtocol?.hashCode() ?: 0)
  181    193   
        return result
  182    194   
    }
  183    195   
  184    196   
    override fun equals(other: kotlin.Any?): kotlin.Boolean {
  185    197   
        if (this === other) return true
  186    198   
        if (other == null || this::class != other::class) return false
  187    199   
  188    200   
        other as ClientVpnEndpoint
  189    201   
  190    202   
        if (associatedTargetNetworks != other.associatedTargetNetworks) return false
  191    203   
        if (authenticationOptions != other.authenticationOptions) return false
  192    204   
        if (clientCidrBlock != other.clientCidrBlock) return false
  193    205   
        if (clientConnectOptions != other.clientConnectOptions) return false
  194    206   
        if (clientLoginBannerOptions != other.clientLoginBannerOptions) return false
  195    207   
        if (clientRouteEnforcementOptions != other.clientRouteEnforcementOptions) return false
  196    208   
        if (clientVpnEndpointId != other.clientVpnEndpointId) return false
  197    209   
        if (connectionLogOptions != other.connectionLogOptions) return false
  198    210   
        if (creationTime != other.creationTime) return false
  199    211   
        if (deletionTime != other.deletionTime) return false
  200    212   
        if (description != other.description) return false
  201    213   
        if (disconnectOnSessionTimeout != other.disconnectOnSessionTimeout) return false
  202    214   
        if (dnsName != other.dnsName) return false
  203    215   
        if (dnsServers != other.dnsServers) return false
         216  +
        if (endpointIpAddressType != other.endpointIpAddressType) return false
  204    217   
        if (securityGroupIds != other.securityGroupIds) return false
  205    218   
        if (selfServicePortalUrl != other.selfServicePortalUrl) return false
  206    219   
        if (serverCertificateArn != other.serverCertificateArn) return false
  207    220   
        if (sessionTimeoutHours != other.sessionTimeoutHours) return false
  208    221   
        if (splitTunnel != other.splitTunnel) return false
  209    222   
        if (status != other.status) return false
  210    223   
        if (tags != other.tags) return false
         224  +
        if (trafficIpAddressType != other.trafficIpAddressType) return false
  211    225   
        if (transportProtocol != other.transportProtocol) return false
  212    226   
        if (vpcId != other.vpcId) return false
  213    227   
        if (vpnPort != other.vpnPort) return false
  214    228   
        if (vpnProtocol != other.vpnProtocol) return false
  215    229   
  216    230   
        return true
  217    231   
    }
  218    232   
  219    233   
    public inline fun copy(block: Builder.() -> kotlin.Unit = {}): aws.sdk.kotlin.services.ec2.model.ClientVpnEndpoint = Builder(this).apply(block).build()
  220    234   
@@ -252,266 +387,411 @@
  272    286   
         */
  273    287   
        public var disconnectOnSessionTimeout: kotlin.Boolean? = null
  274    288   
        /**
  275    289   
         * The DNS name to be used by clients when connecting to the Client VPN endpoint.
  276    290   
         */
  277    291   
        public var dnsName: kotlin.String? = null
  278    292   
        /**
  279    293   
         * Information about the DNS servers to be used for DNS resolution.
  280    294   
         */
  281    295   
        public var dnsServers: List<String>? = null
         296  +
        /**
         297  +
         * The IP address type of the Client VPN endpoint. Possible values are `ipv4` for IPv4 addressing only, `ipv6` for IPv6 addressing only, or `dual-stack `for both IPv4 and IPv6 addressing.
         298  +
         */
         299  +
        public var endpointIpAddressType: aws.sdk.kotlin.services.ec2.model.EndpointIpAddressType? = null
  282    300   
        /**
  283    301   
         * The IDs of the security groups for the target network.
  284    302   
         */
  285    303   
        public var securityGroupIds: List<String>? = null
  286    304   
        /**
  287    305   
         * The URL of the self-service portal.
  288    306   
         */
  289    307   
        public var selfServicePortalUrl: kotlin.String? = null
  290    308   
        /**
  291    309   
         * The ARN of the server certificate.
  292    310   
         */
  293    311   
        public var serverCertificateArn: kotlin.String? = null
  294    312   
        /**
  295    313   
         * The maximum VPN session duration time in hours.
  296    314   
         *
  297    315   
         * Valid values: `8 | 10 | 12 | 24`
  298    316   
         *
  299    317   
         * Default value: `24`
  300    318   
         */
  301    319   
        public var sessionTimeoutHours: kotlin.Int? = null
  302    320   
        /**
  303    321   
         * Indicates whether split-tunnel is enabled in the Client VPN endpoint.
  304    322   
         *
  305    323   
         * For information about split-tunnel VPN endpoints, see [Split-Tunnel Client VPN endpoint](https://docs.aws.amazon.com/vpn/latest/clientvpn-admin/split-tunnel-vpn.html) in the *Client VPN Administrator Guide*.
  306    324   
         */
  307    325   
        public var splitTunnel: kotlin.Boolean? = null
  308    326   
        /**
  309    327   
         * The current state of the Client VPN endpoint.
  310    328   
         */
  311    329   
        public var status: aws.sdk.kotlin.services.ec2.model.ClientVpnEndpointStatus? = null
  312    330   
        /**
  313    331   
         * Any tags assigned to the Client VPN endpoint.
  314    332   
         */
  315    333   
        public var tags: List<Tag>? = null
         334  +
        /**
         335  +
         * The IP address type of the Client VPN endpoint. Possible values are either `ipv4` for IPv4 addressing only, `ipv6` for IPv6 addressing only, or `dual-stack` for both IPv4 and IPv6 addressing.
         336  +
         */
         337  +
        public var trafficIpAddressType: aws.sdk.kotlin.services.ec2.model.TrafficIpAddressType? = null
  316    338   
        /**
  317    339   
         * The transport protocol used by the Client VPN endpoint.
  318    340   
         */
  319    341   
        public var transportProtocol: aws.sdk.kotlin.services.ec2.model.TransportProtocol? = null
  320    342   
        /**
  321    343   
         * The ID of the VPC.
  322    344   
         */
  323    345   
        public var vpcId: kotlin.String? = null
  324    346   
        /**
  325    347   
         * The port number for the Client VPN endpoint.
  326    348   
         */
  327    349   
        public var vpnPort: kotlin.Int? = null
  328    350   
        /**
  329    351   
         * The protocol used by the VPN session.
  330    352   
         */
  331    353   
        public var vpnProtocol: aws.sdk.kotlin.services.ec2.model.VpnProtocol? = null
  332    354   
  333    355   
        @PublishedApi
  334    356   
        internal constructor()
  335    357   
        @PublishedApi
  336    358   
        internal constructor(x: aws.sdk.kotlin.services.ec2.model.ClientVpnEndpoint) : this() {
  337    359   
            this.associatedTargetNetworks = x.associatedTargetNetworks
  338    360   
            this.authenticationOptions = x.authenticationOptions
  339    361   
            this.clientCidrBlock = x.clientCidrBlock
  340    362   
            this.clientConnectOptions = x.clientConnectOptions
  341    363   
            this.clientLoginBannerOptions = x.clientLoginBannerOptions
  342    364   
            this.clientRouteEnforcementOptions = x.clientRouteEnforcementOptions
  343    365   
            this.clientVpnEndpointId = x.clientVpnEndpointId
  344    366   
            this.connectionLogOptions = x.connectionLogOptions
  345    367   
            this.creationTime = x.creationTime
  346    368   
            this.deletionTime = x.deletionTime
  347    369   
            this.description = x.description
  348    370   
            this.disconnectOnSessionTimeout = x.disconnectOnSessionTimeout
  349    371   
            this.dnsName = x.dnsName
  350    372   
            this.dnsServers = x.dnsServers
         373  +
            this.endpointIpAddressType = x.endpointIpAddressType
  351    374   
            this.securityGroupIds = x.securityGroupIds
  352    375   
            this.selfServicePortalUrl = x.selfServicePortalUrl
  353    376   
            this.serverCertificateArn = x.serverCertificateArn
  354    377   
            this.sessionTimeoutHours = x.sessionTimeoutHours
  355    378   
            this.splitTunnel = x.splitTunnel
  356    379   
            this.status = x.status
  357    380   
            this.tags = x.tags
         381  +
            this.trafficIpAddressType = x.trafficIpAddressType
  358    382   
            this.transportProtocol = x.transportProtocol
  359    383   
            this.vpcId = x.vpcId
  360    384   
            this.vpnPort = x.vpnPort
  361    385   
            this.vpnProtocol = x.vpnProtocol
  362    386   
        }
  363    387   
  364    388   
        @PublishedApi
  365    389   
        internal fun build(): aws.sdk.kotlin.services.ec2.model.ClientVpnEndpoint = ClientVpnEndpoint(this)
  366    390   
  367    391   
        /**

tmp-codegen-diff/services/ec2/generated-src/main/kotlin/aws/sdk/kotlin/services/ec2/model/CopyImageRequest.kt

@@ -1,1 +257,305 @@
    6      6   
    7      7   
/**
    8      8   
 * Contains the parameters for CopyImage.
    9      9   
 */
   10     10   
public class CopyImageRequest private constructor(builder: Builder) {
   11     11   
    /**
   12     12   
     * Unique, case-sensitive identifier you provide to ensure idempotency of the request. For more information, see [Ensuring idempotency in Amazon EC2 API requests](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/Run_Instance_Idempotency.html) in the *Amazon EC2 API Reference*.
   13     13   
     */
   14     14   
    public val clientToken: kotlin.String? = builder.clientToken
   15     15   
    /**
   16         -
     * Indicates whether to include your user-defined AMI tags when copying the AMI.
          16  +
     * Specifies whether to copy your user-defined AMI tags to the new AMI.
   17     17   
     *
   18         -
     * The following tags will not be copied:
          18  +
     * The following tags are not be copied:
   19     19   
     * + System tags (prefixed with `aws:`)
   20     20   
     * + For public and shared AMIs, user-defined tags that are attached by other Amazon Web Services accounts
   21     21   
     *
   22     22   
     * Default: Your user-defined AMI tags are not copied.
   23     23   
     */
   24     24   
    public val copyImageTags: kotlin.Boolean? = builder.copyImageTags
   25     25   
    /**
   26         -
     * A description for the new AMI in the destination Region.
          26  +
     * A description for the new AMI.
   27     27   
     */
   28     28   
    public val description: kotlin.String? = builder.description
   29     29   
    /**
   30         -
     * The Amazon Resource Name (ARN) of the Outpost to which to copy the AMI. Only specify this parameter when copying an AMI from an Amazon Web Services Region to an Outpost. The AMI must be in the Region of the destination Outpost. You cannot copy an AMI from an Outpost to a Region, from one Outpost to another, or within the same Outpost.
          30  +
     * The Local Zone for the new AMI (for example, `cn-north-1-pkx-1a`).
          31  +
     *
          32  +
     * Only one of `DestinationAvailabilityZone`, `DestinationAvailabilityZoneId`, or `DestinationOutpostArn` can be specified.
          33  +
     */
          34  +
    public val destinationAvailabilityZone: kotlin.String? = builder.destinationAvailabilityZone
          35  +
    /**
          36  +
     * The ID of the Local Zone for the new AMI (for example, `cnn1-pkx1-az1`).
          37  +
     *
          38  +
     * Only one of `DestinationAvailabilityZone`, `DestinationAvailabilityZoneId`, or `DestinationOutpostArn` can be specified.
          39  +
     */
          40  +
    public val destinationAvailabilityZoneId: kotlin.String? = builder.destinationAvailabilityZoneId
          41  +
    /**
          42  +
     * The Amazon Resource Name (ARN) of the Outpost for the new AMI.
          43  +
     *
          44  +
     * Only specify this parameter when copying an AMI from an Amazon Web Services Region to an Outpost. The AMI must be in the Region of the destination Outpost. You can't copy an AMI from an Outpost to a Region, from one Outpost to another, or within the same Outpost.
   31     45   
     *
   32     46   
     * For more information, see [Copy AMIs from an Amazon Web Services Region to an Outpost](https://docs.aws.amazon.com/ebs/latest/userguide/snapshots-outposts.html#copy-amis) in the *Amazon EBS User Guide*.
          47  +
     *
          48  +
     * Only one of `DestinationAvailabilityZone`, `DestinationAvailabilityZoneId`, or `DestinationOutpostArn` can be specified.
   33     49   
     */
   34     50   
    public val destinationOutpostArn: kotlin.String? = builder.destinationOutpostArn
   35     51   
    /**
   36     52   
     * 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`.
   37     53   
     */
   38     54   
    public val dryRun: kotlin.Boolean? = builder.dryRun
   39     55   
    /**
   40         -
     * Specifies whether the destination snapshots of the copied image should be encrypted. You can encrypt a copy of an unencrypted snapshot, but you cannot create an unencrypted copy of an encrypted snapshot. The default KMS key for Amazon EBS is used unless you specify a non-default Key Management Service (KMS) KMS key using `KmsKeyId`. For more information, see [Use encryption with EBS-backed AMIs](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/AMIEncryption.html) in the *Amazon EC2 User Guide*.
          56  +
     * Specifies whether to encrypt the snapshots of the copied image.
          57  +
     *
          58  +
     * You can encrypt a copy of an unencrypted snapshot, but you cannot create an unencrypted copy of an encrypted snapshot. The default KMS key for Amazon EBS is used unless you specify a non-default Key Management Service (KMS) KMS key using `KmsKeyId`. For more information, see [Use encryption with EBS-backed AMIs](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/AMIEncryption.html) in the *Amazon EC2 User Guide*.
   41     59   
     */
   42     60   
    public val encrypted: kotlin.Boolean? = builder.encrypted
   43     61   
    /**
   44     62   
     * The identifier of the symmetric Key Management Service (KMS) KMS key to use when creating encrypted volumes. If this parameter is not specified, your Amazon Web Services managed KMS key for Amazon EBS is used. If you specify a KMS key, you must also set the encrypted state to `true`.
   45     63   
     *
   46     64   
     * You can specify a KMS key using any of the following:
   47     65   
     * + Key ID. For example, 1234abcd-12ab-34cd-56ef-1234567890ab.
   48     66   
     * + Key alias. For example, alias/ExampleAlias.
   49     67   
     * + Key ARN. For example, arn:aws:kms:us-east-1:012345678910:key/1234abcd-12ab-34cd-56ef-1234567890ab.
   50     68   
     * + Alias ARN. For example, arn:aws:kms:us-east-1:012345678910:alias/ExampleAlias.
   51     69   
     *
   52     70   
     * Amazon Web Services authenticates the KMS key asynchronously. Therefore, if you specify an identifier that is not valid, the action can appear to complete, but eventually fails.
   53     71   
     *
   54     72   
     * The specified KMS key must exist in the destination Region.
   55     73   
     *
   56     74   
     * Amazon EBS does not support asymmetric KMS keys.
   57     75   
     */
   58     76   
    public val kmsKeyId: kotlin.String? = builder.kmsKeyId
   59     77   
    /**
   60         -
     * The name of the new AMI in the destination Region.
          78  +
     * The name of the new AMI.
   61     79   
     */
   62     80   
    public val name: kotlin.String? = builder.name
   63     81   
    /**
   64     82   
     * Specify a completion duration, in 15 minute increments, to initiate a time-based AMI copy. The specified completion duration applies to each of the snapshots associated with the AMI. Each snapshot associated with the AMI will be completed within the specified completion duration, with copy throughput automatically adjusted for each snapshot based on its size to meet the timing target.
   65     83   
     *
   66     84   
     * If you do not specify a value, the AMI copy operation is completed on a best-effort basis.
   67     85   
     *
          86  +
     * This parameter is not supported when copying an AMI to or from a Local Zone, or to an Outpost.
          87  +
     *
   68     88   
     * For more information, see [Time-based copies for Amazon EBS snapshots and EBS-backed AMIs](https://docs.aws.amazon.com/ebs/latest/userguide/time-based-copies.html).
   69     89   
     */
   70     90   
    public val snapshotCopyCompletionDurationMinutes: kotlin.Long? = builder.snapshotCopyCompletionDurationMinutes
   71     91   
    /**
   72     92   
     * The ID of the AMI to copy.
   73     93   
     */
   74     94   
    public val sourceImageId: kotlin.String? = builder.sourceImageId
   75     95   
    /**
   76     96   
     * The name of the Region that contains the AMI to copy.
   77     97   
     */
   78     98   
    public val sourceRegion: kotlin.String? = builder.sourceRegion
   79     99   
    /**
   80    100   
     * The tags to apply to the new AMI and new snapshots. You can tag the AMI, the snapshots, or both.
   81    101   
     * + To tag the new AMI, the value for `ResourceType` must be `image`.
   82    102   
     * + To tag the new snapshots, the value for `ResourceType` must be `snapshot`. The same tag is applied to all the new snapshots.
   83    103   
     *
   84    104   
     * If you specify other values for `ResourceType`, the request fails.
   85    105   
     *
   86    106   
     * To tag an AMI or snapshot after it has been created, see [CreateTags](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateTags.html).
   87    107   
     */
   88    108   
    public val tagSpecifications: List<TagSpecification>? = builder.tagSpecifications
   89    109   
   90    110   
    public companion object {
   91    111   
        public operator fun invoke(block: Builder.() -> kotlin.Unit): aws.sdk.kotlin.services.ec2.model.CopyImageRequest = Builder().apply(block).build()
   92    112   
    }
   93    113   
   94    114   
    override fun toString(): kotlin.String = buildString {
   95    115   
        append("CopyImageRequest(")
   96    116   
        append("clientToken=$clientToken,")
   97    117   
        append("copyImageTags=$copyImageTags,")
   98    118   
        append("description=$description,")
         119  +
        append("destinationAvailabilityZone=$destinationAvailabilityZone,")
         120  +
        append("destinationAvailabilityZoneId=$destinationAvailabilityZoneId,")
   99    121   
        append("destinationOutpostArn=$destinationOutpostArn,")
  100    122   
        append("dryRun=$dryRun,")
  101    123   
        append("encrypted=$encrypted,")
  102    124   
        append("kmsKeyId=$kmsKeyId,")
  103    125   
        append("name=$name,")
  104    126   
        append("snapshotCopyCompletionDurationMinutes=$snapshotCopyCompletionDurationMinutes,")
  105    127   
        append("sourceImageId=$sourceImageId,")
  106    128   
        append("sourceRegion=$sourceRegion,")
  107    129   
        append("tagSpecifications=$tagSpecifications")
  108    130   
        append(")")
  109    131   
    }
  110    132   
  111    133   
    override fun hashCode(): kotlin.Int {
  112    134   
        var result = clientToken?.hashCode() ?: 0
  113    135   
        result = 31 * result + (this.copyImageTags?.hashCode() ?: 0)
  114    136   
        result = 31 * result + (this.description?.hashCode() ?: 0)
         137  +
        result = 31 * result + (this.destinationAvailabilityZone?.hashCode() ?: 0)
         138  +
        result = 31 * result + (this.destinationAvailabilityZoneId?.hashCode() ?: 0)
  115    139   
        result = 31 * result + (this.destinationOutpostArn?.hashCode() ?: 0)
  116    140   
        result = 31 * result + (this.dryRun?.hashCode() ?: 0)
  117    141   
        result = 31 * result + (this.encrypted?.hashCode() ?: 0)
  118    142   
        result = 31 * result + (this.kmsKeyId?.hashCode() ?: 0)
  119    143   
        result = 31 * result + (this.name?.hashCode() ?: 0)
  120    144   
        result = 31 * result + (this.snapshotCopyCompletionDurationMinutes?.hashCode() ?: 0)
  121    145   
        result = 31 * result + (this.sourceImageId?.hashCode() ?: 0)
  122    146   
        result = 31 * result + (this.sourceRegion?.hashCode() ?: 0)
  123    147   
        result = 31 * result + (this.tagSpecifications?.hashCode() ?: 0)
  124    148   
        return result
  125    149   
    }
  126    150   
  127    151   
    override fun equals(other: kotlin.Any?): kotlin.Boolean {
  128    152   
        if (this === other) return true
  129    153   
        if (other == null || this::class != other::class) return false
  130    154   
  131    155   
        other as CopyImageRequest
  132    156   
  133    157   
        if (clientToken != other.clientToken) return false
  134    158   
        if (copyImageTags != other.copyImageTags) return false
  135    159   
        if (description != other.description) return false
         160  +
        if (destinationAvailabilityZone != other.destinationAvailabilityZone) return false
         161  +
        if (destinationAvailabilityZoneId != other.destinationAvailabilityZoneId) return false
  136    162   
        if (destinationOutpostArn != other.destinationOutpostArn) return false
  137    163   
        if (dryRun != other.dryRun) return false
  138    164   
        if (encrypted != other.encrypted) return false
  139    165   
        if (kmsKeyId != other.kmsKeyId) return false
  140    166   
        if (name != other.name) return false
  141    167   
        if (snapshotCopyCompletionDurationMinutes != other.snapshotCopyCompletionDurationMinutes) return false
  142    168   
        if (sourceImageId != other.sourceImageId) return false
  143    169   
        if (sourceRegion != other.sourceRegion) return false
  144    170   
        if (tagSpecifications != other.tagSpecifications) return false
  145    171   
  146    172   
        return true
  147    173   
    }
  148    174   
  149    175   
    public inline fun copy(block: Builder.() -> kotlin.Unit = {}): aws.sdk.kotlin.services.ec2.model.CopyImageRequest = Builder(this).apply(block).build()
  150    176   
  151    177   
    @SdkDsl
  152    178   
    public class Builder {
  153    179   
        /**
  154    180   
         * Unique, case-sensitive identifier you provide to ensure idempotency of the request. For more information, see [Ensuring idempotency in Amazon EC2 API requests](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/Run_Instance_Idempotency.html) in the *Amazon EC2 API Reference*.
  155    181   
         */
  156    182   
        public var clientToken: kotlin.String? = null
  157    183   
        /**
  158         -
         * Indicates whether to include your user-defined AMI tags when copying the AMI.
         184  +
         * Specifies whether to copy your user-defined AMI tags to the new AMI.
  159    185   
         *
  160         -
         * The following tags will not be copied:
         186  +
         * The following tags are not be copied:
  161    187   
         * + System tags (prefixed with `aws:`)
  162    188   
         * + For public and shared AMIs, user-defined tags that are attached by other Amazon Web Services accounts
  163    189   
         *
  164    190   
         * Default: Your user-defined AMI tags are not copied.
  165    191   
         */
  166    192   
        public var copyImageTags: kotlin.Boolean? = null
  167    193   
        /**
  168         -
         * A description for the new AMI in the destination Region.
         194  +
         * A description for the new AMI.
  169    195   
         */
  170    196   
        public var description: kotlin.String? = null
  171    197   
        /**
  172         -
         * The Amazon Resource Name (ARN) of the Outpost to which to copy the AMI. Only specify this parameter when copying an AMI from an Amazon Web Services Region to an Outpost. The AMI must be in the Region of the destination Outpost. You cannot copy an AMI from an Outpost to a Region, from one Outpost to another, or within the same Outpost.
         198  +
         * The Local Zone for the new AMI (for example, `cn-north-1-pkx-1a`).
         199  +
         *
         200  +
         * Only one of `DestinationAvailabilityZone`, `DestinationAvailabilityZoneId`, or `DestinationOutpostArn` can be specified.
         201  +
         */
         202  +
        public var destinationAvailabilityZone: kotlin.String? = null
         203  +
        /**
         204  +
         * The ID of the Local Zone for the new AMI (for example, `cnn1-pkx1-az1`).
         205  +
         *
         206  +
         * Only one of `DestinationAvailabilityZone`, `DestinationAvailabilityZoneId`, or `DestinationOutpostArn` can be specified.
         207  +
         */
         208  +
        public var destinationAvailabilityZoneId: kotlin.String? = null
         209  +
        /**
         210  +
         * The Amazon Resource Name (ARN) of the Outpost for the new AMI.
         211  +
         *
         212  +
         * Only specify this parameter when copying an AMI from an Amazon Web Services Region to an Outpost. The AMI must be in the Region of the destination Outpost. You can't copy an AMI from an Outpost to a Region, from one Outpost to another, or within the same Outpost.
  173    213   
         *
  174    214   
         * For more information, see [Copy AMIs from an Amazon Web Services Region to an Outpost](https://docs.aws.amazon.com/ebs/latest/userguide/snapshots-outposts.html#copy-amis) in the *Amazon EBS User Guide*.
         215  +
         *
         216  +
         * Only one of `DestinationAvailabilityZone`, `DestinationAvailabilityZoneId`, or `DestinationOutpostArn` can be specified.
  175    217   
         */
  176    218   
        public var destinationOutpostArn: kotlin.String? = null
  177    219   
        /**
  178    220   
         * 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`.
  179    221   
         */
  180    222   
        public var dryRun: kotlin.Boolean? = null
  181    223   
        /**
  182         -
         * Specifies whether the destination snapshots of the copied image should be encrypted. You can encrypt a copy of an unencrypted snapshot, but you cannot create an unencrypted copy of an encrypted snapshot. The default KMS key for Amazon EBS is used unless you specify a non-default Key Management Service (KMS) KMS key using `KmsKeyId`. For more information, see [Use encryption with EBS-backed AMIs](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/AMIEncryption.html) in the *Amazon EC2 User Guide*.
         224  +
         * Specifies whether to encrypt the snapshots of the copied image.
         225  +
         *
         226  +
         * You can encrypt a copy of an unencrypted snapshot, but you cannot create an unencrypted copy of an encrypted snapshot. The default KMS key for Amazon EBS is used unless you specify a non-default Key Management Service (KMS) KMS key using `KmsKeyId`. For more information, see [Use encryption with EBS-backed AMIs](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/AMIEncryption.html) in the *Amazon EC2 User Guide*.
  183    227   
         */
  184    228   
        public var encrypted: kotlin.Boolean? = null
  185    229   
        /**
  186    230   
         * The identifier of the symmetric Key Management Service (KMS) KMS key to use when creating encrypted volumes. If this parameter is not specified, your Amazon Web Services managed KMS key for Amazon EBS is used. If you specify a KMS key, you must also set the encrypted state to `true`.
  187    231   
         *
  188    232   
         * You can specify a KMS key using any of the following:
  189    233   
         * + Key ID. For example, 1234abcd-12ab-34cd-56ef-1234567890ab.
  190    234   
         * + Key alias. For example, alias/ExampleAlias.
  191    235   
         * + Key ARN. For example, arn:aws:kms:us-east-1:012345678910:key/1234abcd-12ab-34cd-56ef-1234567890ab.
  192    236   
         * + Alias ARN. For example, arn:aws:kms:us-east-1:012345678910:alias/ExampleAlias.
  193    237   
         *
  194    238   
         * Amazon Web Services authenticates the KMS key asynchronously. Therefore, if you specify an identifier that is not valid, the action can appear to complete, but eventually fails.
  195    239   
         *
  196    240   
         * The specified KMS key must exist in the destination Region.
  197    241   
         *
  198    242   
         * Amazon EBS does not support asymmetric KMS keys.
  199    243   
         */
  200    244   
        public var kmsKeyId: kotlin.String? = null
  201    245   
        /**
  202         -
         * The name of the new AMI in the destination Region.
         246  +
         * The name of the new AMI.
  203    247   
         */
  204    248   
        public var name: kotlin.String? = null
  205    249   
        /**
  206    250   
         * Specify a completion duration, in 15 minute increments, to initiate a time-based AMI copy. The specified completion duration applies to each of the snapshots associated with the AMI. Each snapshot associated with the AMI will be completed within the specified completion duration, with copy throughput automatically adjusted for each snapshot based on its size to meet the timing target.
  207    251   
         *
  208    252   
         * If you do not specify a value, the AMI copy operation is completed on a best-effort basis.
  209    253   
         *
         254  +
         * This parameter is not supported when copying an AMI to or from a Local Zone, or to an Outpost.
         255  +
         *
  210    256   
         * For more information, see [Time-based copies for Amazon EBS snapshots and EBS-backed AMIs](https://docs.aws.amazon.com/ebs/latest/userguide/time-based-copies.html).
  211    257   
         */
  212    258   
        public var snapshotCopyCompletionDurationMinutes: kotlin.Long? = null
  213    259   
        /**
  214    260   
         * The ID of the AMI to copy.
  215    261   
         */
  216    262   
        public var sourceImageId: kotlin.String? = null
  217    263   
        /**
  218    264   
         * The name of the Region that contains the AMI to copy.
  219    265   
         */
  220    266   
        public var sourceRegion: kotlin.String? = null
  221    267   
        /**
  222    268   
         * The tags to apply to the new AMI and new snapshots. You can tag the AMI, the snapshots, or both.
  223    269   
         * + To tag the new AMI, the value for `ResourceType` must be `image`.
  224    270   
         * + To tag the new snapshots, the value for `ResourceType` must be `snapshot`. The same tag is applied to all the new snapshots.
  225    271   
         *
  226    272   
         * If you specify other values for `ResourceType`, the request fails.
  227    273   
         *
  228    274   
         * To tag an AMI or snapshot after it has been created, see [CreateTags](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateTags.html).
  229    275   
         */
  230    276   
        public var tagSpecifications: List<TagSpecification>? = null
  231    277   
  232    278   
        @PublishedApi
  233    279   
        internal constructor()
  234    280   
        @PublishedApi
  235    281   
        internal constructor(x: aws.sdk.kotlin.services.ec2.model.CopyImageRequest) : this() {
  236    282   
            this.clientToken = x.clientToken
  237    283   
            this.copyImageTags = x.copyImageTags
  238    284   
            this.description = x.description
         285  +
            this.destinationAvailabilityZone = x.destinationAvailabilityZone
         286  +
            this.destinationAvailabilityZoneId = x.destinationAvailabilityZoneId
  239    287   
            this.destinationOutpostArn = x.destinationOutpostArn
  240    288   
            this.dryRun = x.dryRun
  241    289   
            this.encrypted = x.encrypted
  242    290   
            this.kmsKeyId = x.kmsKeyId
  243    291   
            this.name = x.name
  244    292   
            this.snapshotCopyCompletionDurationMinutes = x.snapshotCopyCompletionDurationMinutes
  245    293   
            this.sourceImageId = x.sourceImageId
  246    294   
            this.sourceRegion = x.sourceRegion
  247    295   
            this.tagSpecifications = x.tagSpecifications
  248    296   
        }

tmp-codegen-diff/services/ec2/generated-src/main/kotlin/aws/sdk/kotlin/services/ec2/model/CopySnapshotRequest.kt

@@ -1,1 +214,238 @@
    1      1   
// Code generated by smithy-kotlin-codegen. DO NOT EDIT!
    2      2   
    3      3   
package aws.sdk.kotlin.services.ec2.model
    4      4   
    5      5   
import aws.smithy.kotlin.runtime.SdkDsl
    6      6   
    7      7   
public class CopySnapshotRequest private constructor(builder: Builder) {
    8      8   
    /**
           9  +
     * Not supported when copying snapshots to or from Local Zones or Outposts.
          10  +
     *
    9     11   
     * Specify a completion duration, in 15 minute increments, to initiate a time-based snapshot copy. Time-based snapshot copy operations complete within the specified duration. For more information, see [ Time-based copies](https://docs.aws.amazon.com/ebs/latest/userguide/time-based-copies.html).
   10     12   
     *
   11     13   
     * If you do not specify a value, the snapshot copy operation is completed on a best-effort basis.
   12     14   
     */
   13     15   
    public val completionDurationMinutes: kotlin.Int? = builder.completionDurationMinutes
   14     16   
    /**
   15     17   
     * A description for the EBS snapshot.
   16     18   
     */
   17     19   
    public val description: kotlin.String? = builder.description
   18     20   
    /**
   19         -
     * The Amazon Resource Name (ARN) of the Outpost to which to copy the snapshot. Only specify this parameter when copying a snapshot from an Amazon Web Services Region to an Outpost. The snapshot must be in the Region for the destination Outpost. You cannot copy a snapshot from an Outpost to a Region, from one Outpost to another, or within the same Outpost.
          21  +
     * The Local Zone, for example, `cn-north-1-pkx-1a` to which to copy the snapshot.
          22  +
     *
          23  +
     * Only supported when copying a snapshot to a Local Zone.
          24  +
     */
          25  +
    public val destinationAvailabilityZone: kotlin.String? = builder.destinationAvailabilityZone
          26  +
    /**
          27  +
     * The Amazon Resource Name (ARN) of the Outpost to which to copy the snapshot.
          28  +
     *
          29  +
     * Only supported when copying a snapshot to an Outpost.
   20     30   
     *
   21     31   
     * For more information, see [ Copy snapshots from an Amazon Web Services Region to an Outpost](https://docs.aws.amazon.com/ebs/latest/userguide/snapshots-outposts.html#copy-snapshots) in the *Amazon EBS User Guide*.
   22     32   
     */
   23     33   
    public val destinationOutpostArn: kotlin.String? = builder.destinationOutpostArn
   24     34   
    /**
   25     35   
     * The destination Region to use in the `PresignedUrl` parameter of a snapshot copy operation. This parameter is only valid for specifying the destination Region in a `PresignedUrl` parameter, where it is required.
   26     36   
     *
   27     37   
     * The snapshot copy is sent to the regional endpoint that you sent the HTTP request to (for example, `ec2.us-east-1.amazonaws.com`). With the CLI, this is specified using the `--region` parameter or the default Region in your Amazon Web Services configuration file.
   28     38   
     */
   29     39   
    public val destinationRegion: kotlin.String? = builder.destinationRegion
   30     40   
    /**
   31     41   
     * 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`.
   32     42   
     */
   33     43   
    public val dryRun: kotlin.Boolean? = builder.dryRun
   34     44   
    /**
   35         -
     * To encrypt a copy of an unencrypted snapshot if encryption by default is not enabled, enable encryption using this parameter. Otherwise, omit this parameter. Encrypted snapshots are encrypted, even if you omit this parameter and encryption by default is not enabled. You cannot set this parameter to false. For more information, see [Amazon EBS encryption](https://docs.aws.amazon.com/ebs/latest/userguide/ebs-encryption.html) in the *Amazon EBS User Guide*.
          45  +
     * To encrypt a copy of an unencrypted snapshot if encryption by default is not enabled, enable encryption using this parameter. Otherwise, omit this parameter. Copies of encrypted snapshots are encrypted, even if you omit this parameter and encryption by default is not enabled. You cannot set this parameter to false. For more information, see [Amazon EBS encryption](https://docs.aws.amazon.com/ebs/latest/userguide/ebs-encryption.html) in the *Amazon EBS User Guide*.
   36     46   
     */
   37     47   
    public val encrypted: kotlin.Boolean? = builder.encrypted
   38     48   
    /**
   39     49   
     * The identifier of the KMS key to use for Amazon EBS encryption. If this parameter is not specified, your KMS key for Amazon EBS is used. If `KmsKeyId` is specified, the encrypted state must be `true`.
   40     50   
     *
   41     51   
     * You can specify the KMS key using any of the following:
   42     52   
     * + Key ID. For example, 1234abcd-12ab-34cd-56ef-1234567890ab.
   43     53   
     * + Key alias. For example, alias/ExampleAlias.
   44     54   
     * + Key ARN. For example, arn:aws:kms:us-east-1:012345678910:key/1234abcd-12ab-34cd-56ef-1234567890ab.
   45     55   
     * + Alias ARN. For example, arn:aws:kms:us-east-1:012345678910:alias/ExampleAlias.
   46     56   
     *
   47     57   
     * Amazon Web Services authenticates the KMS key asynchronously. Therefore, if you specify an ID, alias, or ARN that is not valid, the action can appear to complete, but eventually fails.
   48     58   
     */
   49     59   
    public val kmsKeyId: kotlin.String? = builder.kmsKeyId
   50     60   
    /**
   51     61   
     * When you copy an encrypted source snapshot using the Amazon EC2 Query API, you must supply a pre-signed URL. This parameter is optional for unencrypted snapshots. For more information, see [Query requests](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/Query-Requests.html).
   52     62   
     *
   53     63   
     * The `PresignedUrl` should use the snapshot source endpoint, the `CopySnapshot` action, and include the `SourceRegion`, `SourceSnapshotId`, and `DestinationRegion` parameters. The `PresignedUrl` must be signed using Amazon Web Services Signature Version 4. Because EBS snapshots are stored in Amazon S3, the signing algorithm for this parameter uses the same logic that is described in [ Authenticating Requests: Using Query Parameters (Amazon Web Services Signature Version 4)](https://docs.aws.amazon.com/AmazonS3/latest/API/sigv4-query-string-auth.html) in the *Amazon S3 API Reference*. An invalid or improperly signed `PresignedUrl` will cause the copy operation to fail asynchronously, and the snapshot will move to an `error` state.
   54     64   
     */
   55     65   
    public val presignedUrl: kotlin.String? = builder.presignedUrl
   56     66   
    /**
   57     67   
     * The ID of the Region that contains the snapshot to be copied.
   58     68   
     */
   59     69   
    public val sourceRegion: kotlin.String? = builder.sourceRegion
   60     70   
    /**
   61     71   
     * The ID of the EBS snapshot to copy.
   62     72   
     */
   63     73   
    public val sourceSnapshotId: kotlin.String? = builder.sourceSnapshotId
   64     74   
    /**
   65     75   
     * The tags to apply to the new snapshot.
   66     76   
     */
   67     77   
    public val tagSpecifications: List<TagSpecification>? = builder.tagSpecifications
   68     78   
   69     79   
    public companion object {
   70     80   
        public operator fun invoke(block: Builder.() -> kotlin.Unit): aws.sdk.kotlin.services.ec2.model.CopySnapshotRequest = Builder().apply(block).build()
   71     81   
    }
   72     82   
   73     83   
    override fun toString(): kotlin.String = buildString {
   74     84   
        append("CopySnapshotRequest(")
   75     85   
        append("completionDurationMinutes=$completionDurationMinutes,")
   76     86   
        append("description=$description,")
          87  +
        append("destinationAvailabilityZone=$destinationAvailabilityZone,")
   77     88   
        append("destinationOutpostArn=$destinationOutpostArn,")
   78     89   
        append("destinationRegion=$destinationRegion,")
   79     90   
        append("dryRun=$dryRun,")
   80     91   
        append("encrypted=$encrypted,")
   81     92   
        append("kmsKeyId=$kmsKeyId,")
   82     93   
        append("presignedUrl=*** Sensitive Data Redacted ***,")
   83     94   
        append("sourceRegion=$sourceRegion,")
   84     95   
        append("sourceSnapshotId=$sourceSnapshotId,")
   85     96   
        append("tagSpecifications=$tagSpecifications")
   86     97   
        append(")")
   87     98   
    }
   88     99   
   89    100   
    override fun hashCode(): kotlin.Int {
   90    101   
        var result = completionDurationMinutes ?: 0
   91    102   
        result = 31 * result + (this.description?.hashCode() ?: 0)
         103  +
        result = 31 * result + (this.destinationAvailabilityZone?.hashCode() ?: 0)
   92    104   
        result = 31 * result + (this.destinationOutpostArn?.hashCode() ?: 0)
   93    105   
        result = 31 * result + (this.destinationRegion?.hashCode() ?: 0)
   94    106   
        result = 31 * result + (this.dryRun?.hashCode() ?: 0)
   95    107   
        result = 31 * result + (this.encrypted?.hashCode() ?: 0)
   96    108   
        result = 31 * result + (this.kmsKeyId?.hashCode() ?: 0)
   97    109   
        result = 31 * result + (this.presignedUrl?.hashCode() ?: 0)
   98    110   
        result = 31 * result + (this.sourceRegion?.hashCode() ?: 0)
   99    111   
        result = 31 * result + (this.sourceSnapshotId?.hashCode() ?: 0)
  100    112   
        result = 31 * result + (this.tagSpecifications?.hashCode() ?: 0)
  101    113   
        return result
  102    114   
    }
  103    115   
  104    116   
    override fun equals(other: kotlin.Any?): kotlin.Boolean {
  105    117   
        if (this === other) return true
  106    118   
        if (other == null || this::class != other::class) return false
  107    119   
  108    120   
        other as CopySnapshotRequest
  109    121   
  110    122   
        if (completionDurationMinutes != other.completionDurationMinutes) return false
  111    123   
        if (description != other.description) return false
         124  +
        if (destinationAvailabilityZone != other.destinationAvailabilityZone) return false
  112    125   
        if (destinationOutpostArn != other.destinationOutpostArn) return false
  113    126   
        if (destinationRegion != other.destinationRegion) return false
  114    127   
        if (dryRun != other.dryRun) return false
  115    128   
        if (encrypted != other.encrypted) return false
  116    129   
        if (kmsKeyId != other.kmsKeyId) return false
  117    130   
        if (presignedUrl != other.presignedUrl) return false
  118    131   
        if (sourceRegion != other.sourceRegion) return false
  119    132   
        if (sourceSnapshotId != other.sourceSnapshotId) return false
  120    133   
        if (tagSpecifications != other.tagSpecifications) return false
  121    134   
  122    135   
        return true
  123    136   
    }
  124    137   
  125    138   
    public inline fun copy(block: Builder.() -> kotlin.Unit = {}): aws.sdk.kotlin.services.ec2.model.CopySnapshotRequest = Builder(this).apply(block).build()
  126    139   
  127    140   
    @SdkDsl
  128    141   
    public class Builder {
  129    142   
        /**
         143  +
         * Not supported when copying snapshots to or from Local Zones or Outposts.
         144  +
         *
  130    145   
         * Specify a completion duration, in 15 minute increments, to initiate a time-based snapshot copy. Time-based snapshot copy operations complete within the specified duration. For more information, see [ Time-based copies](https://docs.aws.amazon.com/ebs/latest/userguide/time-based-copies.html).
  131    146   
         *
  132    147   
         * If you do not specify a value, the snapshot copy operation is completed on a best-effort basis.
  133    148   
         */
  134    149   
        public var completionDurationMinutes: kotlin.Int? = null
  135    150   
        /**
  136    151   
         * A description for the EBS snapshot.
  137    152   
         */
  138    153   
        public var description: kotlin.String? = null
  139    154   
        /**
  140         -
         * The Amazon Resource Name (ARN) of the Outpost to which to copy the snapshot. Only specify this parameter when copying a snapshot from an Amazon Web Services Region to an Outpost. The snapshot must be in the Region for the destination Outpost. You cannot copy a snapshot from an Outpost to a Region, from one Outpost to another, or within the same Outpost.
         155  +
         * The Local Zone, for example, `cn-north-1-pkx-1a` to which to copy the snapshot.
         156  +
         *
         157  +
         * Only supported when copying a snapshot to a Local Zone.
         158  +
         */
         159  +
        public var destinationAvailabilityZone: kotlin.String? = null
         160  +
        /**
         161  +
         * The Amazon Resource Name (ARN) of the Outpost to which to copy the snapshot.
         162  +
         *
         163  +
         * Only supported when copying a snapshot to an Outpost.
  141    164   
         *
  142    165   
         * For more information, see [ Copy snapshots from an Amazon Web Services Region to an Outpost](https://docs.aws.amazon.com/ebs/latest/userguide/snapshots-outposts.html#copy-snapshots) in the *Amazon EBS User Guide*.
  143    166   
         */
  144    167   
        public var destinationOutpostArn: kotlin.String? = null
  145    168   
        /**
  146    169   
         * The destination Region to use in the `PresignedUrl` parameter of a snapshot copy operation. This parameter is only valid for specifying the destination Region in a `PresignedUrl` parameter, where it is required.
  147    170   
         *
  148    171   
         * The snapshot copy is sent to the regional endpoint that you sent the HTTP request to (for example, `ec2.us-east-1.amazonaws.com`). With the CLI, this is specified using the `--region` parameter or the default Region in your Amazon Web Services configuration file.
  149    172   
         */
  150    173   
        public var destinationRegion: kotlin.String? = null
  151    174   
        /**
  152    175   
         * 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`.
  153    176   
         */
  154    177   
        public var dryRun: kotlin.Boolean? = null
  155    178   
        /**
  156         -
         * To encrypt a copy of an unencrypted snapshot if encryption by default is not enabled, enable encryption using this parameter. Otherwise, omit this parameter. Encrypted snapshots are encrypted, even if you omit this parameter and encryption by default is not enabled. You cannot set this parameter to false. For more information, see [Amazon EBS encryption](https://docs.aws.amazon.com/ebs/latest/userguide/ebs-encryption.html) in the *Amazon EBS User Guide*.
         179  +
         * To encrypt a copy of an unencrypted snapshot if encryption by default is not enabled, enable encryption using this parameter. Otherwise, omit this parameter. Copies of encrypted snapshots are encrypted, even if you omit this parameter and encryption by default is not enabled. You cannot set this parameter to false. For more information, see [Amazon EBS encryption](https://docs.aws.amazon.com/ebs/latest/userguide/ebs-encryption.html) in the *Amazon EBS User Guide*.
  157    180   
         */
  158    181   
        public var encrypted: kotlin.Boolean? = null
  159    182   
        /**
  160    183   
         * The identifier of the KMS key to use for Amazon EBS encryption. If this parameter is not specified, your KMS key for Amazon EBS is used. If `KmsKeyId` is specified, the encrypted state must be `true`.
  161    184   
         *
  162    185   
         * You can specify the KMS key using any of the following:
  163    186   
         * + Key ID. For example, 1234abcd-12ab-34cd-56ef-1234567890ab.
  164    187   
         * + Key alias. For example, alias/ExampleAlias.
  165    188   
         * + Key ARN. For example, arn:aws:kms:us-east-1:012345678910:key/1234abcd-12ab-34cd-56ef-1234567890ab.
  166    189   
         * + Alias ARN. For example, arn:aws:kms:us-east-1:012345678910:alias/ExampleAlias.
  167    190   
         *
  168    191   
         * Amazon Web Services authenticates the KMS key asynchronously. Therefore, if you specify an ID, alias, or ARN that is not valid, the action can appear to complete, but eventually fails.
  169    192   
         */
  170    193   
        public var kmsKeyId: kotlin.String? = null
  171    194   
        /**
  172    195   
         * When you copy an encrypted source snapshot using the Amazon EC2 Query API, you must supply a pre-signed URL. This parameter is optional for unencrypted snapshots. For more information, see [Query requests](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/Query-Requests.html).
  173    196   
         *
  174    197   
         * The `PresignedUrl` should use the snapshot source endpoint, the `CopySnapshot` action, and include the `SourceRegion`, `SourceSnapshotId`, and `DestinationRegion` parameters. The `PresignedUrl` must be signed using Amazon Web Services Signature Version 4. Because EBS snapshots are stored in Amazon S3, the signing algorithm for this parameter uses the same logic that is described in [ Authenticating Requests: Using Query Parameters (Amazon Web Services Signature Version 4)](https://docs.aws.amazon.com/AmazonS3/latest/API/sigv4-query-string-auth.html) in the *Amazon S3 API Reference*. An invalid or improperly signed `PresignedUrl` will cause the copy operation to fail asynchronously, and the snapshot will move to an `error` state.
  175    198   
         */
  176    199   
        public var presignedUrl: kotlin.String? = null
  177    200   
        /**
  178    201   
         * The ID of the Region that contains the snapshot to be copied.
  179    202   
         */
  180    203   
        public var sourceRegion: kotlin.String? = null
  181    204   
        /**
  182    205   
         * The ID of the EBS snapshot to copy.
  183    206   
         */
  184    207   
        public var sourceSnapshotId: kotlin.String? = null
  185    208   
        /**
  186    209   
         * The tags to apply to the new snapshot.
  187    210   
         */
  188    211   
        public var tagSpecifications: List<TagSpecification>? = null
  189    212   
  190    213   
        @PublishedApi
  191    214   
        internal constructor()
  192    215   
        @PublishedApi
  193    216   
        internal constructor(x: aws.sdk.kotlin.services.ec2.model.CopySnapshotRequest) : this() {
  194    217   
            this.completionDurationMinutes = x.completionDurationMinutes
  195    218   
            this.description = x.description
         219  +
            this.destinationAvailabilityZone = x.destinationAvailabilityZone
  196    220   
            this.destinationOutpostArn = x.destinationOutpostArn
  197    221   
            this.destinationRegion = x.destinationRegion
  198    222   
            this.dryRun = x.dryRun
  199    223   
            this.encrypted = x.encrypted
  200    224   
            this.kmsKeyId = x.kmsKeyId
  201    225   
            this.presignedUrl = x.presignedUrl
  202    226   
            this.sourceRegion = x.sourceRegion
  203    227   
            this.sourceSnapshotId = x.sourceSnapshotId
  204    228   
            this.tagSpecifications = x.tagSpecifications
  205    229   
        }

tmp-codegen-diff/services/ec2/generated-src/main/kotlin/aws/sdk/kotlin/services/ec2/model/CreateClientVpnEndpointRequest.kt

@@ -30,30 +218,232 @@
   50     50   
     */
   51     51   
    public val disconnectOnSessionTimeout: kotlin.Boolean? = builder.disconnectOnSessionTimeout
   52     52   
    /**
   53     53   
     * Information about the DNS servers to be used for DNS resolution. A Client VPN endpoint can have up to two DNS servers. If no DNS server is specified, the DNS address configured on the device is used for the DNS server.
   54     54   
     */
   55     55   
    public val dnsServers: List<String>? = builder.dnsServers
   56     56   
    /**
   57     57   
     * 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`.
   58     58   
     */
   59     59   
    public val dryRun: kotlin.Boolean? = builder.dryRun
          60  +
    /**
          61  +
     * The IP address type for the Client VPN endpoint. Valid values are `ipv4` (default) for IPv4 addressing only, `ipv6` for IPv6 addressing only, or `dual-stack` for both IPv4 and IPv6 addressing. When set to `dual-stack,` clients can connect to the endpoint using either IPv4 or IPv6 addresses..
          62  +
     */
          63  +
    public val endpointIpAddressType: aws.sdk.kotlin.services.ec2.model.EndpointIpAddressType? = builder.endpointIpAddressType
   60     64   
    /**
   61     65   
     * The IDs of one or more security groups to apply to the target network. You must also specify the ID of the VPC that contains the security groups.
   62     66   
     */
   63     67   
    public val securityGroupIds: List<String>? = builder.securityGroupIds
   64     68   
    /**
   65     69   
     * Specify whether to enable the self-service portal for the Client VPN endpoint.
   66     70   
     *
   67     71   
     * Default Value: `enabled`
   68     72   
     */
   69     73   
    public val selfServicePortal: aws.sdk.kotlin.services.ec2.model.SelfServicePortal? = builder.selfServicePortal
   70     74   
    /**
   71     75   
     * The ARN of the server certificate. For more information, see the [Certificate Manager User Guide](https://docs.aws.amazon.com/acm/latest/userguide/).
   72     76   
     */
   73     77   
    public val serverCertificateArn: kotlin.String? = builder.serverCertificateArn
   74     78   
    /**
   75     79   
     * The maximum VPN session duration time in hours.
   76     80   
     *
   77     81   
     * Valid values: `8 | 10 | 12 | 24`
   78     82   
     *
   79     83   
     * Default value: `24`
   80     84   
     */
   81     85   
    public val sessionTimeoutHours: kotlin.Int? = builder.sessionTimeoutHours
   82     86   
    /**
   83     87   
     * Indicates whether split-tunnel is enabled on the Client VPN endpoint.
   84     88   
     *
   85     89   
     * By default, split-tunnel on a VPN endpoint is disabled.
   86     90   
     *
   87     91   
     * For information about split-tunnel VPN endpoints, see [Split-tunnel Client VPN endpoint](https://docs.aws.amazon.com/vpn/latest/clientvpn-admin/split-tunnel-vpn.html) in the *Client VPN Administrator Guide*.
   88     92   
     */
   89     93   
    public val splitTunnel: kotlin.Boolean? = builder.splitTunnel
   90     94   
    /**
   91     95   
     * The tags to apply to the Client VPN endpoint during creation.
   92     96   
     */
   93     97   
    public val tagSpecifications: List<TagSpecification>? = builder.tagSpecifications
          98  +
    /**
          99  +
     * The IP address type for traffic within the Client VPN tunnel. Valid values are `ipv4` (default) for IPv4 traffic only, `ipv6` for IPv6 addressing only, or `dual-stack` for both IPv4 and IPv6 traffic. When set to `dual-stack`, clients can access both IPv4 and IPv6 resources through the VPN .
         100  +
     */
         101  +
    public val trafficIpAddressType: aws.sdk.kotlin.services.ec2.model.TrafficIpAddressType? = builder.trafficIpAddressType
   94    102   
    /**
   95    103   
     * The transport protocol to be used by the VPN session.
   96    104   
     *
   97    105   
     * Default value: `udp`
   98    106   
     */
   99    107   
    public val transportProtocol: aws.sdk.kotlin.services.ec2.model.TransportProtocol? = builder.transportProtocol
  100    108   
    /**
  101    109   
     * The ID of the VPC to associate with the Client VPN endpoint. If no security group IDs are specified in the request, the default security group for the VPC is applied.
  102    110   
     */
  103    111   
    public val vpcId: kotlin.String? = builder.vpcId
  104    112   
    /**
  105    113   
     * The port number to assign to the Client VPN endpoint for TCP and UDP traffic.
  106    114   
     *
  107    115   
     * Valid Values: `443` | `1194`
  108    116   
     *
  109    117   
     * Default Value: `443`
  110    118   
     */
  111    119   
    public val vpnPort: kotlin.Int? = builder.vpnPort
  112    120   
  113    121   
    public companion object {
  114    122   
        public operator fun invoke(block: Builder.() -> kotlin.Unit): aws.sdk.kotlin.services.ec2.model.CreateClientVpnEndpointRequest = Builder().apply(block).build()
  115    123   
    }
  116    124   
  117    125   
    override fun toString(): kotlin.String = buildString {
  118    126   
        append("CreateClientVpnEndpointRequest(")
  119    127   
        append("authenticationOptions=$authenticationOptions,")
  120    128   
        append("clientCidrBlock=$clientCidrBlock,")
  121    129   
        append("clientConnectOptions=$clientConnectOptions,")
  122    130   
        append("clientLoginBannerOptions=$clientLoginBannerOptions,")
  123    131   
        append("clientRouteEnforcementOptions=$clientRouteEnforcementOptions,")
  124    132   
        append("clientToken=$clientToken,")
  125    133   
        append("connectionLogOptions=$connectionLogOptions,")
  126    134   
        append("description=$description,")
  127    135   
        append("disconnectOnSessionTimeout=$disconnectOnSessionTimeout,")
  128    136   
        append("dnsServers=$dnsServers,")
  129    137   
        append("dryRun=$dryRun,")
         138  +
        append("endpointIpAddressType=$endpointIpAddressType,")
  130    139   
        append("securityGroupIds=$securityGroupIds,")
  131    140   
        append("selfServicePortal=$selfServicePortal,")
  132    141   
        append("serverCertificateArn=$serverCertificateArn,")
  133    142   
        append("sessionTimeoutHours=$sessionTimeoutHours,")
  134    143   
        append("splitTunnel=$splitTunnel,")
  135    144   
        append("tagSpecifications=$tagSpecifications,")
         145  +
        append("trafficIpAddressType=$trafficIpAddressType,")
  136    146   
        append("transportProtocol=$transportProtocol,")
  137    147   
        append("vpcId=$vpcId,")
  138    148   
        append("vpnPort=$vpnPort")
  139    149   
        append(")")
  140    150   
    }
  141    151   
  142    152   
    override fun hashCode(): kotlin.Int {
  143    153   
        var result = authenticationOptions?.hashCode() ?: 0
  144    154   
        result = 31 * result + (this.clientCidrBlock?.hashCode() ?: 0)
  145    155   
        result = 31 * result + (this.clientConnectOptions?.hashCode() ?: 0)
  146    156   
        result = 31 * result + (this.clientLoginBannerOptions?.hashCode() ?: 0)
  147    157   
        result = 31 * result + (this.clientRouteEnforcementOptions?.hashCode() ?: 0)
  148    158   
        result = 31 * result + (this.clientToken?.hashCode() ?: 0)
  149    159   
        result = 31 * result + (this.connectionLogOptions?.hashCode() ?: 0)
  150    160   
        result = 31 * result + (this.description?.hashCode() ?: 0)
  151    161   
        result = 31 * result + (this.disconnectOnSessionTimeout?.hashCode() ?: 0)
  152    162   
        result = 31 * result + (this.dnsServers?.hashCode() ?: 0)
  153    163   
        result = 31 * result + (this.dryRun?.hashCode() ?: 0)
         164  +
        result = 31 * result + (this.endpointIpAddressType?.hashCode() ?: 0)
  154    165   
        result = 31 * result + (this.securityGroupIds?.hashCode() ?: 0)
  155    166   
        result = 31 * result + (this.selfServicePortal?.hashCode() ?: 0)
  156    167   
        result = 31 * result + (this.serverCertificateArn?.hashCode() ?: 0)
  157    168   
        result = 31 * result + (this.sessionTimeoutHours ?: 0)
  158    169   
        result = 31 * result + (this.splitTunnel?.hashCode() ?: 0)
  159    170   
        result = 31 * result + (this.tagSpecifications?.hashCode() ?: 0)
         171  +
        result = 31 * result + (this.trafficIpAddressType?.hashCode() ?: 0)
  160    172   
        result = 31 * result + (this.transportProtocol?.hashCode() ?: 0)
  161    173   
        result = 31 * result + (this.vpcId?.hashCode() ?: 0)
  162    174   
        result = 31 * result + (this.vpnPort ?: 0)
  163    175   
        return result
  164    176   
    }
  165    177   
  166    178   
    override fun equals(other: kotlin.Any?): kotlin.Boolean {
  167    179   
        if (this === other) return true
  168    180   
        if (other == null || this::class != other::class) return false
  169    181   
  170    182   
        other as CreateClientVpnEndpointRequest
  171    183   
  172    184   
        if (authenticationOptions != other.authenticationOptions) return false
  173    185   
        if (clientCidrBlock != other.clientCidrBlock) return false
  174    186   
        if (clientConnectOptions != other.clientConnectOptions) return false
  175    187   
        if (clientLoginBannerOptions != other.clientLoginBannerOptions) return false
  176    188   
        if (clientRouteEnforcementOptions != other.clientRouteEnforcementOptions) return false
  177    189   
        if (clientToken != other.clientToken) return false
  178    190   
        if (connectionLogOptions != other.connectionLogOptions) return false
  179    191   
        if (description != other.description) return false
  180    192   
        if (disconnectOnSessionTimeout != other.disconnectOnSessionTimeout) return false
  181    193   
        if (dnsServers != other.dnsServers) return false
  182    194   
        if (dryRun != other.dryRun) return false
         195  +
        if (endpointIpAddressType != other.endpointIpAddressType) return false
  183    196   
        if (securityGroupIds != other.securityGroupIds) return false
  184    197   
        if (selfServicePortal != other.selfServicePortal) return false
  185    198   
        if (serverCertificateArn != other.serverCertificateArn) return false
  186    199   
        if (sessionTimeoutHours != other.sessionTimeoutHours) return false
  187    200   
        if (splitTunnel != other.splitTunnel) return false
  188    201   
        if (tagSpecifications != other.tagSpecifications) return false
         202  +
        if (trafficIpAddressType != other.trafficIpAddressType) return false
  189    203   
        if (transportProtocol != other.transportProtocol) return false
  190    204   
        if (vpcId != other.vpcId) return false
  191    205   
        if (vpnPort != other.vpnPort) return false
  192    206   
  193    207   
        return true
  194    208   
    }
  195    209   
  196    210   
    public inline fun copy(block: Builder.() -> kotlin.Unit = {}): aws.sdk.kotlin.services.ec2.model.CreateClientVpnEndpointRequest = Builder(this).apply(block).build()
  197    211   
  198    212   
    @SdkDsl
@@ -222,236 +355,379 @@
  242    256   
         */
  243    257   
        public var disconnectOnSessionTimeout: kotlin.Boolean? = null
  244    258   
        /**
  245    259   
         * Information about the DNS servers to be used for DNS resolution. A Client VPN endpoint can have up to two DNS servers. If no DNS server is specified, the DNS address configured on the device is used for the DNS server.
  246    260   
         */
  247    261   
        public var dnsServers: List<String>? = null
  248    262   
        /**
  249    263   
         * 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`.
  250    264   
         */
  251    265   
        public var dryRun: kotlin.Boolean? = null
         266  +
        /**
         267  +
         * The IP address type for the Client VPN endpoint. Valid values are `ipv4` (default) for IPv4 addressing only, `ipv6` for IPv6 addressing only, or `dual-stack` for both IPv4 and IPv6 addressing. When set to `dual-stack,` clients can connect to the endpoint using either IPv4 or IPv6 addresses..
         268  +
         */
         269  +
        public var endpointIpAddressType: aws.sdk.kotlin.services.ec2.model.EndpointIpAddressType? = null
  252    270   
        /**
  253    271   
         * The IDs of one or more security groups to apply to the target network. You must also specify the ID of the VPC that contains the security groups.
  254    272   
         */
  255    273   
        public var securityGroupIds: List<String>? = null
  256    274   
        /**
  257    275   
         * Specify whether to enable the self-service portal for the Client VPN endpoint.
  258    276   
         *
  259    277   
         * Default Value: `enabled`
  260    278   
         */
  261    279   
        public var selfServicePortal: aws.sdk.kotlin.services.ec2.model.SelfServicePortal? = null
  262    280   
        /**
  263    281   
         * The ARN of the server certificate. For more information, see the [Certificate Manager User Guide](https://docs.aws.amazon.com/acm/latest/userguide/).
  264    282   
         */
  265    283   
        public var serverCertificateArn: kotlin.String? = null
  266    284   
        /**
  267    285   
         * The maximum VPN session duration time in hours.
  268    286   
         *
  269    287   
         * Valid values: `8 | 10 | 12 | 24`
  270    288   
         *
  271    289   
         * Default value: `24`
  272    290   
         */
  273    291   
        public var sessionTimeoutHours: kotlin.Int? = null
  274    292   
        /**
  275    293   
         * Indicates whether split-tunnel is enabled on the Client VPN endpoint.
  276    294   
         *
  277    295   
         * By default, split-tunnel on a VPN endpoint is disabled.
  278    296   
         *
  279    297   
         * For information about split-tunnel VPN endpoints, see [Split-tunnel Client VPN endpoint](https://docs.aws.amazon.com/vpn/latest/clientvpn-admin/split-tunnel-vpn.html) in the *Client VPN Administrator Guide*.
  280    298   
         */
  281    299   
        public var splitTunnel: kotlin.Boolean? = null
  282    300   
        /**
  283    301   
         * The tags to apply to the Client VPN endpoint during creation.
  284    302   
         */
  285    303   
        public var tagSpecifications: List<TagSpecification>? = null
         304  +
        /**
         305  +
         * The IP address type for traffic within the Client VPN tunnel. Valid values are `ipv4` (default) for IPv4 traffic only, `ipv6` for IPv6 addressing only, or `dual-stack` for both IPv4 and IPv6 traffic. When set to `dual-stack`, clients can access both IPv4 and IPv6 resources through the VPN .
         306  +
         */
         307  +
        public var trafficIpAddressType: aws.sdk.kotlin.services.ec2.model.TrafficIpAddressType? = null
  286    308   
        /**
  287    309   
         * The transport protocol to be used by the VPN session.
  288    310   
         *
  289    311   
         * Default value: `udp`
  290    312   
         */
  291    313   
        public var transportProtocol: aws.sdk.kotlin.services.ec2.model.TransportProtocol? = null
  292    314   
        /**
  293    315   
         * The ID of the VPC to associate with the Client VPN endpoint. If no security group IDs are specified in the request, the default security group for the VPC is applied.
  294    316   
         */
  295    317   
        public var vpcId: kotlin.String? = null
  296    318   
        /**
  297    319   
         * The port number to assign to the Client VPN endpoint for TCP and UDP traffic.
  298    320   
         *
  299    321   
         * Valid Values: `443` | `1194`
  300    322   
         *
  301    323   
         * Default Value: `443`
  302    324   
         */
  303    325   
        public var vpnPort: kotlin.Int? = null
  304    326   
  305    327   
        @PublishedApi
  306    328   
        internal constructor()
  307    329   
        @PublishedApi
  308    330   
        internal constructor(x: aws.sdk.kotlin.services.ec2.model.CreateClientVpnEndpointRequest) : this() {
  309    331   
            this.authenticationOptions = x.authenticationOptions
  310    332   
            this.clientCidrBlock = x.clientCidrBlock
  311    333   
            this.clientConnectOptions = x.clientConnectOptions
  312    334   
            this.clientLoginBannerOptions = x.clientLoginBannerOptions
  313    335   
            this.clientRouteEnforcementOptions = x.clientRouteEnforcementOptions
  314    336   
            this.clientToken = x.clientToken
  315    337   
            this.connectionLogOptions = x.connectionLogOptions
  316    338   
            this.description = x.description
  317    339   
            this.disconnectOnSessionTimeout = x.disconnectOnSessionTimeout
  318    340   
            this.dnsServers = x.dnsServers
  319    341   
            this.dryRun = x.dryRun
         342  +
            this.endpointIpAddressType = x.endpointIpAddressType
  320    343   
            this.securityGroupIds = x.securityGroupIds
  321    344   
            this.selfServicePortal = x.selfServicePortal
  322    345   
            this.serverCertificateArn = x.serverCertificateArn
  323    346   
            this.sessionTimeoutHours = x.sessionTimeoutHours
  324    347   
            this.splitTunnel = x.splitTunnel
  325    348   
            this.tagSpecifications = x.tagSpecifications
         349  +
            this.trafficIpAddressType = x.trafficIpAddressType
  326    350   
            this.transportProtocol = x.transportProtocol
  327    351   
            this.vpcId = x.vpcId
  328    352   
            this.vpnPort = x.vpnPort
  329    353   
        }
  330    354   
  331    355   
        @PublishedApi
  332    356   
        internal fun build(): aws.sdk.kotlin.services.ec2.model.CreateClientVpnEndpointRequest = CreateClientVpnEndpointRequest(this)
  333    357   
  334    358   
        /**
  335    359   
         * construct an [aws.sdk.kotlin.services.ec2.model.ClientConnectOptions] inside the given [block]

tmp-codegen-diff/services/ec2/generated-src/main/kotlin/aws/sdk/kotlin/services/ec2/model/CreateDefaultSubnetRequest.kt

@@ -1,1 +86,106 @@
    1      1   
// Code generated by smithy-kotlin-codegen. DO NOT EDIT!
    2      2   
    3      3   
package aws.sdk.kotlin.services.ec2.model
    4      4   
    5      5   
import aws.smithy.kotlin.runtime.SdkDsl
    6      6   
    7      7   
public class CreateDefaultSubnetRequest private constructor(builder: Builder) {
    8      8   
    /**
    9      9   
     * The Availability Zone in which to create the default subnet.
          10  +
     *
          11  +
     * Either `AvailabilityZone` or `AvailabilityZoneId` must be specified, but not both.
   10     12   
     */
   11     13   
    public val availabilityZone: kotlin.String? = builder.availabilityZone
          14  +
    /**
          15  +
     * The ID of the Availability Zone.
          16  +
     *
          17  +
     * Either `AvailabilityZone` or `AvailabilityZoneId` must be specified, but not both.
          18  +
     */
          19  +
    public val availabilityZoneId: kotlin.String? = builder.availabilityZoneId
   12     20   
    /**
   13     21   
     * 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`.
   14     22   
     */
   15     23   
    public val dryRun: kotlin.Boolean? = builder.dryRun
   16     24   
    /**
   17     25   
     * Indicates whether to create an IPv6 only subnet. If you already have a default subnet for this Availability Zone, you must delete it before you can create an IPv6 only subnet.
   18     26   
     */
   19     27   
    public val ipv6Native: kotlin.Boolean? = builder.ipv6Native
   20     28   
   21     29   
    public companion object {
   22     30   
        public operator fun invoke(block: Builder.() -> kotlin.Unit): aws.sdk.kotlin.services.ec2.model.CreateDefaultSubnetRequest = Builder().apply(block).build()
   23     31   
    }
   24     32   
   25     33   
    override fun toString(): kotlin.String = buildString {
   26     34   
        append("CreateDefaultSubnetRequest(")
   27     35   
        append("availabilityZone=$availabilityZone,")
          36  +
        append("availabilityZoneId=$availabilityZoneId,")
   28     37   
        append("dryRun=$dryRun,")
   29     38   
        append("ipv6Native=$ipv6Native")
   30     39   
        append(")")
   31     40   
    }
   32     41   
   33     42   
    override fun hashCode(): kotlin.Int {
   34     43   
        var result = availabilityZone?.hashCode() ?: 0
          44  +
        result = 31 * result + (this.availabilityZoneId?.hashCode() ?: 0)
   35     45   
        result = 31 * result + (this.dryRun?.hashCode() ?: 0)
   36     46   
        result = 31 * result + (this.ipv6Native?.hashCode() ?: 0)
   37     47   
        return result
   38     48   
    }
   39     49   
   40     50   
    override fun equals(other: kotlin.Any?): kotlin.Boolean {
   41     51   
        if (this === other) return true
   42     52   
        if (other == null || this::class != other::class) return false
   43     53   
   44     54   
        other as CreateDefaultSubnetRequest
   45     55   
   46     56   
        if (availabilityZone != other.availabilityZone) return false
          57  +
        if (availabilityZoneId != other.availabilityZoneId) return false
   47     58   
        if (dryRun != other.dryRun) return false
   48     59   
        if (ipv6Native != other.ipv6Native) return false
   49     60   
   50     61   
        return true
   51     62   
    }
   52     63   
   53     64   
    public inline fun copy(block: Builder.() -> kotlin.Unit = {}): aws.sdk.kotlin.services.ec2.model.CreateDefaultSubnetRequest = Builder(this).apply(block).build()
   54     65   
   55     66   
    @SdkDsl
   56     67   
    public class Builder {
   57     68   
        /**
   58     69   
         * The Availability Zone in which to create the default subnet.
          70  +
         *
          71  +
         * Either `AvailabilityZone` or `AvailabilityZoneId` must be specified, but not both.
   59     72   
         */
   60     73   
        public var availabilityZone: kotlin.String? = null
          74  +
        /**
          75  +
         * The ID of the Availability Zone.
          76  +
         *
          77  +
         * Either `AvailabilityZone` or `AvailabilityZoneId` must be specified, but not both.
          78  +
         */
          79  +
        public var availabilityZoneId: kotlin.String? = null
   61     80   
        /**
   62     81   
         * 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`.
   63     82   
         */
   64     83   
        public var dryRun: kotlin.Boolean? = null
   65     84   
        /**
   66     85   
         * Indicates whether to create an IPv6 only subnet. If you already have a default subnet for this Availability Zone, you must delete it before you can create an IPv6 only subnet.
   67     86   
         */
   68     87   
        public var ipv6Native: kotlin.Boolean? = null
   69     88   
   70     89   
        @PublishedApi
   71     90   
        internal constructor()
   72     91   
        @PublishedApi
   73     92   
        internal constructor(x: aws.sdk.kotlin.services.ec2.model.CreateDefaultSubnetRequest) : this() {
   74     93   
            this.availabilityZone = x.availabilityZone
          94  +
            this.availabilityZoneId = x.availabilityZoneId
   75     95   
            this.dryRun = x.dryRun
   76     96   
            this.ipv6Native = x.ipv6Native
   77     97   
        }
   78     98   
   79     99   
        @PublishedApi
   80    100   
        internal fun build(): aws.sdk.kotlin.services.ec2.model.CreateDefaultSubnetRequest = CreateDefaultSubnetRequest(this)
   81    101   
   82    102   
        internal fun correctErrors(): Builder {
   83    103   
            return this
   84    104   
        }

tmp-codegen-diff/services/ec2/generated-src/main/kotlin/aws/sdk/kotlin/services/ec2/model/CreateVolumeRequest.kt

@@ -1,1 +338,360 @@
    1      1   
// Code generated by smithy-kotlin-codegen. DO NOT EDIT!
    2      2   
    3      3   
package aws.sdk.kotlin.services.ec2.model
    4      4   
    5      5   
import aws.smithy.kotlin.runtime.SdkDsl
    6      6   
    7      7   
public class CreateVolumeRequest private constructor(builder: Builder) {
    8      8   
    /**
    9      9   
     * The ID of the Availability Zone in which to create the volume. For example, `us-east-1a`.
          10  +
     *
          11  +
     * Either `AvailabilityZone` or `AvailabilityZoneId` must be specified, but not both.
   10     12   
     */
   11     13   
    public val availabilityZone: kotlin.String? = builder.availabilityZone
          14  +
    /**
          15  +
     * The ID of the Availability Zone in which to create the volume. For example, `use1-az1`.
          16  +
     *
          17  +
     * Either `AvailabilityZone` or `AvailabilityZoneId` must be specified, but not both.
          18  +
     */
          19  +
    public val availabilityZoneId: kotlin.String? = builder.availabilityZoneId
   12     20   
    /**
   13     21   
     * Unique, case-sensitive identifier that you provide to ensure the idempotency of the request. For more information, see [Ensure Idempotency](https://docs.aws.amazon.com/ec2/latest/devguide/ec2-api-idempotency.html).
   14     22   
     */
   15     23   
    public val clientToken: kotlin.String? = builder.clientToken
   16     24   
    /**
   17     25   
     * 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`.
   18     26   
     */
   19     27   
    public val dryRun: kotlin.Boolean? = builder.dryRun
   20     28   
    /**
   21     29   
     * Indicates whether the volume should be encrypted. The effect of setting the encryption state to `true` depends on the volume origin (new or from a snapshot), starting encryption state, ownership, and whether encryption by default is enabled. For more information, see [Encryption by default](https://docs.aws.amazon.com/ebs/latest/userguide/work-with-ebs-encr.html#encryption-by-default) in the *Amazon EBS User Guide*.
   22     30   
     *
   23     31   
     * Encrypted Amazon EBS volumes must be attached to instances that support Amazon EBS encryption. For more information, see [Supported instance types](https://docs.aws.amazon.com/ebs/latest/userguide/ebs-encryption-requirements.html#ebs-encryption_supported_instances).
   24     32   
     */
   25     33   
    public val encrypted: kotlin.Boolean? = builder.encrypted
   26     34   
    /**
   27     35   
     * 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.
   28     36   
     *
   29     37   
     * The following are the supported values for each volume type:
   30         -
     * + `gp3`: 3,000 - 16,000 IOPS
          38  +
     * + `gp3`: 3,000 - 80,000 IOPS
   31     39   
     * + `io1`: 100 - 64,000 IOPS
   32     40   
     * + `io2`: 100 - 256,000 IOPS
   33     41   
     *
   34     42   
     * For `io2` volumes, you can achieve up to 256,000 IOPS on [instances built on the Nitro System](https://docs.aws.amazon.com/ec2/latest/instancetypes/ec2-nitro-instances.html). On other instances, you can achieve performance up to 32,000 IOPS.
   35     43   
     *
   36     44   
     * This parameter is required for `io1` and `io2` volumes. The default for `gp3` volumes is 3,000 IOPS. This parameter is not supported for `gp2`, `st1`, `sc1`, or `standard` volumes.
   37     45   
     */
   38     46   
    public val iops: kotlin.Int? = builder.iops
   39     47   
    /**
   40     48   
     * The identifier of the KMS key to use for Amazon EBS encryption. If this parameter is not specified, your KMS key for Amazon EBS is used. If `KmsKeyId` is specified, the encrypted state must be `true`.
   41     49   
     *
   42     50   
     * You can specify the KMS key using any of the following:
   43     51   
     * + Key ID. For example, 1234abcd-12ab-34cd-56ef-1234567890ab.
   44     52   
     * + Key alias. For example, alias/ExampleAlias.
   45     53   
     * + Key ARN. For example, arn:aws:kms:us-east-1:012345678910:key/1234abcd-12ab-34cd-56ef-1234567890ab.
   46     54   
     * + Alias ARN. For example, arn:aws:kms:us-east-1:012345678910:alias/ExampleAlias.
   47     55   
     *
   48     56   
     * Amazon Web Services authenticates the KMS key asynchronously. Therefore, if you specify an ID, alias, or ARN that is not valid, the action can appear to complete, but eventually fails.
   49     57   
     */
   50     58   
    public val kmsKeyId: kotlin.String? = builder.kmsKeyId
   51     59   
    /**
   52     60   
     * Indicates whether to enable Amazon EBS Multi-Attach. If you enable Multi-Attach, you can attach the volume to up to 16 [Instances built on the Nitro System](https://docs.aws.amazon.com/ec2/latest/instancetypes/ec2-nitro-instances.html) in the same Availability Zone. This parameter is supported with `io1` and `io2` volumes only. For more information, see [ Amazon EBS Multi-Attach](https://docs.aws.amazon.com/ebs/latest/userguide/ebs-volumes-multi.html) in the *Amazon EBS User Guide*.
   53     61   
     */
   54     62   
    public val multiAttachEnabled: kotlin.Boolean? = builder.multiAttachEnabled
   55     63   
    /**
   56     64   
     * Reserved for internal use.
   57     65   
     */
   58     66   
    public val operator: aws.sdk.kotlin.services.ec2.model.OperatorRequest? = builder.operator
   59     67   
    /**
   60     68   
     * The Amazon Resource Name (ARN) of the Outpost on which to create the volume.
   61     69   
     *
   62     70   
     * If you intend to use a volume with an instance running on an outpost, then you must create the volume on the same outpost as the instance. You can't use a volume created in an Amazon Web Services Region with an instance on an Amazon Web Services outpost, or the other way around.
   63     71   
     */
   64     72   
    public val outpostArn: kotlin.String? = builder.outpostArn
   65     73   
    /**
   66     74   
     * The size of the volume, in GiBs. You must specify either a snapshot ID or a volume size. If you specify a snapshot, the default is the snapshot size. You can specify a volume size that is equal to or larger than the snapshot size.
   67     75   
     *
   68     76   
     * The following are the supported volumes sizes for each volume type:
   69         -
     * + `gp2` and `gp3`: 1 - 16,384 GiB
          77  +
     * + `gp2`: 1 - 16,384 GiB
          78  +
     * + `gp3`: 1 - 65,536 GiB
   70     79   
     * + `io1`: 4 - 16,384 GiB
   71     80   
     * + `io2`: 4 - 65,536 GiB
   72     81   
     * + `st1` and `sc1`: 125 - 16,384 GiB
   73     82   
     * + `standard`: 1 - 1024 GiB
   74     83   
     */
   75     84   
    public val size: kotlin.Int? = builder.size
   76     85   
    /**
   77     86   
     * The snapshot from which to create the volume. You must specify either a snapshot ID or a volume size.
   78     87   
     */
   79     88   
    public val snapshotId: kotlin.String? = builder.snapshotId
   80     89   
    /**
   81     90   
     * The tags to apply to the volume during creation.
   82     91   
     */
   83     92   
    public val tagSpecifications: List<TagSpecification>? = builder.tagSpecifications
   84     93   
    /**
   85         -
     * The throughput to provision for a volume, with a maximum of 1,000 MiB/s.
          94  +
     * The throughput to provision for a volume, with a maximum of 2,000 MiB/s.
   86     95   
     *
   87     96   
     * This parameter is valid only for `gp3` volumes.
   88     97   
     *
   89         -
     * Valid Range: Minimum value of 125. Maximum value of 1000.
          98  +
     * Valid Range: Minimum value of 125. Maximum value of 2,000.
   90     99   
     */
   91    100   
    public val throughput: kotlin.Int? = builder.throughput
   92    101   
    /**
   93    102   
     * Specifies the Amazon EBS Provisioned Rate for Volume Initialization (volume initialization rate), in MiB/s, at which to download the snapshot blocks from Amazon S3 to the volume. This is also known as *volume initialization*. Specifying a volume initialization rate ensures that the volume is initialized at a predictable and consistent rate after creation.
   94    103   
     *
   95    104   
     * This parameter is supported only for volumes created from snapshots. Omit this parameter if:
   96    105   
     * + You want to create the volume using fast snapshot restore. You must specify a snapshot that is enabled for fast snapshot restore. In this case, the volume is fully initialized at creation.If you specify a snapshot that is enabled for fast snapshot restore and a volume initialization rate, the volume will be initialized at the specified rate instead of fast snapshot restore.
   97    106   
     * + You want to create a volume that is initialized at the default rate.
   98    107   
     *
   99    108   
     * For more information, see [ Initialize Amazon EBS volumes](https://docs.aws.amazon.com/ebs/latest/userguide/initalize-volume.html) in the *Amazon EC2 User Guide*.
  100    109   
     *
  101    110   
     * Valid range: 100 - 300 MiB/s
  102    111   
     */
  103    112   
    public val volumeInitializationRate: kotlin.Int? = builder.volumeInitializationRate
  104    113   
    /**
  105    114   
     * The volume type. This parameter can be one of the following values:
  106    115   
     * + General Purpose SSD: `gp2` | `gp3`
  107    116   
     * + Provisioned IOPS SSD: `io1` | `io2`
  108    117   
     * + Throughput Optimized HDD: `st1`
  109    118   
     * + Cold HDD: `sc1`
  110    119   
     * + Magnetic: `standard`
  111    120   
     *
  112    121   
     * Throughput Optimized HDD (`st1`) and Cold HDD (`sc1`) volumes can't be used as boot volumes.
  113    122   
     *
  114    123   
     * For more information, see [Amazon EBS volume types](https://docs.aws.amazon.com/ebs/latest/userguide/ebs-volume-types.html) in the *Amazon EBS User Guide*.
  115    124   
     *
  116    125   
     * Default: `gp2`
  117    126   
     */
  118    127   
    public val volumeType: aws.sdk.kotlin.services.ec2.model.VolumeType? = builder.volumeType
  119    128   
  120    129   
    public companion object {
  121    130   
        public operator fun invoke(block: Builder.() -> kotlin.Unit): aws.sdk.kotlin.services.ec2.model.CreateVolumeRequest = Builder().apply(block).build()
  122    131   
    }
  123    132   
  124    133   
    override fun toString(): kotlin.String = buildString {
  125    134   
        append("CreateVolumeRequest(")
  126    135   
        append("availabilityZone=$availabilityZone,")
         136  +
        append("availabilityZoneId=$availabilityZoneId,")
  127    137   
        append("clientToken=$clientToken,")
  128    138   
        append("dryRun=$dryRun,")
  129    139   
        append("encrypted=$encrypted,")
  130    140   
        append("iops=$iops,")
  131    141   
        append("kmsKeyId=$kmsKeyId,")
  132    142   
        append("multiAttachEnabled=$multiAttachEnabled,")
  133    143   
        append("operator=$operator,")
  134    144   
        append("outpostArn=$outpostArn,")
  135    145   
        append("size=$size,")
  136    146   
        append("snapshotId=$snapshotId,")
  137    147   
        append("tagSpecifications=$tagSpecifications,")
  138    148   
        append("throughput=$throughput,")
  139    149   
        append("volumeInitializationRate=$volumeInitializationRate,")
  140    150   
        append("volumeType=$volumeType")
  141    151   
        append(")")
  142    152   
    }
  143    153   
  144    154   
    override fun hashCode(): kotlin.Int {
  145    155   
        var result = availabilityZone?.hashCode() ?: 0
         156  +
        result = 31 * result + (this.availabilityZoneId?.hashCode() ?: 0)
  146    157   
        result = 31 * result + (this.clientToken?.hashCode() ?: 0)
  147    158   
        result = 31 * result + (this.dryRun?.hashCode() ?: 0)
  148    159   
        result = 31 * result + (this.encrypted?.hashCode() ?: 0)
  149    160   
        result = 31 * result + (this.iops ?: 0)
  150    161   
        result = 31 * result + (this.kmsKeyId?.hashCode() ?: 0)
  151    162   
        result = 31 * result + (this.multiAttachEnabled?.hashCode() ?: 0)
  152    163   
        result = 31 * result + (this.operator?.hashCode() ?: 0)
  153    164   
        result = 31 * result + (this.outpostArn?.hashCode() ?: 0)
  154    165   
        result = 31 * result + (this.size ?: 0)
  155    166   
        result = 31 * result + (this.snapshotId?.hashCode() ?: 0)
  156    167   
        result = 31 * result + (this.tagSpecifications?.hashCode() ?: 0)
  157    168   
        result = 31 * result + (this.throughput ?: 0)
  158    169   
        result = 31 * result + (this.volumeInitializationRate ?: 0)
  159    170   
        result = 31 * result + (this.volumeType?.hashCode() ?: 0)
  160    171   
        return result
  161    172   
    }
  162    173   
  163    174   
    override fun equals(other: kotlin.Any?): kotlin.Boolean {
  164    175   
        if (this === other) return true
  165    176   
        if (other == null || this::class != other::class) return false
  166    177   
  167    178   
        other as CreateVolumeRequest
  168    179   
  169    180   
        if (availabilityZone != other.availabilityZone) return false
         181  +
        if (availabilityZoneId != other.availabilityZoneId) return false
  170    182   
        if (clientToken != other.clientToken) return false
  171    183   
        if (dryRun != other.dryRun) return false
  172    184   
        if (encrypted != other.encrypted) return false
  173    185   
        if (iops != other.iops) return false
  174    186   
        if (kmsKeyId != other.kmsKeyId) return false
  175    187   
        if (multiAttachEnabled != other.multiAttachEnabled) return false
  176    188   
        if (operator != other.operator) return false
  177    189   
        if (outpostArn != other.outpostArn) return false
  178    190   
        if (size != other.size) return false
  179    191   
        if (snapshotId != other.snapshotId) return false
  180    192   
        if (tagSpecifications != other.tagSpecifications) return false
  181    193   
        if (throughput != other.throughput) return false
  182    194   
        if (volumeInitializationRate != other.volumeInitializationRate) return false
  183    195   
        if (volumeType != other.volumeType) return false
  184    196   
  185    197   
        return true
  186    198   
    }
  187    199   
  188    200   
    public inline fun copy(block: Builder.() -> kotlin.Unit = {}): aws.sdk.kotlin.services.ec2.model.CreateVolumeRequest = Builder(this).apply(block).build()
  189    201   
  190    202   
    @SdkDsl
  191    203   
    public class Builder {
  192    204   
        /**
  193    205   
         * The ID of the Availability Zone in which to create the volume. For example, `us-east-1a`.
         206  +
         *
         207  +
         * Either `AvailabilityZone` or `AvailabilityZoneId` must be specified, but not both.
  194    208   
         */
  195    209   
        public var availabilityZone: kotlin.String? = null
         210  +
        /**
         211  +
         * The ID of the Availability Zone in which to create the volume. For example, `use1-az1`.
         212  +
         *
         213  +
         * Either `AvailabilityZone` or `AvailabilityZoneId` must be specified, but not both.
         214  +
         */
         215  +
        public var availabilityZoneId: kotlin.String? = null
  196    216   
        /**
  197    217   
         * Unique, case-sensitive identifier that you provide to ensure the idempotency of the request. For more information, see [Ensure Idempotency](https://docs.aws.amazon.com/ec2/latest/devguide/ec2-api-idempotency.html).
  198    218   
         */
  199    219   
        public var clientToken: kotlin.String? = null
  200    220   
        /**
  201    221   
         * 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`.
  202    222   
         */
  203    223   
        public var dryRun: kotlin.Boolean? = null
  204    224   
        /**
  205    225   
         * Indicates whether the volume should be encrypted. The effect of setting the encryption state to `true` depends on the volume origin (new or from a snapshot), starting encryption state, ownership, and whether encryption by default is enabled. For more information, see [Encryption by default](https://docs.aws.amazon.com/ebs/latest/userguide/work-with-ebs-encr.html#encryption-by-default) in the *Amazon EBS User Guide*.
  206    226   
         *
  207    227   
         * Encrypted Amazon EBS volumes must be attached to instances that support Amazon EBS encryption. For more information, see [Supported instance types](https://docs.aws.amazon.com/ebs/latest/userguide/ebs-encryption-requirements.html#ebs-encryption_supported_instances).
  208    228   
         */
  209    229   
        public var encrypted: kotlin.Boolean? = null
  210    230   
        /**
  211    231   
         * 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.
  212    232   
         *
  213    233   
         * The following are the supported values for each volume type:
  214         -
         * + `gp3`: 3,000 - 16,000 IOPS
         234  +
         * + `gp3`: 3,000 - 80,000 IOPS
  215    235   
         * + `io1`: 100 - 64,000 IOPS
  216    236   
         * + `io2`: 100 - 256,000 IOPS
  217    237   
         *
  218    238   
         * For `io2` volumes, you can achieve up to 256,000 IOPS on [instances built on the Nitro System](https://docs.aws.amazon.com/ec2/latest/instancetypes/ec2-nitro-instances.html). On other instances, you can achieve performance up to 32,000 IOPS.
  219    239   
         *
  220    240   
         * This parameter is required for `io1` and `io2` volumes. The default for `gp3` volumes is 3,000 IOPS. This parameter is not supported for `gp2`, `st1`, `sc1`, or `standard` volumes.
  221    241   
         */
  222    242   
        public var iops: kotlin.Int? = null
  223    243   
        /**
  224    244   
         * The identifier of the KMS key to use for Amazon EBS encryption. If this parameter is not specified, your KMS key for Amazon EBS is used. If `KmsKeyId` is specified, the encrypted state must be `true`.
  225    245   
         *
  226    246   
         * You can specify the KMS key using any of the following:
  227    247   
         * + Key ID. For example, 1234abcd-12ab-34cd-56ef-1234567890ab.
  228    248   
         * + Key alias. For example, alias/ExampleAlias.
  229    249   
         * + Key ARN. For example, arn:aws:kms:us-east-1:012345678910:key/1234abcd-12ab-34cd-56ef-1234567890ab.
  230    250   
         * + Alias ARN. For example, arn:aws:kms:us-east-1:012345678910:alias/ExampleAlias.
  231    251   
         *
  232    252   
         * Amazon Web Services authenticates the KMS key asynchronously. Therefore, if you specify an ID, alias, or ARN that is not valid, the action can appear to complete, but eventually fails.
  233    253   
         */
  234    254   
        public var kmsKeyId: kotlin.String? = null
  235    255   
        /**
  236    256   
         * Indicates whether to enable Amazon EBS Multi-Attach. If you enable Multi-Attach, you can attach the volume to up to 16 [Instances built on the Nitro System](https://docs.aws.amazon.com/ec2/latest/instancetypes/ec2-nitro-instances.html) in the same Availability Zone. This parameter is supported with `io1` and `io2` volumes only. For more information, see [ Amazon EBS Multi-Attach](https://docs.aws.amazon.com/ebs/latest/userguide/ebs-volumes-multi.html) in the *Amazon EBS User Guide*.
  237    257   
         */
  238    258   
        public var multiAttachEnabled: kotlin.Boolean? = null
  239    259   
        /**
  240    260   
         * Reserved for internal use.
  241    261   
         */
  242    262   
        public var operator: aws.sdk.kotlin.services.ec2.model.OperatorRequest? = null
  243    263   
        /**
  244    264   
         * The Amazon Resource Name (ARN) of the Outpost on which to create the volume.
  245    265   
         *
  246    266   
         * If you intend to use a volume with an instance running on an outpost, then you must create the volume on the same outpost as the instance. You can't use a volume created in an Amazon Web Services Region with an instance on an Amazon Web Services outpost, or the other way around.
  247    267   
         */
  248    268   
        public var outpostArn: kotlin.String? = null
  249    269   
        /**
  250    270   
         * The size of the volume, in GiBs. You must specify either a snapshot ID or a volume size. If you specify a snapshot, the default is the snapshot size. You can specify a volume size that is equal to or larger than the snapshot size.
  251    271   
         *
  252    272   
         * The following are the supported volumes sizes for each volume type:
  253         -
         * + `gp2` and `gp3`: 1 - 16,384 GiB
         273  +
         * + `gp2`: 1 - 16,384 GiB
         274  +
         * + `gp3`: 1 - 65,536 GiB
  254    275   
         * + `io1`: 4 - 16,384 GiB
  255    276   
         * + `io2`: 4 - 65,536 GiB
  256    277   
         * + `st1` and `sc1`: 125 - 16,384 GiB
  257    278   
         * + `standard`: 1 - 1024 GiB
  258    279   
         */
  259    280   
        public var size: kotlin.Int? = null
  260    281   
        /**
  261    282   
         * The snapshot from which to create the volume. You must specify either a snapshot ID or a volume size.
  262    283   
         */
  263    284   
        public var snapshotId: kotlin.String? = null
  264    285   
        /**
  265    286   
         * The tags to apply to the volume during creation.
  266    287   
         */
  267    288   
        public var tagSpecifications: List<TagSpecification>? = null
  268    289   
        /**
  269         -
         * The throughput to provision for a volume, with a maximum of 1,000 MiB/s.
         290  +
         * The throughput to provision for a volume, with a maximum of 2,000 MiB/s.
  270    291   
         *
  271    292   
         * This parameter is valid only for `gp3` volumes.
  272    293   
         *
  273         -
         * Valid Range: Minimum value of 125. Maximum value of 1000.
         294  +
         * Valid Range: Minimum value of 125. Maximum value of 2,000.
  274    295   
         */
  275    296   
        public var throughput: kotlin.Int? = null
  276    297   
        /**
  277    298   
         * Specifies the Amazon EBS Provisioned Rate for Volume Initialization (volume initialization rate), in MiB/s, at which to download the snapshot blocks from Amazon S3 to the volume. This is also known as *volume initialization*. Specifying a volume initialization rate ensures that the volume is initialized at a predictable and consistent rate after creation.
  278    299   
         *
  279    300   
         * This parameter is supported only for volumes created from snapshots. Omit this parameter if:
  280    301   
         * + You want to create the volume using fast snapshot restore. You must specify a snapshot that is enabled for fast snapshot restore. In this case, the volume is fully initialized at creation.If you specify a snapshot that is enabled for fast snapshot restore and a volume initialization rate, the volume will be initialized at the specified rate instead of fast snapshot restore.
  281    302   
         * + You want to create a volume that is initialized at the default rate.
  282    303   
         *
  283    304   
         * For more information, see [ Initialize Amazon EBS volumes](https://docs.aws.amazon.com/ebs/latest/userguide/initalize-volume.html) in the *Amazon EC2 User Guide*.
  284    305   
         *
  285    306   
         * Valid range: 100 - 300 MiB/s
  286    307   
         */
  287    308   
        public var volumeInitializationRate: kotlin.Int? = null
  288    309   
        /**
  289    310   
         * The volume type. This parameter can be one of the following values:
  290    311   
         * + General Purpose SSD: `gp2` | `gp3`
  291    312   
         * + Provisioned IOPS SSD: `io1` | `io2`
  292    313   
         * + Throughput Optimized HDD: `st1`
  293    314   
         * + Cold HDD: `sc1`
  294    315   
         * + Magnetic: `standard`
  295    316   
         *
  296    317   
         * Throughput Optimized HDD (`st1`) and Cold HDD (`sc1`) volumes can't be used as boot volumes.
  297    318   
         *
  298    319   
         * For more information, see [Amazon EBS volume types](https://docs.aws.amazon.com/ebs/latest/userguide/ebs-volume-types.html) in the *Amazon EBS User Guide*.
  299    320   
         *
  300    321   
         * Default: `gp2`
  301    322   
         */
  302    323   
        public var volumeType: aws.sdk.kotlin.services.ec2.model.VolumeType? = null
  303    324   
  304    325   
        @PublishedApi
  305    326   
        internal constructor()
  306    327   
        @PublishedApi
  307    328   
        internal constructor(x: aws.sdk.kotlin.services.ec2.model.CreateVolumeRequest) : this() {
  308    329   
            this.availabilityZone = x.availabilityZone
         330  +
            this.availabilityZoneId = x.availabilityZoneId
  309    331   
            this.clientToken = x.clientToken
  310    332   
            this.dryRun = x.dryRun
  311    333   
            this.encrypted = x.encrypted
  312    334   
            this.iops = x.iops
  313    335   
            this.kmsKeyId = x.kmsKeyId
  314    336   
            this.multiAttachEnabled = x.multiAttachEnabled
  315    337   
            this.operator = x.operator
  316    338   
            this.outpostArn = x.outpostArn
  317    339   
            this.size = x.size
  318    340   
            this.snapshotId = x.snapshotId

tmp-codegen-diff/services/ec2/generated-src/main/kotlin/aws/sdk/kotlin/services/ec2/model/CreateVolumeResponse.kt

@@ -1,1 +51,55 @@
   12     12   
    /**
   13     13   
     * This parameter is not returned by CreateVolume.
   14     14   
     *
   15     15   
     * Information about the volume attachments.
   16     16   
     */
   17     17   
    public val attachments: List<VolumeAttachment>? = builder.attachments
   18     18   
    /**
   19     19   
     * The Availability Zone for the volume.
   20     20   
     */
   21     21   
    public val availabilityZone: kotlin.String? = builder.availabilityZone
          22  +
    /**
          23  +
     * The ID of the Availability Zone for the volume.
          24  +
     */
          25  +
    public val availabilityZoneId: kotlin.String? = builder.availabilityZoneId
   22     26   
    /**
   23     27   
     * The time stamp when volume creation was initiated.
   24     28   
     */
   25     29   
    public val createTime: aws.smithy.kotlin.runtime.time.Instant? = builder.createTime
   26     30   
    /**
   27     31   
     * Indicates whether the volume is encrypted.
   28     32   
     */
   29     33   
    public val encrypted: kotlin.Boolean? = builder.encrypted
   30     34   
    /**
   31     35   
     * This parameter is not returned by CreateVolume.
@@ -73,77 +218,229 @@
   93     97   
    public val volumeType: aws.sdk.kotlin.services.ec2.model.VolumeType? = builder.volumeType
   94     98   
   95     99   
    public companion object {
   96    100   
        public operator fun invoke(block: Builder.() -> kotlin.Unit): aws.sdk.kotlin.services.ec2.model.CreateVolumeResponse = Builder().apply(block).build()
   97    101   
    }
   98    102   
   99    103   
    override fun toString(): kotlin.String = buildString {
  100    104   
        append("CreateVolumeResponse(")
  101    105   
        append("attachments=$attachments,")
  102    106   
        append("availabilityZone=$availabilityZone,")
         107  +
        append("availabilityZoneId=$availabilityZoneId,")
  103    108   
        append("createTime=$createTime,")
  104    109   
        append("encrypted=$encrypted,")
  105    110   
        append("fastRestored=$fastRestored,")
  106    111   
        append("iops=$iops,")
  107    112   
        append("kmsKeyId=$kmsKeyId,")
  108    113   
        append("multiAttachEnabled=$multiAttachEnabled,")
  109    114   
        append("operator=$operator,")
  110    115   
        append("outpostArn=$outpostArn,")
  111    116   
        append("size=$size,")
  112    117   
        append("snapshotId=$snapshotId,")
  113    118   
        append("sseType=$sseType,")
  114    119   
        append("state=$state,")
  115    120   
        append("tags=$tags,")
  116    121   
        append("throughput=$throughput,")
  117    122   
        append("volumeId=$volumeId,")
  118    123   
        append("volumeInitializationRate=$volumeInitializationRate,")
  119    124   
        append("volumeType=$volumeType")
  120    125   
        append(")")
  121    126   
    }
  122    127   
  123    128   
    override fun hashCode(): kotlin.Int {
  124    129   
        var result = attachments?.hashCode() ?: 0
  125    130   
        result = 31 * result + (this.availabilityZone?.hashCode() ?: 0)
         131  +
        result = 31 * result + (this.availabilityZoneId?.hashCode() ?: 0)
  126    132   
        result = 31 * result + (this.createTime?.hashCode() ?: 0)
  127    133   
        result = 31 * result + (this.encrypted?.hashCode() ?: 0)
  128    134   
        result = 31 * result + (this.fastRestored?.hashCode() ?: 0)
  129    135   
        result = 31 * result + (this.iops ?: 0)
  130    136   
        result = 31 * result + (this.kmsKeyId?.hashCode() ?: 0)
  131    137   
        result = 31 * result + (this.multiAttachEnabled?.hashCode() ?: 0)
  132    138   
        result = 31 * result + (this.operator?.hashCode() ?: 0)
  133    139   
        result = 31 * result + (this.outpostArn?.hashCode() ?: 0)
  134    140   
        result = 31 * result + (this.size ?: 0)
  135    141   
        result = 31 * result + (this.snapshotId?.hashCode() ?: 0)
  136    142   
        result = 31 * result + (this.sseType?.hashCode() ?: 0)
  137    143   
        result = 31 * result + (this.state?.hashCode() ?: 0)
  138    144   
        result = 31 * result + (this.tags?.hashCode() ?: 0)
  139    145   
        result = 31 * result + (this.throughput ?: 0)
  140    146   
        result = 31 * result + (this.volumeId?.hashCode() ?: 0)
  141    147   
        result = 31 * result + (this.volumeInitializationRate ?: 0)
  142    148   
        result = 31 * result + (this.volumeType?.hashCode() ?: 0)
  143    149   
        return result
  144    150   
    }
  145    151   
  146    152   
    override fun equals(other: kotlin.Any?): kotlin.Boolean {
  147    153   
        if (this === other) return true
  148    154   
        if (other == null || this::class != other::class) return false
  149    155   
  150    156   
        other as CreateVolumeResponse
  151    157   
  152    158   
        if (attachments != other.attachments) return false
  153    159   
        if (availabilityZone != other.availabilityZone) return false
         160  +
        if (availabilityZoneId != other.availabilityZoneId) return false
  154    161   
        if (createTime != other.createTime) return false
  155    162   
        if (encrypted != other.encrypted) return false
  156    163   
        if (fastRestored != other.fastRestored) return false
  157    164   
        if (iops != other.iops) return false
  158    165   
        if (kmsKeyId != other.kmsKeyId) return false
  159    166   
        if (multiAttachEnabled != other.multiAttachEnabled) return false
  160    167   
        if (operator != other.operator) return false
  161    168   
        if (outpostArn != other.outpostArn) return false
  162    169   
        if (size != other.size) return false
  163    170   
        if (snapshotId != other.snapshotId) return false
  164    171   
        if (sseType != other.sseType) return false
  165    172   
        if (state != other.state) return false
  166    173   
        if (tags != other.tags) return false
  167    174   
        if (throughput != other.throughput) return false
  168    175   
        if (volumeId != other.volumeId) return false
  169    176   
        if (volumeInitializationRate != other.volumeInitializationRate) return false
  170    177   
        if (volumeType != other.volumeType) return false
  171    178   
  172    179   
        return true
  173    180   
    }
  174    181   
  175    182   
    public inline fun copy(block: Builder.() -> kotlin.Unit = {}): aws.sdk.kotlin.services.ec2.model.CreateVolumeResponse = Builder(this).apply(block).build()
  176    183   
  177    184   
    @SdkDsl
  178    185   
    public class Builder {
  179    186   
        /**
  180    187   
         * This parameter is not returned by CreateVolume.
  181    188   
         *
  182    189   
         * Information about the volume attachments.
  183    190   
         */
  184    191   
        public var attachments: List<VolumeAttachment>? = null
  185    192   
        /**
  186    193   
         * The Availability Zone for the volume.
  187    194   
         */
  188    195   
        public var availabilityZone: kotlin.String? = null
         196  +
        /**
         197  +
         * The ID of the Availability Zone for the volume.
         198  +
         */
         199  +
        public var availabilityZoneId: kotlin.String? = null
  189    200   
        /**
  190    201   
         * The time stamp when volume creation was initiated.
  191    202   
         */
  192    203   
        public var createTime: aws.smithy.kotlin.runtime.time.Instant? = null
  193    204   
        /**
  194    205   
         * Indicates whether the volume is encrypted.
  195    206   
         */
  196    207   
        public var encrypted: kotlin.Boolean? = null
  197    208   
        /**
  198    209   
         * This parameter is not returned by CreateVolume.
@@ -238,249 +297,309 @@
  258    269   
         * The volume type.
  259    270   
         */
  260    271   
        public var volumeType: aws.sdk.kotlin.services.ec2.model.VolumeType? = null
  261    272   
  262    273   
        @PublishedApi
  263    274   
        internal constructor()
  264    275   
        @PublishedApi
  265    276   
        internal constructor(x: aws.sdk.kotlin.services.ec2.model.CreateVolumeResponse) : this() {
  266    277   
            this.attachments = x.attachments
  267    278   
            this.availabilityZone = x.availabilityZone
         279  +
            this.availabilityZoneId = x.availabilityZoneId
  268    280   
            this.createTime = x.createTime
  269    281   
            this.encrypted = x.encrypted
  270    282   
            this.fastRestored = x.fastRestored
  271    283   
            this.iops = x.iops
  272    284   
            this.kmsKeyId = x.kmsKeyId
  273    285   
            this.multiAttachEnabled = x.multiAttachEnabled
  274    286   
            this.operator = x.operator
  275    287   
            this.outpostArn = x.outpostArn
  276    288   
            this.size = x.size
  277    289   
            this.snapshotId = x.snapshotId

tmp-codegen-diff/services/ec2/generated-src/main/kotlin/aws/sdk/kotlin/services/ec2/model/DescribeInstanceStatusRequest.kt

@@ -1,1 +44,45 @@
    5      5   
import aws.smithy.kotlin.runtime.SdkDsl
    6      6   
    7      7   
public class DescribeInstanceStatusRequest private constructor(builder: Builder) {
    8      8   
    /**
    9      9   
     * Checks whether you have the required permissions for the operation, 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`.
   10     10   
     */
   11     11   
    public val dryRun: kotlin.Boolean? = builder.dryRun
   12     12   
    /**
   13     13   
     * The filters.
   14     14   
     * + `availability-zone` - The Availability Zone of the instance.
          15  +
     * + `availability-zone-id` - The ID of the Availability Zone of the instance.
   15     16   
     * + `event.code` - The code for the scheduled event (`instance-reboot` | `system-reboot` | `system-maintenance` | `instance-retirement` | `instance-stop`).
   16     17   
     * + `event.description` - A description of the event.
   17     18   
     * + `event.instance-event-id` - The ID of the event whose date and time you are modifying.
   18     19   
     * + `event.not-after` - The latest end time for the scheduled event (for example, `2014-09-15T17:15:20.000Z`).
   19     20   
     * + `event.not-before` - The earliest start time for the scheduled event (for example, `2014-09-15T17:15:20.000Z`).
   20     21   
     * + `event.not-before-deadline` - The deadline for starting the event (for example, `2014-09-15T17:15:20.000Z`).
   21     22   
     * + `instance-state-code` - The code for the instance state, as a 16-bit unsigned integer. The high byte is used for internal purposes and should be ignored. The low byte is set based on the state represented. The valid values are 0 (pending), 16 (running), 32 (shutting-down), 48 (terminated), 64 (stopping), and 80 (stopped).
   22     23   
     * + `instance-state-name` - The state of the instance (`pending` | `running` | `shutting-down` | `terminated` | `stopping` | `stopped`).
   23     24   
     * + `instance-status.reachability` - Filters on instance status where the name is `reachability` (`passed` | `failed` | `initializing` | `insufficient-data`).
   24     25   
     * + `instance-status.status` - The status of the instance (`ok` | `impaired` | `initializing` | `insufficient-data` | `not-applicable`).
@@ -79,80 +138,140 @@
   99    100   
  100    101   
    @SdkDsl
  101    102   
    public class Builder {
  102    103   
        /**
  103    104   
         * Checks whether you have the required permissions for the operation, 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`.
  104    105   
         */
  105    106   
        public var dryRun: kotlin.Boolean? = null
  106    107   
        /**
  107    108   
         * The filters.
  108    109   
         * + `availability-zone` - The Availability Zone of the instance.
         110  +
         * + `availability-zone-id` - The ID of the Availability Zone of the instance.
  109    111   
         * + `event.code` - The code for the scheduled event (`instance-reboot` | `system-reboot` | `system-maintenance` | `instance-retirement` | `instance-stop`).
  110    112   
         * + `event.description` - A description of the event.
  111    113   
         * + `event.instance-event-id` - The ID of the event whose date and time you are modifying.
  112    114   
         * + `event.not-after` - The latest end time for the scheduled event (for example, `2014-09-15T17:15:20.000Z`).
  113    115   
         * + `event.not-before` - The earliest start time for the scheduled event (for example, `2014-09-15T17:15:20.000Z`).
  114    116   
         * + `event.not-before-deadline` - The deadline for starting the event (for example, `2014-09-15T17:15:20.000Z`).
  115    117   
         * + `instance-state-code` - The code for the instance state, as a 16-bit unsigned integer. The high byte is used for internal purposes and should be ignored. The low byte is set based on the state represented. The valid values are 0 (pending), 16 (running), 32 (shutting-down), 48 (terminated), 64 (stopping), and 80 (stopped).
  116    118   
         * + `instance-state-name` - The state of the instance (`pending` | `running` | `shutting-down` | `terminated` | `stopping` | `stopped`).
  117    119   
         * + `instance-status.reachability` - Filters on instance status where the name is `reachability` (`passed` | `failed` | `initializing` | `insufficient-data`).
  118    120   
         * + `instance-status.status` - The status of the instance (`ok` | `impaired` | `initializing` | `insufficient-data` | `not-applicable`).

tmp-codegen-diff/services/ec2/generated-src/main/kotlin/aws/sdk/kotlin/services/ec2/model/DescribeInstanceTypesRequest.kt

@@ -1,1 +48,50 @@
    9      9   
     * 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`.
   10     10   
     */
   11     11   
    public val dryRun: kotlin.Boolean? = builder.dryRun
   12     12   
    /**
   13     13   
     * One or more filters. Filter names and values are case-sensitive.
   14     14   
     * + `auto-recovery-supported` - Indicates whether Amazon CloudWatch action based recovery is supported (`true` | `false`).
   15     15   
     * + `bare-metal` - Indicates whether it is a bare metal instance type (`true` | `false`).
   16     16   
     * + `burstable-performance-supported` - Indicates whether the instance type is a burstable performance T instance type (`true` | `false`).
   17     17   
     * + `current-generation` - Indicates whether this instance type is the latest generation instance type of an instance family (`true` | `false`).
   18     18   
     * + `dedicated-hosts-supported` - Indicates whether the instance type supports Dedicated Hosts. (`true` | `false`)
          19  +
     * + `ebs-info.attachment-limit-type` - The type of Amazon EBS volume attachment limit (`shared` | `dedicated`).
          20  +
     * + `ebs-info.maximum-ebs-attachments` - The maximum number of Amazon EBS volumes that can be attached to the instance type.
   19     21   
     * + `ebs-info.ebs-optimized-info.baseline-bandwidth-in-mbps` - The baseline bandwidth performance for an EBS-optimized instance type, in Mbps.
   20     22   
     * + `ebs-info.ebs-optimized-info.baseline-iops` - The baseline input/output storage operations per second for an EBS-optimized instance type.
   21     23   
     * + `ebs-info.ebs-optimized-info.baseline-throughput-in-mbps` - The baseline throughput performance for an EBS-optimized instance type, in MB/s.
   22     24   
     * + `ebs-info.ebs-optimized-info.maximum-bandwidth-in-mbps` - The maximum bandwidth performance for an EBS-optimized instance type, in Mbps.
   23     25   
     * + `ebs-info.ebs-optimized-info.maximum-iops` - The maximum input/output storage operations per second for an EBS-optimized instance type.
   24     26   
     * + `ebs-info.ebs-optimized-info.maximum-throughput-in-mbps` - The maximum throughput performance for an EBS-optimized instance type, in MB/s.
   25     27   
     * + `ebs-info.ebs-optimized-support` - Indicates whether the instance type is EBS-optimized (`supported` | `unsupported` | `default`).
   26     28   
     * + `ebs-info.encryption-support` - Indicates whether EBS encryption is supported (`supported` | `unsupported`).
   27     29   
     * + `ebs-info.nvme-support` - Indicates whether non-volatile memory express (NVMe) is supported for EBS volumes (`required` | `supported` | `unsupported`).
   28     30   
     * + `free-tier-eligible` - A Boolean that indicates whether this instance type can be used under the Amazon Web Services Free Tier (`true` | `false`).
@@ -106,108 +165,169 @@
  126    128   
         * 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`.
  127    129   
         */
  128    130   
        public var dryRun: kotlin.Boolean? = null
  129    131   
        /**
  130    132   
         * One or more filters. Filter names and values are case-sensitive.
  131    133   
         * + `auto-recovery-supported` - Indicates whether Amazon CloudWatch action based recovery is supported (`true` | `false`).
  132    134   
         * + `bare-metal` - Indicates whether it is a bare metal instance type (`true` | `false`).
  133    135   
         * + `burstable-performance-supported` - Indicates whether the instance type is a burstable performance T instance type (`true` | `false`).
  134    136   
         * + `current-generation` - Indicates whether this instance type is the latest generation instance type of an instance family (`true` | `false`).
  135    137   
         * + `dedicated-hosts-supported` - Indicates whether the instance type supports Dedicated Hosts. (`true` | `false`)
         138  +
         * + `ebs-info.attachment-limit-type` - The type of Amazon EBS volume attachment limit (`shared` | `dedicated`).
         139  +
         * + `ebs-info.maximum-ebs-attachments` - The maximum number of Amazon EBS volumes that can be attached to the instance type.
  136    140   
         * + `ebs-info.ebs-optimized-info.baseline-bandwidth-in-mbps` - The baseline bandwidth performance for an EBS-optimized instance type, in Mbps.
  137    141   
         * + `ebs-info.ebs-optimized-info.baseline-iops` - The baseline input/output storage operations per second for an EBS-optimized instance type.
  138    142   
         * + `ebs-info.ebs-optimized-info.baseline-throughput-in-mbps` - The baseline throughput performance for an EBS-optimized instance type, in MB/s.
  139    143   
         * + `ebs-info.ebs-optimized-info.maximum-bandwidth-in-mbps` - The maximum bandwidth performance for an EBS-optimized instance type, in Mbps.
  140    144   
         * + `ebs-info.ebs-optimized-info.maximum-iops` - The maximum input/output storage operations per second for an EBS-optimized instance type.
  141    145   
         * + `ebs-info.ebs-optimized-info.maximum-throughput-in-mbps` - The maximum throughput performance for an EBS-optimized instance type, in MB/s.
  142    146   
         * + `ebs-info.ebs-optimized-support` - Indicates whether the instance type is EBS-optimized (`supported` | `unsupported` | `default`).
  143    147   
         * + `ebs-info.encryption-support` - Indicates whether EBS encryption is supported (`supported` | `unsupported`).
  144    148   
         * + `ebs-info.nvme-support` - Indicates whether non-volatile memory express (NVMe) is supported for EBS volumes (`required` | `supported` | `unsupported`).
  145    149   
         * + `free-tier-eligible` - A Boolean that indicates whether this instance type can be used under the Amazon Web Services Free Tier (`true` | `false`).

tmp-codegen-diff/services/ec2/generated-src/main/kotlin/aws/sdk/kotlin/services/ec2/model/DescribeInstancesRequest.kt

@@ -1,1 +46,47 @@
    7      7   
public class DescribeInstancesRequest private constructor(builder: Builder) {
    8      8   
    /**
    9      9   
     * Checks whether you have the required permissions for the operation, 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`.
   10     10   
     */
   11     11   
    public val dryRun: kotlin.Boolean? = builder.dryRun
   12     12   
    /**
   13     13   
     * The filters.
   14     14   
     * + `affinity` - The affinity setting for an instance running on a Dedicated Host (`default` | `host`).
   15     15   
     * + `architecture` - The instance architecture (`i386` | `x86_64` | `arm64`).
   16     16   
     * + `availability-zone` - The Availability Zone of the instance.
          17  +
     * + `availability-zone-id` - The ID of the Availability Zone of the instance.
   17     18   
     * + `block-device-mapping.attach-time` - The attach time for an EBS volume mapped to the instance, for example, `2022-09-15T17:15:20.000Z`.
   18     19   
     * + `block-device-mapping.delete-on-termination` - A Boolean that indicates whether the EBS volume is deleted on instance termination.
   19     20   
     * + `block-device-mapping.device-name` - The device name specified in the block device mapping (for example, `/dev/sdh` or `xvdh`).
   20     21   
     * + `block-device-mapping.status` - The status for the EBS volume (`attaching` | `attached` | `detaching` | `detached`).
   21     22   
     * + `block-device-mapping.volume-id` - The volume ID of the EBS volume.
   22     23   
     * + `boot-mode` - The boot mode that was specified by the AMI (`legacy-bios` | `uefi` | `uefi-preferred`).
   23     24   
     * + `capacity-reservation-id` - The ID of the Capacity Reservation into which the instance was launched.
   24     25   
     * + `capacity-reservation-specification.capacity-reservation-preference` - The instance's Capacity Reservation preference (`open` | `none`).
   25     26   
     * + `capacity-reservation-specification.capacity-reservation-target.capacity-reservation-id` - The ID of the targeted Capacity Reservation.
   26     27   
     * + `capacity-reservation-specification.capacity-reservation-target.capacity-reservation-resource-group-arn` - The ARN of the targeted Capacity Reservation group.
@@ -92,93 +152,153 @@
  112    113   
     * + `network-interface.tag-value` - The value of a tag assigned to the network interface.
  113    114   
     * + `network-interface.vpc-id` - The ID of the VPC for the network interface.
  114    115   
     * + `network-performance-options.bandwidth-weighting` - Where the performance boost is applied, if applicable. Valid values: `default`, `vpc-1`, `ebs-1`.
  115    116   
     * + `operator.managed` - A Boolean that indicates whether this is a managed instance.
  116    117   
     * + `operator.principal` - The principal that manages the instance. Only valid for managed instances, where `managed` is `true`.
  117    118   
     * + `outpost-arn` - The Amazon Resource Name (ARN) of the Outpost.
  118    119   
     * + `owner-id` - The Amazon Web Services account ID of the instance owner.
  119    120   
     * + `placement-group-name` - The name of the placement group for the instance.
  120    121   
     * + `placement-partition-number` - The partition in which the instance is located.
  121    122   
     * + `platform` - The platform. To list only Windows instances, use `windows`.
  122         -
     * + `platform-details` - The platform (`Linux/UNIX` | `Red Hat BYOL Linux` | ` Red Hat Enterprise Linux` | `Red Hat Enterprise Linux with HA` | `Red Hat Enterprise Linux with SQL Server Standard and HA` | `Red Hat Enterprise Linux with SQL Server Enterprise and HA` | `Red Hat Enterprise Linux with SQL Server Standard` | `Red Hat Enterprise Linux with SQL Server Web` | `Red Hat Enterprise Linux with SQL Server Enterprise` | `SQL Server Enterprise` | `SQL Server Standard` | `SQL Server Web` | `SUSE Linux` | `Ubuntu Pro` | `Windows` | `Windows BYOL` | `Windows with SQL Server Enterprise` | `Windows with SQL Server Standard` | `Windows with SQL Server Web`).
         123  +
     * + `platform-details` - The platform (`Linux/UNIX` | `Red Hat BYOL Linux` | ` Red Hat Enterprise Linux` | `Red Hat Enterprise Linux with HA` | `Red Hat Enterprise Linux with High Availability` | `Red Hat Enterprise Linux with SQL Server Standard and HA` | `Red Hat Enterprise Linux with SQL Server Enterprise and HA` | `Red Hat Enterprise Linux with SQL Server Standard` | `Red Hat Enterprise Linux with SQL Server Web` | `Red Hat Enterprise Linux with SQL Server Enterprise` | `SQL Server Enterprise` | `SQL Server Standard` | `SQL Server Web` | `SUSE Linux` | `Ubuntu Pro` | `Windows` | `Windows BYOL` | `Windows with SQL Server Enterprise` | `Windows with SQL Server Standard` | `Windows with SQL Server Web`).
  123    124   
     * + `private-dns-name` - The private IPv4 DNS name of the instance.
  124    125   
     * + `private-dns-name-options.enable-resource-name-dns-a-record` - A Boolean that indicates whether to respond to DNS queries for instance hostnames with DNS A records.
  125    126   
     * + `private-dns-name-options.enable-resource-name-dns-aaaa-record` - A Boolean that indicates whether to respond to DNS queries for instance hostnames with DNS AAAA records.
  126    127   
     * + `private-dns-name-options.hostname-type` - The type of hostname (`ip-name` | `resource-name`).
  127    128   
     * + `private-ip-address` - The private IPv4 address of the instance. This can only be used to filter by the primary IP address of the network interface attached to the instance. To filter by additional IP addresses assigned to the network interface, use the filter `network-interface.addresses.private-ip-address`.
  128    129   
     * + `product-code` - The product code associated with the AMI used to launch the instance.
  129    130   
     * + `product-code.type` - The type of product code (`devpay` | `marketplace`).
  130    131   
     * + `ramdisk-id` - The RAM disk ID.
  131    132   
     * + `reason` - The reason for the current state of the instance (for example, shows "User Initiated &#91;date&#93;" when you stop or terminate the instance). Similar to the state-reason-code filter.
  132    133   
     * + `requester-id` - The ID of the entity that launched the instance on your behalf (for example, Amazon Web Services Management Console, Auto Scaling, and so on).
@@ -189,190 +248,250 @@
  209    210   
    public class Builder {
  210    211   
        /**
  211    212   
         * Checks whether you have the required permissions for the operation, 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`.
  212    213   
         */
  213    214   
        public var dryRun: kotlin.Boolean? = null
  214    215   
        /**
  215    216   
         * The filters.
  216    217   
         * + `affinity` - The affinity setting for an instance running on a Dedicated Host (`default` | `host`).
  217    218   
         * + `architecture` - The instance architecture (`i386` | `x86_64` | `arm64`).
  218    219   
         * + `availability-zone` - The Availability Zone of the instance.
         220  +
         * + `availability-zone-id` - The ID of the Availability Zone of the instance.
  219    221   
         * + `block-device-mapping.attach-time` - The attach time for an EBS volume mapped to the instance, for example, `2022-09-15T17:15:20.000Z`.
  220    222   
         * + `block-device-mapping.delete-on-termination` - A Boolean that indicates whether the EBS volume is deleted on instance termination.
  221    223   
         * + `block-device-mapping.device-name` - The device name specified in the block device mapping (for example, `/dev/sdh` or `xvdh`).
  222    224   
         * + `block-device-mapping.status` - The status for the EBS volume (`attaching` | `attached` | `detaching` | `detached`).
  223    225   
         * + `block-device-mapping.volume-id` - The volume ID of the EBS volume.
  224    226   
         * + `boot-mode` - The boot mode that was specified by the AMI (`legacy-bios` | `uefi` | `uefi-preferred`).
  225    227   
         * + `capacity-reservation-id` - The ID of the Capacity Reservation into which the instance was launched.
  226    228   
         * + `capacity-reservation-specification.capacity-reservation-preference` - The instance's Capacity Reservation preference (`open` | `none`).
  227    229   
         * + `capacity-reservation-specification.capacity-reservation-target.capacity-reservation-id` - The ID of the targeted Capacity Reservation.
  228    230   
         * + `capacity-reservation-specification.capacity-reservation-target.capacity-reservation-resource-group-arn` - The ARN of the targeted Capacity Reservation group.
@@ -294,296 +354,356 @@
  314    316   
         * + `network-interface.tag-value` - The value of a tag assigned to the network interface.
  315    317   
         * + `network-interface.vpc-id` - The ID of the VPC for the network interface.
  316    318   
         * + `network-performance-options.bandwidth-weighting` - Where the performance boost is applied, if applicable. Valid values: `default`, `vpc-1`, `ebs-1`.
  317    319   
         * + `operator.managed` - A Boolean that indicates whether this is a managed instance.
  318    320   
         * + `operator.principal` - The principal that manages the instance. Only valid for managed instances, where `managed` is `true`.
  319    321   
         * + `outpost-arn` - The Amazon Resource Name (ARN) of the Outpost.
  320    322   
         * + `owner-id` - The Amazon Web Services account ID of the instance owner.
  321    323   
         * + `placement-group-name` - The name of the placement group for the instance.
  322    324   
         * + `placement-partition-number` - The partition in which the instance is located.
  323    325   
         * + `platform` - The platform. To list only Windows instances, use `windows`.
  324         -
         * + `platform-details` - The platform (`Linux/UNIX` | `Red Hat BYOL Linux` | ` Red Hat Enterprise Linux` | `Red Hat Enterprise Linux with HA` | `Red Hat Enterprise Linux with SQL Server Standard and HA` | `Red Hat Enterprise Linux with SQL Server Enterprise and HA` | `Red Hat Enterprise Linux with SQL Server Standard` | `Red Hat Enterprise Linux with SQL Server Web` | `Red Hat Enterprise Linux with SQL Server Enterprise` | `SQL Server Enterprise` | `SQL Server Standard` | `SQL Server Web` | `SUSE Linux` | `Ubuntu Pro` | `Windows` | `Windows BYOL` | `Windows with SQL Server Enterprise` | `Windows with SQL Server Standard` | `Windows with SQL Server Web`).
         326  +
         * + `platform-details` - The platform (`Linux/UNIX` | `Red Hat BYOL Linux` | ` Red Hat Enterprise Linux` | `Red Hat Enterprise Linux with HA` | `Red Hat Enterprise Linux with High Availability` | `Red Hat Enterprise Linux with SQL Server Standard and HA` | `Red Hat Enterprise Linux with SQL Server Enterprise and HA` | `Red Hat Enterprise Linux with SQL Server Standard` | `Red Hat Enterprise Linux with SQL Server Web` | `Red Hat Enterprise Linux with SQL Server Enterprise` | `SQL Server Enterprise` | `SQL Server Standard` | `SQL Server Web` | `SUSE Linux` | `Ubuntu Pro` | `Windows` | `Windows BYOL` | `Windows with SQL Server Enterprise` | `Windows with SQL Server Standard` | `Windows with SQL Server Web`).
  325    327   
         * + `private-dns-name` - The private IPv4 DNS name of the instance.
  326    328   
         * + `private-dns-name-options.enable-resource-name-dns-a-record` - A Boolean that indicates whether to respond to DNS queries for instance hostnames with DNS A records.
  327    329   
         * + `private-dns-name-options.enable-resource-name-dns-aaaa-record` - A Boolean that indicates whether to respond to DNS queries for instance hostnames with DNS AAAA records.
  328    330   
         * + `private-dns-name-options.hostname-type` - The type of hostname (`ip-name` | `resource-name`).
  329    331   
         * + `private-ip-address` - The private IPv4 address of the instance. This can only be used to filter by the primary IP address of the network interface attached to the instance. To filter by additional IP addresses assigned to the network interface, use the filter `network-interface.addresses.private-ip-address`.
  330    332   
         * + `product-code` - The product code associated with the AMI used to launch the instance.
  331    333   
         * + `product-code.type` - The type of product code (`devpay` | `marketplace`).
  332    334   
         * + `ramdisk-id` - The RAM disk ID.
  333    335   
         * + `reason` - The reason for the current state of the instance (for example, shows "User Initiated &#91;date&#93;" when you stop or terminate the instance). Similar to the state-reason-code filter.
  334    336   
         * + `requester-id` - The ID of the entity that launched the instance on your behalf (for example, Amazon Web Services Management Console, Auto Scaling, and so on).

tmp-codegen-diff/services/ec2/generated-src/main/kotlin/aws/sdk/kotlin/services/ec2/model/DescribeSpotInstanceRequestsRequest.kt

@@ -7,7 +66,67 @@
   27     27   
     * + `launch.block-device-mapping.volume-type` - The type of EBS volume: `gp2` or `gp3` for General Purpose SSD, `io1` or `io2` for Provisioned IOPS SSD, `st1` for Throughput Optimized HDD, `sc1` for Cold HDD, or `standard` for Magnetic.
   28     28   
     * + `launch.group-id` - The ID of the security group for the instance.
   29     29   
     * + `launch.group-name` - The name of the security group for the instance.
   30     30   
     * + `launch.image-id` - The ID of the AMI.
   31     31   
     * + `launch.instance-type` - The type of instance (for example, `m3.medium`).
   32     32   
     * + `launch.kernel-id` - The kernel ID.
   33     33   
     * + `launch.key-name` - The name of the key pair the instance launched with.
   34     34   
     * + `launch.monitoring-enabled` - Whether detailed monitoring is enabled for the Spot Instance.
   35     35   
     * + `launch.ramdisk-id` - The RAM disk ID.
   36     36   
     * + `launched-availability-zone` - The Availability Zone in which the request is launched.
          37  +
     * + `launched-availability-zone-id` - The ID of the Availability Zone in which the request is launched.
   37     38   
     * + `network-interface.addresses.primary` - Indicates whether the IP address is the primary private IP address.
   38     39   
     * + `network-interface.delete-on-termination` - Indicates whether the network interface is deleted when the instance is terminated.
   39     40   
     * + `network-interface.description` - A description of the network interface.
   40     41   
     * + `network-interface.device-index` - The index of the device for the network interface attachment on the instance.
   41     42   
     * + `network-interface.group-id` - The ID of the security group associated with the network interface.
   42     43   
     * + `network-interface.network-interface-id` - The ID of the network interface.
   43     44   
     * + `network-interface.private-ip-address` - The primary private IP address of the network interface.
   44     45   
     * + `network-interface.subnet-id` - The ID of the subnet for the instance.
   45     46   
     * + `product-description` - The product description associated with the instance (`Linux/UNIX` | `Windows`).
   46     47   
     * + `spot-instance-request-id` - The Spot Instance request ID.
@@ -109,110 +168,170 @@
  129    130   
         * + `launch.block-device-mapping.volume-type` - The type of EBS volume: `gp2` or `gp3` for General Purpose SSD, `io1` or `io2` for Provisioned IOPS SSD, `st1` for Throughput Optimized HDD, `sc1` for Cold HDD, or `standard` for Magnetic.
  130    131   
         * + `launch.group-id` - The ID of the security group for the instance.
  131    132   
         * + `launch.group-name` - The name of the security group for the instance.
  132    133   
         * + `launch.image-id` - The ID of the AMI.
  133    134   
         * + `launch.instance-type` - The type of instance (for example, `m3.medium`).
  134    135   
         * + `launch.kernel-id` - The kernel ID.
  135    136   
         * + `launch.key-name` - The name of the key pair the instance launched with.
  136    137   
         * + `launch.monitoring-enabled` - Whether detailed monitoring is enabled for the Spot Instance.
  137    138   
         * + `launch.ramdisk-id` - The RAM disk ID.
  138    139   
         * + `launched-availability-zone` - The Availability Zone in which the request is launched.
         140  +
         * + `launched-availability-zone-id` - The ID of the Availability Zone in which the request is launched.
  139    141   
         * + `network-interface.addresses.primary` - Indicates whether the IP address is the primary private IP address.
  140    142   
         * + `network-interface.delete-on-termination` - Indicates whether the network interface is deleted when the instance is terminated.
  141    143   
         * + `network-interface.description` - A description of the network interface.
  142    144   
         * + `network-interface.device-index` - The index of the device for the network interface attachment on the instance.
  143    145   
         * + `network-interface.group-id` - The ID of the security group associated with the network interface.
  144    146   
         * + `network-interface.network-interface-id` - The ID of the network interface.
  145    147   
         * + `network-interface.private-ip-address` - The primary private IP address of the network interface.
  146    148   
         * + `network-interface.subnet-id` - The ID of the subnet for the instance.
  147    149   
         * + `product-description` - The product description associated with the instance (`Linux/UNIX` | `Windows`).
  148    150   
         * + `spot-instance-request-id` - The Spot Instance request ID.