AWS SDK

AWS SDK

rev. 55953366b6ad017c471504df28d44ad02ae291d8..b947ffe108734b187b6bd899c1d2b11c1f0ed70b

Files changed:

tmp-codegen-diff/services/codebuild/build/tmp/jvmJar/MANIFEST.MF

@@ -1,0 +2,0 @@
    1         -
Manifest-Version: 1.0
    2         -

tmp-codegen-diff/services/dynamodb/build/tmp/jvmJar/MANIFEST.MF

@@ -1,0 +2,0 @@
    1         -
Manifest-Version: 1.0
    2         -

tmp-codegen-diff/services/ec2/build/tmp/jvmJar/MANIFEST.MF

@@ -1,0 +2,0 @@
    1         -
Manifest-Version: 1.0
    2         -

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

@@ -2120,2120 +2187,2186 @@
 2140   2140   
        op.install(RecursionDetection())
 2141   2141   
        op.interceptors.addAll(config.interceptors)
 2142   2142   
        return op.roundTrip(client, input)
 2143   2143   
    }
 2144   2144   
 2145   2145   
    /**
 2146   2146   
     * Cancels the specified Capacity Reservation, releases the reserved capacity, and changes the Capacity Reservation's state to `cancelled`.
 2147   2147   
     *
 2148   2148   
     * You can cancel a Capacity Reservation that is in the following states:
 2149   2149   
     * + `assessing`
 2150         -
     * + `scheduled`
        2150  +
     * + `scheduled` — requires a cancellation quote. Use `CreateCapacityReservationCancellationQuote` to generate a quote, then pass the quote ID with `ApplyCancellationCharges` set to `commitment-wind-down`. The cancellation charge depends on how close the reservation is to its start date.
 2151   2151   
     * + `active` and there is no commitment duration or the commitment duration has elapsed.
 2152         -
     * + `active` during the commitment duration, if you provide a cancellation quote ID and accept the cancellation charges. Use `CreateCapacityReservationCancellationQuote` to generate a quote. The Capacity Reservation transitions to `cancelling` while charges are applied.
        2152  +
     * + `active` during the commitment duration — requires a cancellation quote. Use `CreateCapacityReservationCancellationQuote` to generate a quote, then pass the quote ID with `ApplyCancellationCharges` set to `commitment-wind-down`. The Capacity Reservation transitions to `cancelling` while charges are applied.
        2153  +
     * + `delayed` — the commitment duration is waived, so no cancellation charge applies.
 2153   2154   
     *
 2154   2155   
     * You can't modify or cancel a Capacity Block. For more information, see [Capacity Blocks for ML](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-capacity-blocks.html).
 2155   2156   
     *
 2156         -
     * If a future-dated Capacity Reservation enters the `delayed` state, the commitment duration is waived, and you can cancel it as soon as it enters the `active` state.
 2157         -
     *
 2158   2157   
     * Instances running in the reserved capacity continue running until you stop them. Stopped instances that target the Capacity Reservation can no longer launch. Modify these instances to either target a different Capacity Reservation, launch On-Demand Instance capacity, or run in any open Capacity Reservation that has matching attributes and sufficient capacity.
 2159   2158   
     */
 2160   2159   
    override suspend fun cancelCapacityReservation(input: CancelCapacityReservationRequest): CancelCapacityReservationResponse {
 2161   2160   
        val op = SdkHttpOperation.build<CancelCapacityReservationRequest, CancelCapacityReservationResponse> {
 2162   2161   
            serializeWith = CancelCapacityReservationOperationSerializer()
 2163   2162   
            deserializeWith = CancelCapacityReservationOperationDeserializer()
 2164   2163   
            operationName = "CancelCapacityReservation"
 2165   2164   
            serviceName = ServiceId
 2166   2165   
            telemetry {
 2167   2166   
                provider = config.telemetryProvider
@@ -5046,5045 +5106,5105 @@
 5066   5065   
        )
 5067   5066   
        op.install(UserAgent(awsUserAgentMetadata))
 5068   5067   
        op.install(RecursionDetection())
 5069   5068   
        op.interceptors.addAll(config.interceptors)
 5070   5069   
        return op.roundTrip(client, input)
 5071   5070   
    }
 5072   5071   
 5073   5072   
    /**
 5074   5073   
     * Creates a placement group in which to launch instances. The strategy of the placement group determines how the instances are organized within the group.
 5075   5074   
     *
 5076         -
     * A `cluster` placement group is a logical grouping of instances within a single Availability Zone that benefit from low network latency, high network throughput. A `spread` placement group places instances on distinct hardware. A `partition` placement group places groups of instances in different partitions, where instances in one partition do not share the same hardware with instances in another partition. A `precision-time` placement group places instances on supported hardware with direct access to high-precision time sources in AWS infrastructure.
        5075  +
     * A `cluster` placement group is a logical grouping of instances within a single Availability Zone that benefit from low network latency, high network throughput. A `spread` placement group places instances on distinct hardware. A `partition` placement group places groups of instances in different partitions, where instances in one partition do not share the same hardware with instances in another partition. A `precision-time` placement group places instances on supported hardware with direct access to high-precision time sources in Amazon Web Services infrastructure.
 5077   5076   
     *
 5078   5077   
     * For more information, see [Placement groups](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/placement-groups.html) in the *Amazon EC2 User Guide*.
 5079   5078   
     *
 5080   5079   
     * @sample aws.sdk.kotlin.services.ec2.samples.CreatePlacementGroup.sample
 5081   5080   
     */
 5082   5081   
    override suspend fun createPlacementGroup(input: CreatePlacementGroupRequest): CreatePlacementGroupResponse {
 5083   5082   
        val op = SdkHttpOperation.build<CreatePlacementGroupRequest, CreatePlacementGroupResponse> {
 5084   5083   
            serializeWith = CreatePlacementGroupOperationSerializer()
 5085   5084   
            deserializeWith = CreatePlacementGroupOperationDeserializer()
 5086   5085   
            operationName = "CreatePlacementGroup"
@@ -11624,11623 +11683,11724 @@
11644  11643   
            MutateHeaders().apply {
11645  11644   
                setIfMissing("Content-Type", "application/x-www-form-urlencoded")
11646  11645   
            }
11647  11646   
        )
11648  11647   
        op.install(UserAgent(awsUserAgentMetadata))
11649  11648   
        op.install(RecursionDetection())
11650  11649   
        op.interceptors.addAll(config.interceptors)
11651  11650   
        return op.roundTrip(client, input)
11652  11651   
    }
11653  11652   
       11653  +
    /**
       11654  +
     * Describes the account-level VPC Encryption Control configuration for your account. VPC Encryption Control enables you to enforce encryption for all data in transit within and between VPCs to meet compliance requirements.
       11655  +
     *
       11656  +
     * For more information, see [Enforce VPC encryption in transit](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-encryption-controls.html) in the *Amazon VPC User Guide*.
       11657  +
     */
       11658  +
    override suspend fun describeAccountVpcEncryptionControl(input: DescribeAccountVpcEncryptionControlRequest): DescribeAccountVpcEncryptionControlResponse {
       11659  +
        val op = SdkHttpOperation.build<DescribeAccountVpcEncryptionControlRequest, DescribeAccountVpcEncryptionControlResponse> {
       11660  +
            serializeWith = DescribeAccountVpcEncryptionControlOperationSerializer()
       11661  +
            deserializeWith = DescribeAccountVpcEncryptionControlOperationDeserializer()
       11662  +
            operationName = "DescribeAccountVpcEncryptionControl"
       11663  +
            serviceName = ServiceId
       11664  +
            telemetry {
       11665  +
                provider = config.telemetryProvider
       11666  +
                scope = telemetryScope
       11667  +
                metrics = opMetrics
       11668  +
                attributes = attributesOf {
       11669  +
                    "rpc.system" to "aws-api"
       11670  +
                }
       11671  +
            }
       11672  +
            execution.auth = OperationAuthConfig(authSchemeAdapter, configuredAuthSchemes, identityProviderConfig)
       11673  +
            execution.endpointResolver = EndpointResolverAdapter(config)
       11674  +
            execution.retryStrategy = config.retryStrategy
       11675  +
            execution.retryPolicy = config.retryPolicy
       11676  +
        }
       11677  +
        mergeServiceDefaults(op.context)
       11678  +
        op.install(AwsRetryHeaderMiddleware())
       11679  +
        op.interceptors.add(AwsSpanInterceptor)
       11680  +
        op.interceptors.add(BusinessMetricsInterceptor())
       11681  +
        if (config.credentialsProvider is StaticCredentialsProvider) {
       11682  +
            op.context.emitBusinessMetric(AwsBusinessMetric.Credentials.CREDENTIALS_CODE)
       11683  +
        }
       11684  +
        op.install(
       11685  +
            MutateHeaders().apply {
       11686  +
                setIfMissing("Content-Type", "application/x-www-form-urlencoded")
       11687  +
            }
       11688  +
        )
       11689  +
        op.install(UserAgent(awsUserAgentMetadata))
       11690  +
        op.install(RecursionDetection())
       11691  +
        op.interceptors.addAll(config.interceptors)
       11692  +
        return op.roundTrip(client, input)
       11693  +
    }
       11694  +
11654  11695   
    /**
11655  11696   
     * Describes an Elastic IP address transfer. For more information, see [Transfer Elastic IP addresses](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-eips.html#transfer-EIPs-intro) in the *Amazon VPC User Guide*.
11656  11697   
     *
11657  11698   
     * When you transfer an Elastic IP address, there is a two-step handshake between the source and transfer Amazon Web Services accounts. When the source account starts the transfer, the transfer account has seven days to accept the Elastic IP address transfer. During those seven days, the source account can view the pending transfer by using this action. After seven days, the transfer expires and ownership of the Elastic IP address returns to the source account. Accepted transfers are visible to the source account for 14 days after the transfers have been accepted.
11658  11699   
     */
11659  11700   
    override suspend fun describeAddressTransfers(input: DescribeAddressTransfersRequest): DescribeAddressTransfersResponse {
11660  11701   
        val op = SdkHttpOperation.build<DescribeAddressTransfersRequest, DescribeAddressTransfersResponse> {
11661  11702   
            serializeWith = DescribeAddressTransfersOperationSerializer()
11662  11703   
            deserializeWith = DescribeAddressTransfersOperationDeserializer()
11663  11704   
            operationName = "DescribeAddressTransfers"
@@ -25961,26002 +26020,26103 @@
25981  26022   
            MutateHeaders().apply {
25982  26023   
                setIfMissing("Content-Type", "application/x-www-form-urlencoded")
25983  26024   
            }
25984  26025   
        )
25985  26026   
        op.install(UserAgent(awsUserAgentMetadata))
25986  26027   
        op.install(RecursionDetection())
25987  26028   
        op.interceptors.addAll(config.interceptors)
25988  26029   
        return op.roundTrip(client, input)
25989  26030   
    }
25990  26031   
       26032  +
    /**
       26033  +
     * Modifies the account-level VPC Encryption Control configuration. This sets the encryption control mode and resource exclusions that apply to the VPCs in your account. VPC Encryption Control enables you to enforce encryption for all data in transit within and between VPCs to meet compliance requirements.
       26034  +
     *
       26035  +
     * For more information, see [Enforce VPC encryption in transit](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-encryption-controls.html) in the *Amazon VPC User Guide*.
       26036  +
     */
       26037  +
    override suspend fun modifyAccountVpcEncryptionControl(input: ModifyAccountVpcEncryptionControlRequest): ModifyAccountVpcEncryptionControlResponse {
       26038  +
        val op = SdkHttpOperation.build<ModifyAccountVpcEncryptionControlRequest, ModifyAccountVpcEncryptionControlResponse> {
       26039  +
            serializeWith = ModifyAccountVpcEncryptionControlOperationSerializer()
       26040  +
            deserializeWith = ModifyAccountVpcEncryptionControlOperationDeserializer()
       26041  +
            operationName = "ModifyAccountVpcEncryptionControl"
       26042  +
            serviceName = ServiceId
       26043  +
            telemetry {
       26044  +
                provider = config.telemetryProvider
       26045  +
                scope = telemetryScope
       26046  +
                metrics = opMetrics
       26047  +
                attributes = attributesOf {
       26048  +
                    "rpc.system" to "aws-api"
       26049  +
                }
       26050  +
            }
       26051  +
            execution.auth = OperationAuthConfig(authSchemeAdapter, configuredAuthSchemes, identityProviderConfig)
       26052  +
            execution.endpointResolver = EndpointResolverAdapter(config)
       26053  +
            execution.retryStrategy = config.retryStrategy
       26054  +
            execution.retryPolicy = config.retryPolicy
       26055  +
        }
       26056  +
        mergeServiceDefaults(op.context)
       26057  +
        op.install(AwsRetryHeaderMiddleware())
       26058  +
        op.interceptors.add(AwsSpanInterceptor)
       26059  +
        op.interceptors.add(BusinessMetricsInterceptor())
       26060  +
        if (config.credentialsProvider is StaticCredentialsProvider) {
       26061  +
            op.context.emitBusinessMetric(AwsBusinessMetric.Credentials.CREDENTIALS_CODE)
       26062  +
        }
       26063  +
        op.install(
       26064  +
            MutateHeaders().apply {
       26065  +
                setIfMissing("Content-Type", "application/x-www-form-urlencoded")
       26066  +
            }
       26067  +
        )
       26068  +
        op.install(UserAgent(awsUserAgentMetadata))
       26069  +
        op.install(RecursionDetection())
       26070  +
        op.interceptors.addAll(config.interceptors)
       26071  +
        return op.roundTrip(client, input)
       26072  +
    }
       26073  +
25991  26074   
    /**
25992  26075   
     * Modifies an attribute of the specified Elastic IP address. For requirements, see [Using reverse DNS for email applications](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/elastic-ip-addresses-eip.html#Using_Elastic_Addressing_Reverse_DNS).
25993  26076   
     */
25994  26077   
    override suspend fun modifyAddressAttribute(input: ModifyAddressAttributeRequest): ModifyAddressAttributeResponse {
25995  26078   
        val op = SdkHttpOperation.build<ModifyAddressAttributeRequest, ModifyAddressAttributeResponse> {
25996  26079   
            serializeWith = ModifyAddressAttributeOperationSerializer()
25997  26080   
            deserializeWith = ModifyAddressAttributeOperationDeserializer()
25998  26081   
            operationName = "ModifyAddressAttribute"
25999  26082   
            serviceName = ServiceId
26000  26083   
            telemetry {

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

@@ -531,531 +590,592 @@
  551    551   
import aws.sdk.kotlin.services.ec2.model.DeregisterImageRequest
  552    552   
import aws.sdk.kotlin.services.ec2.model.DeregisterImageResponse
  553    553   
import aws.sdk.kotlin.services.ec2.model.DeregisterInstanceEventNotificationAttributesRequest
  554    554   
import aws.sdk.kotlin.services.ec2.model.DeregisterInstanceEventNotificationAttributesResponse
  555    555   
import aws.sdk.kotlin.services.ec2.model.DeregisterTransitGatewayMulticastGroupMembersRequest
  556    556   
import aws.sdk.kotlin.services.ec2.model.DeregisterTransitGatewayMulticastGroupMembersResponse
  557    557   
import aws.sdk.kotlin.services.ec2.model.DeregisterTransitGatewayMulticastGroupSourcesRequest
  558    558   
import aws.sdk.kotlin.services.ec2.model.DeregisterTransitGatewayMulticastGroupSourcesResponse
  559    559   
import aws.sdk.kotlin.services.ec2.model.DescribeAccountAttributesRequest
  560    560   
import aws.sdk.kotlin.services.ec2.model.DescribeAccountAttributesResponse
         561  +
import aws.sdk.kotlin.services.ec2.model.DescribeAccountVpcEncryptionControlRequest
         562  +
import aws.sdk.kotlin.services.ec2.model.DescribeAccountVpcEncryptionControlResponse
  561    563   
import aws.sdk.kotlin.services.ec2.model.DescribeAddressTransfersRequest
  562    564   
import aws.sdk.kotlin.services.ec2.model.DescribeAddressTransfersResponse
  563    565   
import aws.sdk.kotlin.services.ec2.model.DescribeAddressesAttributeRequest
  564    566   
import aws.sdk.kotlin.services.ec2.model.DescribeAddressesAttributeResponse
  565    567   
import aws.sdk.kotlin.services.ec2.model.DescribeAddressesRequest
  566    568   
import aws.sdk.kotlin.services.ec2.model.DescribeAddressesResponse
  567    569   
import aws.sdk.kotlin.services.ec2.model.DescribeAggregateIdFormatRequest
  568    570   
import aws.sdk.kotlin.services.ec2.model.DescribeAggregateIdFormatResponse
  569    571   
import aws.sdk.kotlin.services.ec2.model.DescribeAvailabilityZonesRequest
  570    572   
import aws.sdk.kotlin.services.ec2.model.DescribeAvailabilityZonesResponse
@@ -1211,1213 +1270,1274 @@
 1231   1233   
import aws.sdk.kotlin.services.ec2.model.ImportVolumeRequest
 1232   1234   
import aws.sdk.kotlin.services.ec2.model.ImportVolumeResponse
 1233   1235   
import aws.sdk.kotlin.services.ec2.model.ListImagesInRecycleBinRequest
 1234   1236   
import aws.sdk.kotlin.services.ec2.model.ListImagesInRecycleBinResponse
 1235   1237   
import aws.sdk.kotlin.services.ec2.model.ListSnapshotsInRecycleBinRequest
 1236   1238   
import aws.sdk.kotlin.services.ec2.model.ListSnapshotsInRecycleBinResponse
 1237   1239   
import aws.sdk.kotlin.services.ec2.model.ListVolumesInRecycleBinRequest
 1238   1240   
import aws.sdk.kotlin.services.ec2.model.ListVolumesInRecycleBinResponse
 1239   1241   
import aws.sdk.kotlin.services.ec2.model.LockSnapshotRequest
 1240   1242   
import aws.sdk.kotlin.services.ec2.model.LockSnapshotResponse
        1243  +
import aws.sdk.kotlin.services.ec2.model.ModifyAccountVpcEncryptionControlRequest
        1244  +
import aws.sdk.kotlin.services.ec2.model.ModifyAccountVpcEncryptionControlResponse
 1241   1245   
import aws.sdk.kotlin.services.ec2.model.ModifyAddressAttributeRequest
 1242   1246   
import aws.sdk.kotlin.services.ec2.model.ModifyAddressAttributeResponse
 1243   1247   
import aws.sdk.kotlin.services.ec2.model.ModifyAvailabilityZoneGroupRequest
 1244   1248   
import aws.sdk.kotlin.services.ec2.model.ModifyAvailabilityZoneGroupResponse
 1245   1249   
import aws.sdk.kotlin.services.ec2.model.ModifyCapacityReservationFleetRequest
 1246   1250   
import aws.sdk.kotlin.services.ec2.model.ModifyCapacityReservationFleetResponse
 1247   1251   
import aws.sdk.kotlin.services.ec2.model.ModifyCapacityReservationRequest
 1248   1252   
import aws.sdk.kotlin.services.ec2.model.ModifyCapacityReservationResponse
 1249   1253   
import aws.sdk.kotlin.services.ec2.model.ModifyClientVpnEndpointRequest
 1250   1254   
import aws.sdk.kotlin.services.ec2.model.ModifyClientVpnEndpointResponse
@@ -2230,2234 +2297,2300 @@
 2250   2254   
    /**
 2251   2255   
     * Cancels a bundling operation for an instance store-backed Windows instance.
 2252   2256   
     */
 2253   2257   
    public suspend fun cancelBundleTask(input: CancelBundleTaskRequest): CancelBundleTaskResponse
 2254   2258   
 2255   2259   
    /**
 2256   2260   
     * Cancels the specified Capacity Reservation, releases the reserved capacity, and changes the Capacity Reservation's state to `cancelled`.
 2257   2261   
     *
 2258   2262   
     * You can cancel a Capacity Reservation that is in the following states:
 2259   2263   
     * + `assessing`
 2260         -
     * + `scheduled`
        2264  +
     * + `scheduled` — requires a cancellation quote. Use `CreateCapacityReservationCancellationQuote` to generate a quote, then pass the quote ID with `ApplyCancellationCharges` set to `commitment-wind-down`. The cancellation charge depends on how close the reservation is to its start date.
 2261   2265   
     * + `active` and there is no commitment duration or the commitment duration has elapsed.
 2262         -
     * + `active` during the commitment duration, if you provide a cancellation quote ID and accept the cancellation charges. Use `CreateCapacityReservationCancellationQuote` to generate a quote. The Capacity Reservation transitions to `cancelling` while charges are applied.
        2266  +
     * + `active` during the commitment duration — requires a cancellation quote. Use `CreateCapacityReservationCancellationQuote` to generate a quote, then pass the quote ID with `ApplyCancellationCharges` set to `commitment-wind-down`. The Capacity Reservation transitions to `cancelling` while charges are applied.
        2267  +
     * + `delayed` — the commitment duration is waived, so no cancellation charge applies.
 2263   2268   
     *
 2264   2269   
     * You can't modify or cancel a Capacity Block. For more information, see [Capacity Blocks for ML](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-capacity-blocks.html).
 2265   2270   
     *
 2266         -
     * If a future-dated Capacity Reservation enters the `delayed` state, the commitment duration is waived, and you can cancel it as soon as it enters the `active` state.
 2267         -
     *
 2268   2271   
     * Instances running in the reserved capacity continue running until you stop them. Stopped instances that target the Capacity Reservation can no longer launch. Modify these instances to either target a different Capacity Reservation, launch On-Demand Instance capacity, or run in any open Capacity Reservation that has matching attributes and sufficient capacity.
 2269   2272   
     */
 2270   2273   
    public suspend fun cancelCapacityReservation(input: CancelCapacityReservationRequest): CancelCapacityReservationResponse
 2271   2274   
 2272   2275   
    /**
 2273   2276   
     * Cancels one or more Capacity Reservation Fleets. When you cancel a Capacity Reservation Fleet, the following happens:
 2274   2277   
     * + The Capacity Reservation Fleet's status changes to `cancelled`.
 2275   2278   
     * + The individual Capacity Reservations in the Fleet are cancelled. Instances running in the Capacity Reservations at the time of cancelling the Fleet continue to run in shared capacity.
 2276   2279   
     * + The Fleet stops creating new Capacity Reservations.
 2277   2280   
     */
@@ -2811,2814 +2871,2874 @@
 2831   2834   
    /**
 2832   2835   
     * Grants an Amazon Web Services-authorized account permission to attach the specified network interface to an instance in their account.
 2833   2836   
     *
 2834   2837   
     * You can grant permission to a single Amazon Web Services account only, and only one account at a time.
 2835   2838   
     */
 2836   2839   
    public suspend fun createNetworkInterfacePermission(input: CreateNetworkInterfacePermissionRequest): CreateNetworkInterfacePermissionResponse
 2837   2840   
 2838   2841   
    /**
 2839   2842   
     * Creates a placement group in which to launch instances. The strategy of the placement group determines how the instances are organized within the group.
 2840   2843   
     *
 2841         -
     * A `cluster` placement group is a logical grouping of instances within a single Availability Zone that benefit from low network latency, high network throughput. A `spread` placement group places instances on distinct hardware. A `partition` placement group places groups of instances in different partitions, where instances in one partition do not share the same hardware with instances in another partition. A `precision-time` placement group places instances on supported hardware with direct access to high-precision time sources in AWS infrastructure.
        2844  +
     * A `cluster` placement group is a logical grouping of instances within a single Availability Zone that benefit from low network latency, high network throughput. A `spread` placement group places instances on distinct hardware. A `partition` placement group places groups of instances in different partitions, where instances in one partition do not share the same hardware with instances in another partition. A `precision-time` placement group places instances on supported hardware with direct access to high-precision time sources in Amazon Web Services infrastructure.
 2842   2845   
     *
 2843   2846   
     * For more information, see [Placement groups](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/placement-groups.html) in the *Amazon EC2 User Guide*.
 2844   2847   
     *
 2845   2848   
     * @sample aws.sdk.kotlin.services.ec2.samples.CreatePlacementGroup.sample
 2846   2849   
     */
 2847   2850   
    public suspend fun createPlacementGroup(input: CreatePlacementGroupRequest = CreatePlacementGroupRequest { }): CreatePlacementGroupResponse
 2848   2851   
 2849   2852   
    /**
 2850   2853   
     * Creates a public IPv4 address pool. A public IPv4 pool is an EC2 IP address pool required for the public IPv4 CIDRs that you own and bring to Amazon Web Services to manage with IPAM. IPv6 addresses you bring to Amazon Web Services, however, use IPAM pools only. To monitor the status of pool creation, use [DescribePublicIpv4Pools](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribePublicIpv4Pools.html).
 2851   2854   
     */
@@ -3964,3967 +4023,4033 @@
 3984   3987   
     * + `vpc-max-elastic-ips`: The maximum number of Elastic IP addresses that you can allocate.
 3985   3988   
     * + `vpc-max-security-groups-per-interface`: The maximum number of security groups that you can assign to a network interface.
 3986   3989   
     *
 3987   3990   
     * 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.
 3988   3991   
     *
 3989   3992   
     * @sample aws.sdk.kotlin.services.ec2.samples.DescribeAccountAttributes.sample
 3990   3993   
     * @sample aws.sdk.kotlin.services.ec2.samples.DescribeAccountAttributes.sample2
 3991   3994   
     */
 3992   3995   
    public suspend fun describeAccountAttributes(input: DescribeAccountAttributesRequest = DescribeAccountAttributesRequest { }): DescribeAccountAttributesResponse
 3993   3996   
        3997  +
    /**
        3998  +
     * Describes the account-level VPC Encryption Control configuration for your account. VPC Encryption Control enables you to enforce encryption for all data in transit within and between VPCs to meet compliance requirements.
        3999  +
     *
        4000  +
     * For more information, see [Enforce VPC encryption in transit](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-encryption-controls.html) in the *Amazon VPC User Guide*.
        4001  +
     */
        4002  +
    public suspend fun describeAccountVpcEncryptionControl(input: DescribeAccountVpcEncryptionControlRequest = DescribeAccountVpcEncryptionControlRequest { }): DescribeAccountVpcEncryptionControlResponse
        4003  +
 3994   4004   
    /**
 3995   4005   
     * Describes an Elastic IP address transfer. For more information, see [Transfer Elastic IP addresses](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-eips.html#transfer-EIPs-intro) in the *Amazon VPC User Guide*.
 3996   4006   
     *
 3997   4007   
     * When you transfer an Elastic IP address, there is a two-step handshake between the source and transfer Amazon Web Services accounts. When the source account starts the transfer, the transfer account has seven days to accept the Elastic IP address transfer. During those seven days, the source account can view the pending transfer by using this action. After seven days, the transfer expires and ownership of the Elastic IP address returns to the source account. Accepted transfers are visible to the source account for 14 days after the transfers have been accepted.
 3998   4008   
     */
 3999   4009   
    public suspend fun describeAddressTransfers(input: DescribeAddressTransfersRequest = DescribeAddressTransfersRequest { }): DescribeAddressTransfersResponse
 4000   4010   
 4001   4011   
    /**
 4002   4012   
     * Describes the specified Elastic IP addresses or all of your Elastic IP addresses.
 4003   4013   
     *
@@ -6401,6411 +6460,6477 @@
 6421   6431   
    /**
 6422   6432   
     * Locks an Amazon EBS snapshot in either *governance* or *compliance* mode to protect it against accidental or malicious deletions for a specific duration. A locked snapshot can't be deleted.
 6423   6433   
     *
 6424   6434   
     * You can also use this action to modify the lock settings for a snapshot that is already locked. The allowed modifications depend on the lock mode and lock state:
 6425   6435   
     * + If the snapshot is locked in governance mode, you can modify the lock mode and the lock duration or lock expiration date.
 6426   6436   
     * + If the snapshot is locked in compliance mode and it is in the cooling-off period, you can modify the lock mode and the lock duration or lock expiration date.
 6427   6437   
     * + If the snapshot is locked in compliance mode and the cooling-off period has lapsed, you can only increase the lock duration or extend the lock expiration date.
 6428   6438   
     */
 6429   6439   
    public suspend fun lockSnapshot(input: LockSnapshotRequest): LockSnapshotResponse
 6430   6440   
        6441  +
    /**
        6442  +
     * Modifies the account-level VPC Encryption Control configuration. This sets the encryption control mode and resource exclusions that apply to the VPCs in your account. VPC Encryption Control enables you to enforce encryption for all data in transit within and between VPCs to meet compliance requirements.
        6443  +
     *
        6444  +
     * For more information, see [Enforce VPC encryption in transit](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-encryption-controls.html) in the *Amazon VPC User Guide*.
        6445  +
     */
        6446  +
    public suspend fun modifyAccountVpcEncryptionControl(input: ModifyAccountVpcEncryptionControlRequest = ModifyAccountVpcEncryptionControlRequest { }): ModifyAccountVpcEncryptionControlResponse
        6447  +
 6431   6448   
    /**
 6432   6449   
     * Modifies an attribute of the specified Elastic IP address. For requirements, see [Using reverse DNS for email applications](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/elastic-ip-addresses-eip.html#Using_Elastic_Addressing_Reverse_DNS).
 6433   6450   
     */
 6434   6451   
    public suspend fun modifyAddressAttribute(input: ModifyAddressAttributeRequest): ModifyAddressAttributeResponse
 6435   6452   
 6436   6453   
    /**
 6437   6454   
     * Changes the opt-in status of the specified zone group for your account.
 6438   6455   
     */
 6439   6456   
    public suspend fun modifyAvailabilityZoneGroup(input: ModifyAvailabilityZoneGroupRequest): ModifyAvailabilityZoneGroupResponse
 6440   6457   
@@ -8116,8133 +8183,8199 @@
 8136   8153   
/**
 8137   8154   
 * Cancels a bundling operation for an instance store-backed Windows instance.
 8138   8155   
 */
 8139   8156   
public suspend inline fun Ec2Client.cancelBundleTask(crossinline block: CancelBundleTaskRequest.Builder.() -> Unit): CancelBundleTaskResponse = cancelBundleTask(CancelBundleTaskRequest.Builder().apply(block).build())
 8140   8157   
 8141   8158   
/**
 8142   8159   
 * Cancels the specified Capacity Reservation, releases the reserved capacity, and changes the Capacity Reservation's state to `cancelled`.
 8143   8160   
 *
 8144   8161   
 * You can cancel a Capacity Reservation that is in the following states:
 8145   8162   
 * + `assessing`
 8146         -
 * + `scheduled`
        8163  +
 * + `scheduled` — requires a cancellation quote. Use `CreateCapacityReservationCancellationQuote` to generate a quote, then pass the quote ID with `ApplyCancellationCharges` set to `commitment-wind-down`. The cancellation charge depends on how close the reservation is to its start date.
 8147   8164   
 * + `active` and there is no commitment duration or the commitment duration has elapsed.
 8148         -
 * + `active` during the commitment duration, if you provide a cancellation quote ID and accept the cancellation charges. Use `CreateCapacityReservationCancellationQuote` to generate a quote. The Capacity Reservation transitions to `cancelling` while charges are applied.
        8165  +
 * + `active` during the commitment duration — requires a cancellation quote. Use `CreateCapacityReservationCancellationQuote` to generate a quote, then pass the quote ID with `ApplyCancellationCharges` set to `commitment-wind-down`. The Capacity Reservation transitions to `cancelling` while charges are applied.
        8166  +
 * + `delayed` — the commitment duration is waived, so no cancellation charge applies.
 8149   8167   
 *
 8150   8168   
 * You can't modify or cancel a Capacity Block. For more information, see [Capacity Blocks for ML](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-capacity-blocks.html).
 8151   8169   
 *
 8152         -
 * If a future-dated Capacity Reservation enters the `delayed` state, the commitment duration is waived, and you can cancel it as soon as it enters the `active` state.
 8153         -
 *
 8154   8170   
 * Instances running in the reserved capacity continue running until you stop them. Stopped instances that target the Capacity Reservation can no longer launch. Modify these instances to either target a different Capacity Reservation, launch On-Demand Instance capacity, or run in any open Capacity Reservation that has matching attributes and sufficient capacity.
 8155   8171   
 */
 8156   8172   
public suspend inline fun Ec2Client.cancelCapacityReservation(crossinline block: CancelCapacityReservationRequest.Builder.() -> Unit): CancelCapacityReservationResponse = cancelCapacityReservation(CancelCapacityReservationRequest.Builder().apply(block).build())
 8157   8173   
 8158   8174   
/**
 8159   8175   
 * Cancels one or more Capacity Reservation Fleets. When you cancel a Capacity Reservation Fleet, the following happens:
 8160   8176   
 * + The Capacity Reservation Fleet's status changes to `cancelled`.
 8161   8177   
 * + The individual Capacity Reservations in the Fleet are cancelled. Instances running in the Capacity Reservations at the time of cancelling the Fleet continue to run in shared capacity.
 8162   8178   
 * + The Fleet stops creating new Capacity Reservations.
 8163   8179   
 */
@@ -8697,8713 +8757,8773 @@
 8717   8733   
/**
 8718   8734   
 * Grants an Amazon Web Services-authorized account permission to attach the specified network interface to an instance in their account.
 8719   8735   
 *
 8720   8736   
 * You can grant permission to a single Amazon Web Services account only, and only one account at a time.
 8721   8737   
 */
 8722   8738   
public suspend inline fun Ec2Client.createNetworkInterfacePermission(crossinline block: CreateNetworkInterfacePermissionRequest.Builder.() -> Unit): CreateNetworkInterfacePermissionResponse = createNetworkInterfacePermission(CreateNetworkInterfacePermissionRequest.Builder().apply(block).build())
 8723   8739   
 8724   8740   
/**
 8725   8741   
 * Creates a placement group in which to launch instances. The strategy of the placement group determines how the instances are organized within the group.
 8726   8742   
 *
 8727         -
 * A `cluster` placement group is a logical grouping of instances within a single Availability Zone that benefit from low network latency, high network throughput. A `spread` placement group places instances on distinct hardware. A `partition` placement group places groups of instances in different partitions, where instances in one partition do not share the same hardware with instances in another partition. A `precision-time` placement group places instances on supported hardware with direct access to high-precision time sources in AWS infrastructure.
        8743  +
 * A `cluster` placement group is a logical grouping of instances within a single Availability Zone that benefit from low network latency, high network throughput. A `spread` placement group places instances on distinct hardware. A `partition` placement group places groups of instances in different partitions, where instances in one partition do not share the same hardware with instances in another partition. A `precision-time` placement group places instances on supported hardware with direct access to high-precision time sources in Amazon Web Services infrastructure.
 8728   8744   
 *
 8729   8745   
 * For more information, see [Placement groups](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/placement-groups.html) in the *Amazon EC2 User Guide*.
 8730   8746   
 *
 8731   8747   
 * @sample aws.sdk.kotlin.services.ec2.samples.CreatePlacementGroup.sample
 8732   8748   
 */
 8733   8749   
public suspend inline fun Ec2Client.createPlacementGroup(crossinline block: CreatePlacementGroupRequest.Builder.() -> Unit): CreatePlacementGroupResponse = createPlacementGroup(CreatePlacementGroupRequest.Builder().apply(block).build())
 8734   8750   
 8735   8751   
/**
 8736   8752   
 * Creates a public IPv4 address pool. A public IPv4 pool is an EC2 IP address pool required for the public IPv4 CIDRs that you own and bring to Amazon Web Services to manage with IPAM. IPv6 addresses you bring to Amazon Web Services, however, use IPAM pools only. To monitor the status of pool creation, use [DescribePublicIpv4Pools](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribePublicIpv4Pools.html).
 8737   8753   
 */
@@ -9850,9866 +9909,9932 @@
 9870   9886   
 * + `vpc-max-elastic-ips`: The maximum number of Elastic IP addresses that you can allocate.
 9871   9887   
 * + `vpc-max-security-groups-per-interface`: The maximum number of security groups that you can assign to a network interface.
 9872   9888   
 *
 9873   9889   
 * 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.
 9874   9890   
 *
 9875   9891   
 * @sample aws.sdk.kotlin.services.ec2.samples.DescribeAccountAttributes.sample
 9876   9892   
 * @sample aws.sdk.kotlin.services.ec2.samples.DescribeAccountAttributes.sample2
 9877   9893   
 */
 9878   9894   
public suspend inline fun Ec2Client.describeAccountAttributes(crossinline block: DescribeAccountAttributesRequest.Builder.() -> Unit): DescribeAccountAttributesResponse = describeAccountAttributes(DescribeAccountAttributesRequest.Builder().apply(block).build())
 9879   9895   
        9896  +
/**
        9897  +
 * Describes the account-level VPC Encryption Control configuration for your account. VPC Encryption Control enables you to enforce encryption for all data in transit within and between VPCs to meet compliance requirements.
        9898  +
 *
        9899  +
 * For more information, see [Enforce VPC encryption in transit](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-encryption-controls.html) in the *Amazon VPC User Guide*.
        9900  +
 */
        9901  +
public suspend inline fun Ec2Client.describeAccountVpcEncryptionControl(crossinline block: DescribeAccountVpcEncryptionControlRequest.Builder.() -> Unit): DescribeAccountVpcEncryptionControlResponse = describeAccountVpcEncryptionControl(DescribeAccountVpcEncryptionControlRequest.Builder().apply(block).build())
        9902  +
 9880   9903   
/**
 9881   9904   
 * Describes an Elastic IP address transfer. For more information, see [Transfer Elastic IP addresses](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-eips.html#transfer-EIPs-intro) in the *Amazon VPC User Guide*.
 9882   9905   
 *
 9883   9906   
 * When you transfer an Elastic IP address, there is a two-step handshake between the source and transfer Amazon Web Services accounts. When the source account starts the transfer, the transfer account has seven days to accept the Elastic IP address transfer. During those seven days, the source account can view the pending transfer by using this action. After seven days, the transfer expires and ownership of the Elastic IP address returns to the source account. Accepted transfers are visible to the source account for 14 days after the transfers have been accepted.
 9884   9907   
 */
 9885   9908   
public suspend inline fun Ec2Client.describeAddressTransfers(crossinline block: DescribeAddressTransfersRequest.Builder.() -> Unit): DescribeAddressTransfersResponse = describeAddressTransfers(DescribeAddressTransfersRequest.Builder().apply(block).build())
 9886   9909   
 9887   9910   
/**
 9888   9911   
 * Describes the specified Elastic IP addresses or all of your Elastic IP addresses.
 9889   9912   
 *
@@ -12287,12310 +12346,12376 @@
12307  12330   
/**
12308  12331   
 * Locks an Amazon EBS snapshot in either *governance* or *compliance* mode to protect it against accidental or malicious deletions for a specific duration. A locked snapshot can't be deleted.
12309  12332   
 *
12310  12333   
 * You can also use this action to modify the lock settings for a snapshot that is already locked. The allowed modifications depend on the lock mode and lock state:
12311  12334   
 * + If the snapshot is locked in governance mode, you can modify the lock mode and the lock duration or lock expiration date.
12312  12335   
 * + If the snapshot is locked in compliance mode and it is in the cooling-off period, you can modify the lock mode and the lock duration or lock expiration date.
12313  12336   
 * + If the snapshot is locked in compliance mode and the cooling-off period has lapsed, you can only increase the lock duration or extend the lock expiration date.
12314  12337   
 */
12315  12338   
public suspend inline fun Ec2Client.lockSnapshot(crossinline block: LockSnapshotRequest.Builder.() -> Unit): LockSnapshotResponse = lockSnapshot(LockSnapshotRequest.Builder().apply(block).build())
12316  12339   
       12340  +
/**
       12341  +
 * Modifies the account-level VPC Encryption Control configuration. This sets the encryption control mode and resource exclusions that apply to the VPCs in your account. VPC Encryption Control enables you to enforce encryption for all data in transit within and between VPCs to meet compliance requirements.
       12342  +
 *
       12343  +
 * For more information, see [Enforce VPC encryption in transit](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-encryption-controls.html) in the *Amazon VPC User Guide*.
       12344  +
 */
       12345  +
public suspend inline fun Ec2Client.modifyAccountVpcEncryptionControl(crossinline block: ModifyAccountVpcEncryptionControlRequest.Builder.() -> Unit): ModifyAccountVpcEncryptionControlResponse = modifyAccountVpcEncryptionControl(ModifyAccountVpcEncryptionControlRequest.Builder().apply(block).build())
       12346  +
12317  12347   
/**
12318  12348   
 * Modifies an attribute of the specified Elastic IP address. For requirements, see [Using reverse DNS for email applications](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/elastic-ip-addresses-eip.html#Using_Elastic_Addressing_Reverse_DNS).
12319  12349   
 */
12320  12350   
public suspend inline fun Ec2Client.modifyAddressAttribute(crossinline block: ModifyAddressAttributeRequest.Builder.() -> Unit): ModifyAddressAttributeResponse = modifyAddressAttribute(ModifyAddressAttributeRequest.Builder().apply(block).build())
12321  12351   
12322  12352   
/**
12323  12353   
 * Changes the opt-in status of the specified zone group for your account.
12324  12354   
 */
12325  12355   
public suspend inline fun Ec2Client.modifyAvailabilityZoneGroup(crossinline block: ModifyAvailabilityZoneGroupRequest.Builder.() -> Unit): ModifyAvailabilityZoneGroupResponse = modifyAvailabilityZoneGroup(ModifyAvailabilityZoneGroupRequest.Builder().apply(block).build())
12326  12356   

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

@@ -1,1 +219,239 @@
    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  +
private val awsSdkKotlinServicesEc2ModelHostCpuOptionsRequestDslBuilderRef = aws.sdk.kotlin.services.ec2.model.HostCpuOptionsRequest
    7      8   
    8      9   
public class AllocateHostsRequest private constructor(builder: Builder) {
    9     10   
    /**
   10     11   
     * The IDs of the Outpost hardware assets on which to allocate the Dedicated Hosts. Targeting specific hardware assets on an Outpost can help to minimize latency between your workloads. This parameter is supported only if you specify **OutpostArn**. If you are allocating the Dedicated Hosts in a Region, omit this parameter.
   11     12   
     * + If you specify this parameter, you can omit **Quantity**. In this case, Amazon EC2 allocates a Dedicated Host on each specified hardware asset.
   12     13   
     * + If you specify both **AssetIds** and **Quantity**, then the value for **Quantity** must be equal to the number of asset IDs specified.
   13     14   
     */
   14     15   
    public val assetIds: List<String>? = builder.assetIds
   15     16   
    /**
   16     17   
     * Indicates whether the host accepts any untargeted instance launches that match its instance type configuration, or if it only accepts Host tenancy instance launches that specify its unique host ID. For more information, see [ Understanding auto-placement and affinity](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/how-dedicated-hosts-work.html#dedicated-hosts-understanding) in the *Amazon EC2 User Guide*.
   17     18   
     *
   18     19   
     * Default: `off`
   19     20   
     */
   20     21   
    public val autoPlacement: aws.sdk.kotlin.services.ec2.model.AutoPlacement? = builder.autoPlacement
   21     22   
    /**
   22     23   
     * The Availability Zone in which to allocate the Dedicated Host.
   23     24   
     */
   24     25   
    public val availabilityZone: kotlin.String? = builder.availabilityZone
   25     26   
    /**
   26     27   
     * The ID of the Availability Zone.
   27     28   
     */
   28     29   
    public val availabilityZoneId: kotlin.String? = builder.availabilityZoneId
   29     30   
    /**
   30     31   
     * Unique, case-sensitive identifier that you provide to ensure the idempotency of the request. For more information, see [Ensuring Idempotency](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/Run_Instance_Idempotency.html).
   31     32   
     */
   32     33   
    public val clientToken: kotlin.String? = builder.clientToken
          34  +
    /**
          35  +
     * The CPU configuration options to apply to the Dedicated Host.
          36  +
     */
          37  +
    public val cpuOptions: aws.sdk.kotlin.services.ec2.model.HostCpuOptionsRequest? = builder.cpuOptions
   33     38   
    /**
   34     39   
     * Indicates whether to enable or disable host maintenance for the Dedicated Host. For more information, see [Host maintenance](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/dedicated-hosts-maintenance.html) in the *Amazon EC2 User Guide*.
   35     40   
     */
   36     41   
    public val hostMaintenance: aws.sdk.kotlin.services.ec2.model.HostMaintenance? = builder.hostMaintenance
   37     42   
    /**
   38     43   
     * Indicates whether to enable or disable host recovery for the Dedicated Host. Host recovery is disabled by default. For more information, see [ Host recovery](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/dedicated-hosts-recovery.html) in the *Amazon EC2 User Guide*.
   39     44   
     *
   40     45   
     * Default: `off`
   41     46   
     */
   42     47   
    public val hostRecovery: aws.sdk.kotlin.services.ec2.model.HostRecovery? = builder.hostRecovery
   43     48   
    /**
   44     49   
     * Specifies the instance family to be supported by the Dedicated Hosts. If you specify an instance family, the Dedicated Hosts support multiple instance types within that instance family.
   45     50   
     *
   46     51   
     * If you want the Dedicated Hosts to support a specific instance type only, omit this parameter and specify **InstanceType** instead. You cannot specify **InstanceFamily** and **InstanceType** in the same request.
   47     52   
     */
   48     53   
    public val instanceFamily: kotlin.String? = builder.instanceFamily
   49     54   
    /**
   50     55   
     * Specifies the instance type to be supported by the Dedicated Hosts. If you specify an instance type, the Dedicated Hosts support instances of the specified instance type only.
   51     56   
     *
   52     57   
     * If you want the Dedicated Hosts to support multiple instance types in a specific instance family, omit this parameter and specify **InstanceFamily** instead. You cannot specify **InstanceType** and **InstanceFamily** in the same request.
   53     58   
     */
   54     59   
    public val instanceType: kotlin.String? = builder.instanceType
   55     60   
    /**
   56     61   
     * The Amazon Resource Name (ARN) of the Amazon Web Services Outpost on which to allocate the Dedicated Host. If you specify **OutpostArn**, you can optionally specify **AssetIds**.
   57     62   
     *
   58     63   
     * If you are allocating the Dedicated Host in a Region, omit this parameter.
   59     64   
     */
   60     65   
    public val outpostArn: kotlin.String? = builder.outpostArn
   61     66   
    /**
   62     67   
     * The number of Dedicated Hosts to allocate to your account with these parameters. If you are allocating the Dedicated Hosts on an Outpost, and you specify **AssetIds**, you can omit this parameter. In this case, Amazon EC2 allocates a Dedicated Host on each specified hardware asset. If you specify both **AssetIds** and **Quantity**, then the value that you specify for **Quantity** must be equal to the number of asset IDs specified.
   63     68   
     */
   64     69   
    public val quantity: kotlin.Int? = builder.quantity
   65     70   
    /**
   66     71   
     * The tags to apply to the Dedicated Host during creation.
   67     72   
     */
   68     73   
    public val tagSpecifications: List<TagSpecification>? = builder.tagSpecifications
   69     74   
   70     75   
    public companion object {
   71     76   
        public operator fun invoke(block: Builder.() -> kotlin.Unit): aws.sdk.kotlin.services.ec2.model.AllocateHostsRequest = Builder().apply(block).build()
   72     77   
    }
   73     78   
   74     79   
    override fun toString(): kotlin.String = buildString {
   75     80   
        append("AllocateHostsRequest(")
   76     81   
        append("assetIds=$assetIds,")
   77     82   
        append("autoPlacement=$autoPlacement,")
   78     83   
        append("availabilityZone=$availabilityZone,")
   79     84   
        append("availabilityZoneId=$availabilityZoneId,")
   80     85   
        append("clientToken=$clientToken,")
          86  +
        append("cpuOptions=$cpuOptions,")
   81     87   
        append("hostMaintenance=$hostMaintenance,")
   82     88   
        append("hostRecovery=$hostRecovery,")
   83     89   
        append("instanceFamily=$instanceFamily,")
   84     90   
        append("instanceType=$instanceType,")
   85     91   
        append("outpostArn=$outpostArn,")
   86     92   
        append("quantity=$quantity,")
   87     93   
        append("tagSpecifications=$tagSpecifications")
   88     94   
        append(")")
   89     95   
    }
   90     96   
   91     97   
    override fun hashCode(): kotlin.Int {
   92     98   
        var result = assetIds?.hashCode() ?: 0
   93     99   
        result = 31 * result + (this.autoPlacement?.hashCode() ?: 0)
   94    100   
        result = 31 * result + (this.availabilityZone?.hashCode() ?: 0)
   95    101   
        result = 31 * result + (this.availabilityZoneId?.hashCode() ?: 0)
   96    102   
        result = 31 * result + (this.clientToken?.hashCode() ?: 0)
         103  +
        result = 31 * result + (this.cpuOptions?.hashCode() ?: 0)
   97    104   
        result = 31 * result + (this.hostMaintenance?.hashCode() ?: 0)
   98    105   
        result = 31 * result + (this.hostRecovery?.hashCode() ?: 0)
   99    106   
        result = 31 * result + (this.instanceFamily?.hashCode() ?: 0)
  100    107   
        result = 31 * result + (this.instanceType?.hashCode() ?: 0)
  101    108   
        result = 31 * result + (this.outpostArn?.hashCode() ?: 0)
  102    109   
        result = 31 * result + (this.quantity ?: 0)
  103    110   
        result = 31 * result + (this.tagSpecifications?.hashCode() ?: 0)
  104    111   
        return result
  105    112   
    }
  106    113   
  107    114   
    override fun equals(other: kotlin.Any?): kotlin.Boolean {
  108    115   
        if (this === other) return true
  109    116   
        if (other == null || this::class != other::class) return false
  110    117   
  111    118   
        other as AllocateHostsRequest
  112    119   
  113    120   
        if (assetIds != other.assetIds) return false
  114    121   
        if (autoPlacement != other.autoPlacement) return false
  115    122   
        if (availabilityZone != other.availabilityZone) return false
  116    123   
        if (availabilityZoneId != other.availabilityZoneId) return false
  117    124   
        if (clientToken != other.clientToken) return false
         125  +
        if (cpuOptions != other.cpuOptions) return false
  118    126   
        if (hostMaintenance != other.hostMaintenance) return false
  119    127   
        if (hostRecovery != other.hostRecovery) return false
  120    128   
        if (instanceFamily != other.instanceFamily) return false
  121    129   
        if (instanceType != other.instanceType) return false
  122    130   
        if (outpostArn != other.outpostArn) return false
  123    131   
        if (quantity != other.quantity) return false
  124    132   
        if (tagSpecifications != other.tagSpecifications) return false
  125    133   
  126    134   
        return true
  127    135   
    }
  128    136   
  129    137   
    public inline fun copy(block: Builder.() -> kotlin.Unit = {}): aws.sdk.kotlin.services.ec2.model.AllocateHostsRequest = Builder(this).apply(block).build()
  130    138   
  131    139   
    @SdkDsl
  132    140   
    public class Builder {
  133    141   
        /**
  134    142   
         * The IDs of the Outpost hardware assets on which to allocate the Dedicated Hosts. Targeting specific hardware assets on an Outpost can help to minimize latency between your workloads. This parameter is supported only if you specify **OutpostArn**. If you are allocating the Dedicated Hosts in a Region, omit this parameter.
  135    143   
         * + If you specify this parameter, you can omit **Quantity**. In this case, Amazon EC2 allocates a Dedicated Host on each specified hardware asset.
  136    144   
         * + If you specify both **AssetIds** and **Quantity**, then the value for **Quantity** must be equal to the number of asset IDs specified.
  137    145   
         */
  138    146   
        public var assetIds: List<String>? = null
  139    147   
        /**
  140    148   
         * Indicates whether the host accepts any untargeted instance launches that match its instance type configuration, or if it only accepts Host tenancy instance launches that specify its unique host ID. For more information, see [ Understanding auto-placement and affinity](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/how-dedicated-hosts-work.html#dedicated-hosts-understanding) in the *Amazon EC2 User Guide*.
  141    149   
         *
  142    150   
         * Default: `off`
  143    151   
         */
  144    152   
        public var autoPlacement: aws.sdk.kotlin.services.ec2.model.AutoPlacement? = null
  145    153   
        /**
  146    154   
         * The Availability Zone in which to allocate the Dedicated Host.
  147    155   
         */
  148    156   
        public var availabilityZone: kotlin.String? = null
  149    157   
        /**
  150    158   
         * The ID of the Availability Zone.
  151    159   
         */
  152    160   
        public var availabilityZoneId: kotlin.String? = null
  153    161   
        /**
  154    162   
         * Unique, case-sensitive identifier that you provide to ensure the idempotency of the request. For more information, see [Ensuring Idempotency](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/Run_Instance_Idempotency.html).
  155    163   
         */
  156    164   
        public var clientToken: kotlin.String? = null
         165  +
        /**
         166  +
         * The CPU configuration options to apply to the Dedicated Host.
         167  +
         */
         168  +
        public var cpuOptions: aws.sdk.kotlin.services.ec2.model.HostCpuOptionsRequest? = null
  157    169   
        /**
  158    170   
         * Indicates whether to enable or disable host maintenance for the Dedicated Host. For more information, see [Host maintenance](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/dedicated-hosts-maintenance.html) in the *Amazon EC2 User Guide*.
  159    171   
         */
  160    172   
        public var hostMaintenance: aws.sdk.kotlin.services.ec2.model.HostMaintenance? = null
  161    173   
        /**
  162    174   
         * Indicates whether to enable or disable host recovery for the Dedicated Host. Host recovery is disabled by default. For more information, see [ Host recovery](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/dedicated-hosts-recovery.html) in the *Amazon EC2 User Guide*.
  163    175   
         *
  164    176   
         * Default: `off`
  165    177   
         */
  166    178   
        public var hostRecovery: aws.sdk.kotlin.services.ec2.model.HostRecovery? = null
  167    179   
        /**
  168    180   
         * Specifies the instance family to be supported by the Dedicated Hosts. If you specify an instance family, the Dedicated Hosts support multiple instance types within that instance family.
  169    181   
         *
  170    182   
         * If you want the Dedicated Hosts to support a specific instance type only, omit this parameter and specify **InstanceType** instead. You cannot specify **InstanceFamily** and **InstanceType** in the same request.
  171    183   
         */
  172    184   
        public var instanceFamily: kotlin.String? = null
  173    185   
        /**
  174    186   
         * Specifies the instance type to be supported by the Dedicated Hosts. If you specify an instance type, the Dedicated Hosts support instances of the specified instance type only.
  175    187   
         *
  176    188   
         * If you want the Dedicated Hosts to support multiple instance types in a specific instance family, omit this parameter and specify **InstanceFamily** instead. You cannot specify **InstanceType** and **InstanceFamily** in the same request.
  177    189   
         */
  178    190   
        public var instanceType: kotlin.String? = null
  179    191   
        /**
  180    192   
         * The Amazon Resource Name (ARN) of the Amazon Web Services Outpost on which to allocate the Dedicated Host. If you specify **OutpostArn**, you can optionally specify **AssetIds**.
  181    193   
         *
  182    194   
         * If you are allocating the Dedicated Host in a Region, omit this parameter.
  183    195   
         */
  184    196   
        public var outpostArn: kotlin.String? = null
  185    197   
        /**
  186    198   
         * The number of Dedicated Hosts to allocate to your account with these parameters. If you are allocating the Dedicated Hosts on an Outpost, and you specify **AssetIds**, you can omit this parameter. In this case, Amazon EC2 allocates a Dedicated Host on each specified hardware asset. If you specify both **AssetIds** and **Quantity**, then the value that you specify for **Quantity** must be equal to the number of asset IDs specified.
  187    199   
         */
  188    200   
        public var quantity: kotlin.Int? = null
  189    201   
        /**
  190    202   
         * The tags to apply to the Dedicated Host during creation.
  191    203   
         */
  192    204   
        public var tagSpecifications: List<TagSpecification>? = null
  193    205   
  194    206   
        @PublishedApi
  195    207   
        internal constructor()
  196    208   
        @PublishedApi
  197    209   
        internal constructor(x: aws.sdk.kotlin.services.ec2.model.AllocateHostsRequest) : this() {
  198    210   
            this.assetIds = x.assetIds
  199    211   
            this.autoPlacement = x.autoPlacement
  200    212   
            this.availabilityZone = x.availabilityZone
  201    213   
            this.availabilityZoneId = x.availabilityZoneId
  202    214   
            this.clientToken = x.clientToken
         215  +
            this.cpuOptions = x.cpuOptions
  203    216   
            this.hostMaintenance = x.hostMaintenance
  204    217   
            this.hostRecovery = x.hostRecovery
  205    218   
            this.instanceFamily = x.instanceFamily
  206    219   
            this.instanceType = x.instanceType
  207    220   
            this.outpostArn = x.outpostArn
  208    221   
            this.quantity = x.quantity
  209    222   
            this.tagSpecifications = x.tagSpecifications
  210    223   
        }
  211    224   
  212    225   
        @PublishedApi
  213    226   
        internal fun build(): aws.sdk.kotlin.services.ec2.model.AllocateHostsRequest = AllocateHostsRequest(this)
  214    227   
         228  +
        /**
         229  +
         * construct an [aws.sdk.kotlin.services.ec2.model.HostCpuOptionsRequest] inside the given [block]
         230  +
         */
         231  +
        public fun cpuOptions(block: aws.sdk.kotlin.services.ec2.model.HostCpuOptionsRequest.Builder.() -> kotlin.Unit) {
         232  +
            this.cpuOptions = awsSdkKotlinServicesEc2ModelHostCpuOptionsRequestDslBuilderRef(block)
         233  +
        }
         234  +
  215    235   
        internal fun correctErrors(): Builder {
  216    236   
            return this
  217    237   
        }
  218    238   
    }
  219    239   
}

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

@@ -1,1 +72,79 @@
    5      5   
import kotlin.collections.List
    6      6   
    7      7   
public sealed class AllocationState {
    8      8   
    public abstract val value: kotlin.String
    9      9   
   10     10   
    public object Available : aws.sdk.kotlin.services.ec2.model.AllocationState() {
   11     11   
        override val value: kotlin.String = "available"
   12     12   
        override fun toString(): kotlin.String = "Available"
   13     13   
    }
   14     14   
          15  +
    public object Configuring : aws.sdk.kotlin.services.ec2.model.AllocationState() {
          16  +
        override val value: kotlin.String = "configuring"
          17  +
        override fun toString(): kotlin.String = "Configuring"
          18  +
    }
          19  +
   15     20   
    public object Pending : aws.sdk.kotlin.services.ec2.model.AllocationState() {
   16     21   
        override val value: kotlin.String = "pending"
   17     22   
        override fun toString(): kotlin.String = "Pending"
   18     23   
    }
   19     24   
   20     25   
    public object PermanentFailure : aws.sdk.kotlin.services.ec2.model.AllocationState() {
   21     26   
        override val value: kotlin.String = "permanent-failure"
   22     27   
        override fun toString(): kotlin.String = "PermanentFailure"
   23     28   
    }
   24     29   
   25     30   
    public object Released : aws.sdk.kotlin.services.ec2.model.AllocationState() {
   26     31   
        override val value: kotlin.String = "released"
   27     32   
        override fun toString(): kotlin.String = "Released"
   28     33   
    }
   29     34   
   30     35   
    public object ReleasedPermanentFailure : aws.sdk.kotlin.services.ec2.model.AllocationState() {
   31     36   
        override val value: kotlin.String = "released-permanent-failure"
   32     37   
        override fun toString(): kotlin.String = "ReleasedPermanentFailure"
   33     38   
    }
   34     39   
   35     40   
    public object UnderAssessment : aws.sdk.kotlin.services.ec2.model.AllocationState() {
   36     41   
        override val value: kotlin.String = "under-assessment"
   37     42   
        override fun toString(): kotlin.String = "UnderAssessment"
   38     43   
    }
   39     44   
   40     45   
    public data class SdkUnknown(override val value: kotlin.String) : aws.sdk.kotlin.services.ec2.model.AllocationState() {
   41     46   
        override fun toString(): kotlin.String = "SdkUnknown($value)"
   42     47   
    }
   43     48   
   44     49   
    public companion object {
   45     50   
        /**
   46     51   
         * Convert a raw value to one of the sealed variants or [SdkUnknown]
   47     52   
         */
   48     53   
        public fun fromValue(value: kotlin.String): aws.sdk.kotlin.services.ec2.model.AllocationState = when (value) {
   49     54   
            "available" -> Available
          55  +
            "configuring" -> Configuring
   50     56   
            "pending" -> Pending
   51     57   
            "permanent-failure" -> PermanentFailure
   52     58   
            "released" -> Released
   53     59   
            "released-permanent-failure" -> ReleasedPermanentFailure
   54     60   
            "under-assessment" -> UnderAssessment
   55     61   
            else -> SdkUnknown(value)
   56     62   
        }
   57     63   
   58     64   
        /**
   59     65   
         * Get a list of all possible variants
   60     66   
         */
   61     67   
        public fun values(): kotlin.collections.List<aws.sdk.kotlin.services.ec2.model.AllocationState> = values
   62     68   
   63     69   
        private val values: kotlin.collections.List<aws.sdk.kotlin.services.ec2.model.AllocationState> by lazy { listOf(
   64     70   
            Available,
          71  +
            Configuring,
   65     72   
            Pending,
   66     73   
            PermanentFailure,
   67     74   
            Released,
   68     75   
            ReleasedPermanentFailure,
   69     76   
            UnderAssessment,
   70     77   
        ) }
   71     78   
    }
   72     79   
}

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

@@ -1,1 +133,145 @@
   18     18   
     * + `original-volume-type` - The original volume type of the volume (standard | io1 | io2 | gp2 | sc1 | st1).
   19     19   
     * + `originalMultiAttachEnabled` - Indicates whether Multi-Attach support was enabled (true | false).
   20     20   
     * + `start-time` - The modification start time.
   21     21   
     * + `target-iops` - The target IOPS rate of the volume.
   22     22   
     * + `target-size` - The target size of the volume, in GiB.
   23     23   
     * + `target-volume-type` - The target volume type of the volume (standard | io1 | io2 | gp2 | sc1 | st1).
   24     24   
     * + `targetMultiAttachEnabled` - Indicates whether Multi-Attach support is to be enabled (true | false).
   25     25   
     * + `volume-id` - The ID of the volume.
   26     26   
     */
   27     27   
    public val filters: List<Filter>? = builder.filters
          28  +
    /**
          29  +
     * Indicates whether to include managed resources in the output. If this parameter is set to `true`, the output includes resources that are managed by Amazon Web Services services, even if managed resource visibility is set to hidden.
          30  +
     */
          31  +
    public val includeManagedResources: kotlin.Boolean? = builder.includeManagedResources
   28     32   
    /**
   29     33   
     * The maximum number of results (up to a limit of 500) to be returned in a paginated request. For more information, see [Pagination](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/Query-Requests.html#api-pagination).
   30     34   
     */
   31     35   
    public val maxResults: kotlin.Int? = builder.maxResults
   32     36   
    /**
   33     37   
     * The token returned from a previous paginated request. Pagination continues from the end of the items returned by the previous request.
   34     38   
     */
   35     39   
    public val nextToken: kotlin.String? = builder.nextToken
   36     40   
    /**
   37     41   
     * The IDs of the volumes.
   38     42   
     */
   39     43   
    public val volumeIds: List<String>? = builder.volumeIds
   40     44   
   41     45   
    public companion object {
   42     46   
        public operator fun invoke(block: Builder.() -> kotlin.Unit): aws.sdk.kotlin.services.ec2.model.DescribeVolumesModificationsRequest = Builder().apply(block).build()
   43     47   
    }
   44     48   
   45     49   
    override fun toString(): kotlin.String = buildString {
   46     50   
        append("DescribeVolumesModificationsRequest(")
   47     51   
        append("dryRun=$dryRun,")
   48     52   
        append("filters=$filters,")
          53  +
        append("includeManagedResources=$includeManagedResources,")
   49     54   
        append("maxResults=$maxResults,")
   50     55   
        append("nextToken=$nextToken,")
   51     56   
        append("volumeIds=$volumeIds")
   52     57   
        append(")")
   53     58   
    }
   54     59   
   55     60   
    override fun hashCode(): kotlin.Int {
   56     61   
        var result = dryRun?.hashCode() ?: 0
   57     62   
        result = 31 * result + (this.filters?.hashCode() ?: 0)
          63  +
        result = 31 * result + (this.includeManagedResources?.hashCode() ?: 0)
   58     64   
        result = 31 * result + (this.maxResults ?: 0)
   59     65   
        result = 31 * result + (this.nextToken?.hashCode() ?: 0)
   60     66   
        result = 31 * result + (this.volumeIds?.hashCode() ?: 0)
   61     67   
        return result
   62     68   
    }
   63     69   
   64     70   
    override fun equals(other: kotlin.Any?): kotlin.Boolean {
   65     71   
        if (this === other) return true
   66     72   
        if (other == null || this::class != other::class) return false
   67     73   
   68     74   
        other as DescribeVolumesModificationsRequest
   69     75   
   70     76   
        if (dryRun != other.dryRun) return false
   71     77   
        if (filters != other.filters) return false
          78  +
        if (includeManagedResources != other.includeManagedResources) return false
   72     79   
        if (maxResults != other.maxResults) return false
   73     80   
        if (nextToken != other.nextToken) return false
   74     81   
        if (volumeIds != other.volumeIds) return false
   75     82   
   76     83   
        return true
   77     84   
    }
   78     85   
   79     86   
    public inline fun copy(block: Builder.() -> kotlin.Unit = {}): aws.sdk.kotlin.services.ec2.model.DescribeVolumesModificationsRequest = Builder(this).apply(block).build()
   80     87   
   81     88   
    @SdkDsl
   82     89   
    public class Builder {
   83     90   
        /**
   84     91   
         * 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`.
   85     92   
         */
   86     93   
        public var dryRun: kotlin.Boolean? = null
   87     94   
        /**
   88     95   
         * The filters.
   89     96   
         * + `modification-state` - The current modification state (modifying | optimizing | completed | failed).
   90     97   
         * + `original-iops` - The original IOPS rate of the volume.
   91     98   
         * + `original-size` - The original size of the volume, in GiB.
   92     99   
         * + `original-volume-type` - The original volume type of the volume (standard | io1 | io2 | gp2 | sc1 | st1).
   93    100   
         * + `originalMultiAttachEnabled` - Indicates whether Multi-Attach support was enabled (true | false).
   94    101   
         * + `start-time` - The modification start time.
   95    102   
         * + `target-iops` - The target IOPS rate of the volume.
   96    103   
         * + `target-size` - The target size of the volume, in GiB.
   97    104   
         * + `target-volume-type` - The target volume type of the volume (standard | io1 | io2 | gp2 | sc1 | st1).
   98    105   
         * + `targetMultiAttachEnabled` - Indicates whether Multi-Attach support is to be enabled (true | false).
   99    106   
         * + `volume-id` - The ID of the volume.
  100    107   
         */
  101    108   
        public var filters: List<Filter>? = null
         109  +
        /**
         110  +
         * Indicates whether to include managed resources in the output. If this parameter is set to `true`, the output includes resources that are managed by Amazon Web Services services, even if managed resource visibility is set to hidden.
         111  +
         */
         112  +
        public var includeManagedResources: kotlin.Boolean? = null
  102    113   
        /**
  103    114   
         * The maximum number of results (up to a limit of 500) to be returned in a paginated request. For more information, see [Pagination](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/Query-Requests.html#api-pagination).
  104    115   
         */
  105    116   
        public var maxResults: kotlin.Int? = null
  106    117   
        /**
  107    118   
         * The token returned from a previous paginated request. Pagination continues from the end of the items returned by the previous request.
  108    119   
         */
  109    120   
        public var nextToken: kotlin.String? = null
  110    121   
        /**
  111    122   
         * The IDs of the volumes.
  112    123   
         */
  113    124   
        public var volumeIds: List<String>? = null
  114    125   
  115    126   
        @PublishedApi
  116    127   
        internal constructor()
  117    128   
        @PublishedApi
  118    129   
        internal constructor(x: aws.sdk.kotlin.services.ec2.model.DescribeVolumesModificationsRequest) : this() {
  119    130   
            this.dryRun = x.dryRun
  120    131   
            this.filters = x.filters
         132  +
            this.includeManagedResources = x.includeManagedResources
  121    133   
            this.maxResults = x.maxResults
  122    134   
            this.nextToken = x.nextToken
  123    135   
            this.volumeIds = x.volumeIds
  124    136   
        }
  125    137   
  126    138   
        @PublishedApi
  127    139   
        internal fun build(): aws.sdk.kotlin.services.ec2.model.DescribeVolumesModificationsRequest = DescribeVolumesModificationsRequest(this)
  128    140   
  129    141   
        internal fun correctErrors(): Builder {
  130    142   
            return this

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

@@ -1,1 +76,81 @@
    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   
import aws.smithy.kotlin.runtime.time.Instant
    7      7   
    8      8   
private val awsSdkKotlinServicesEc2ModelAvailableCapacityDslBuilderRef = aws.sdk.kotlin.services.ec2.model.AvailableCapacity
           9  +
private val awsSdkKotlinServicesEc2ModelHostCpuOptionsDslBuilderRef = aws.sdk.kotlin.services.ec2.model.HostCpuOptions
    9     10   
private val awsSdkKotlinServicesEc2ModelHostPropertiesDslBuilderRef = aws.sdk.kotlin.services.ec2.model.HostProperties
   10     11   
   11     12   
/**
   12     13   
 * Describes the properties of the Dedicated Host.
   13     14   
 */
   14     15   
public class Host private constructor(builder: Builder) {
   15     16   
    /**
   16     17   
     * The time that the Dedicated Host was allocated.
   17     18   
     */
   18     19   
    public val allocationTime: aws.smithy.kotlin.runtime.time.Instant? = builder.allocationTime
   19     20   
    /**
   20     21   
     * Indicates whether the Dedicated Host supports multiple instance types of the same instance family. If the value is `on`, the Dedicated Host supports multiple instance types in the instance family. If the value is `off`, the Dedicated Host supports a single instance type only.
   21     22   
     */
   22     23   
    public val allowsMultipleInstanceTypes: aws.sdk.kotlin.services.ec2.model.AllowsMultipleInstanceTypes? = builder.allowsMultipleInstanceTypes
   23     24   
    /**
   24     25   
     * The ID of the Outpost hardware asset on which the Dedicated Host is allocated.
   25     26   
     */
   26     27   
    public val assetId: kotlin.String? = builder.assetId
   27     28   
    /**
   28     29   
     * Whether auto-placement is on or off.
   29     30   
     */
   30     31   
    public val autoPlacement: aws.sdk.kotlin.services.ec2.model.AutoPlacement? = builder.autoPlacement
   31     32   
    /**
   32     33   
     * The Availability Zone of the Dedicated Host.
   33     34   
     */
   34     35   
    public val availabilityZone: kotlin.String? = builder.availabilityZone
   35     36   
    /**
   36     37   
     * The ID of the Availability Zone in which the Dedicated Host is allocated.
   37     38   
     */
   38     39   
    public val availabilityZoneId: kotlin.String? = builder.availabilityZoneId
   39     40   
    /**
   40     41   
     * Information about the instances running on the Dedicated Host.
   41     42   
     */
   42     43   
    public val availableCapacity: aws.sdk.kotlin.services.ec2.model.AvailableCapacity? = builder.availableCapacity
   43     44   
    /**
   44     45   
     * Unique, case-sensitive identifier that you provide to ensure the idempotency of the request. For more information, see [Ensuring Idempotency](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/Run_Instance_Idempotency.html).
   45     46   
     */
   46     47   
    public val clientToken: kotlin.String? = builder.clientToken
          48  +
    /**
          49  +
     * The CPU options for the Dedicated Host, including AMD Secure Encrypted Virtualization-Secure Nested Paging (AMD SEV-SNP) settings.
          50  +
     */
          51  +
    public val cpuOptions: aws.sdk.kotlin.services.ec2.model.HostCpuOptions? = builder.cpuOptions
   47     52   
    /**
   48     53   
     * The ID of the Dedicated Host.
   49     54   
     */
   50     55   
    public val hostId: kotlin.String? = builder.hostId
   51     56   
    /**
   52     57   
     * Indicates whether host maintenance is enabled or disabled for the Dedicated Host.
   53     58   
     */
   54     59   
    public val hostMaintenance: aws.sdk.kotlin.services.ec2.model.HostMaintenance? = builder.hostMaintenance
   55     60   
    /**
   56     61   
     * The hardware specifications of the Dedicated Host.
@@ -80,85 +244,256 @@
  100    105   
    override fun toString(): kotlin.String = buildString {
  101    106   
        append("Host(")
  102    107   
        append("allocationTime=$allocationTime,")
  103    108   
        append("allowsMultipleInstanceTypes=$allowsMultipleInstanceTypes,")
  104    109   
        append("assetId=$assetId,")
  105    110   
        append("autoPlacement=$autoPlacement,")
  106    111   
        append("availabilityZone=$availabilityZone,")
  107    112   
        append("availabilityZoneId=$availabilityZoneId,")
  108    113   
        append("availableCapacity=$availableCapacity,")
  109    114   
        append("clientToken=$clientToken,")
         115  +
        append("cpuOptions=$cpuOptions,")
  110    116   
        append("hostId=$hostId,")
  111    117   
        append("hostMaintenance=$hostMaintenance,")
  112    118   
        append("hostProperties=$hostProperties,")
  113    119   
        append("hostRecovery=$hostRecovery,")
  114    120   
        append("hostReservationId=$hostReservationId,")
  115    121   
        append("instances=$instances,")
  116    122   
        append("memberOfServiceLinkedResourceGroup=$memberOfServiceLinkedResourceGroup,")
  117    123   
        append("outpostArn=$outpostArn,")
  118    124   
        append("ownerId=$ownerId,")
  119    125   
        append("releaseTime=$releaseTime,")
  120    126   
        append("state=$state,")
  121    127   
        append("tags=$tags")
  122    128   
        append(")")
  123    129   
    }
  124    130   
  125    131   
    override fun hashCode(): kotlin.Int {
  126    132   
        var result = allocationTime?.hashCode() ?: 0
  127    133   
        result = 31 * result + (this.allowsMultipleInstanceTypes?.hashCode() ?: 0)
  128    134   
        result = 31 * result + (this.assetId?.hashCode() ?: 0)
  129    135   
        result = 31 * result + (this.autoPlacement?.hashCode() ?: 0)
  130    136   
        result = 31 * result + (this.availabilityZone?.hashCode() ?: 0)
  131    137   
        result = 31 * result + (this.availabilityZoneId?.hashCode() ?: 0)
  132    138   
        result = 31 * result + (this.availableCapacity?.hashCode() ?: 0)
  133    139   
        result = 31 * result + (this.clientToken?.hashCode() ?: 0)
         140  +
        result = 31 * result + (this.cpuOptions?.hashCode() ?: 0)
  134    141   
        result = 31 * result + (this.hostId?.hashCode() ?: 0)
  135    142   
        result = 31 * result + (this.hostMaintenance?.hashCode() ?: 0)
  136    143   
        result = 31 * result + (this.hostProperties?.hashCode() ?: 0)
  137    144   
        result = 31 * result + (this.hostRecovery?.hashCode() ?: 0)
  138    145   
        result = 31 * result + (this.hostReservationId?.hashCode() ?: 0)
  139    146   
        result = 31 * result + (this.instances?.hashCode() ?: 0)
  140    147   
        result = 31 * result + (this.memberOfServiceLinkedResourceGroup?.hashCode() ?: 0)
  141    148   
        result = 31 * result + (this.outpostArn?.hashCode() ?: 0)
  142    149   
        result = 31 * result + (this.ownerId?.hashCode() ?: 0)
  143    150   
        result = 31 * result + (this.releaseTime?.hashCode() ?: 0)
  144    151   
        result = 31 * result + (this.state?.hashCode() ?: 0)
  145    152   
        result = 31 * result + (this.tags?.hashCode() ?: 0)
  146    153   
        return result
  147    154   
    }
  148    155   
  149    156   
    override fun equals(other: kotlin.Any?): kotlin.Boolean {
  150    157   
        if (this === other) return true
  151    158   
        if (other == null || this::class != other::class) return false
  152    159   
  153    160   
        other as Host
  154    161   
  155    162   
        if (allocationTime != other.allocationTime) return false
  156    163   
        if (allowsMultipleInstanceTypes != other.allowsMultipleInstanceTypes) return false
  157    164   
        if (assetId != other.assetId) return false
  158    165   
        if (autoPlacement != other.autoPlacement) return false
  159    166   
        if (availabilityZone != other.availabilityZone) return false
  160    167   
        if (availabilityZoneId != other.availabilityZoneId) return false
  161    168   
        if (availableCapacity != other.availableCapacity) return false
  162    169   
        if (clientToken != other.clientToken) return false
         170  +
        if (cpuOptions != other.cpuOptions) return false
  163    171   
        if (hostId != other.hostId) return false
  164    172   
        if (hostMaintenance != other.hostMaintenance) return false
  165    173   
        if (hostProperties != other.hostProperties) return false
  166    174   
        if (hostRecovery != other.hostRecovery) return false
  167    175   
        if (hostReservationId != other.hostReservationId) return false
  168    176   
        if (instances != other.instances) return false
  169    177   
        if (memberOfServiceLinkedResourceGroup != other.memberOfServiceLinkedResourceGroup) return false
  170    178   
        if (outpostArn != other.outpostArn) return false
  171    179   
        if (ownerId != other.ownerId) return false
  172    180   
        if (releaseTime != other.releaseTime) return false
  173    181   
        if (state != other.state) return false
  174    182   
        if (tags != other.tags) return false
  175    183   
  176    184   
        return true
  177    185   
    }
  178    186   
  179    187   
    public inline fun copy(block: Builder.() -> kotlin.Unit = {}): aws.sdk.kotlin.services.ec2.model.Host = Builder(this).apply(block).build()
  180    188   
  181    189   
    @SdkDsl
  182    190   
    public class Builder {
  183    191   
        /**
  184    192   
         * The time that the Dedicated Host was allocated.
  185    193   
         */
  186    194   
        public var allocationTime: aws.smithy.kotlin.runtime.time.Instant? = null
  187    195   
        /**
  188    196   
         * Indicates whether the Dedicated Host supports multiple instance types of the same instance family. If the value is `on`, the Dedicated Host supports multiple instance types in the instance family. If the value is `off`, the Dedicated Host supports a single instance type only.
  189    197   
         */
  190    198   
        public var allowsMultipleInstanceTypes: aws.sdk.kotlin.services.ec2.model.AllowsMultipleInstanceTypes? = null
  191    199   
        /**
  192    200   
         * The ID of the Outpost hardware asset on which the Dedicated Host is allocated.
  193    201   
         */
  194    202   
        public var assetId: kotlin.String? = null
  195    203   
        /**
  196    204   
         * Whether auto-placement is on or off.
  197    205   
         */
  198    206   
        public var autoPlacement: aws.sdk.kotlin.services.ec2.model.AutoPlacement? = null
  199    207   
        /**
  200    208   
         * The Availability Zone of the Dedicated Host.
  201    209   
         */
  202    210   
        public var availabilityZone: kotlin.String? = null
  203    211   
        /**
  204    212   
         * The ID of the Availability Zone in which the Dedicated Host is allocated.
  205    213   
         */
  206    214   
        public var availabilityZoneId: kotlin.String? = null
  207    215   
        /**
  208    216   
         * Information about the instances running on the Dedicated Host.
  209    217   
         */
  210    218   
        public var availableCapacity: aws.sdk.kotlin.services.ec2.model.AvailableCapacity? = null
  211    219   
        /**
  212    220   
         * Unique, case-sensitive identifier that you provide to ensure the idempotency of the request. For more information, see [Ensuring Idempotency](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/Run_Instance_Idempotency.html).
  213    221   
         */
  214    222   
        public var clientToken: kotlin.String? = null
         223  +
        /**
         224  +
         * The CPU options for the Dedicated Host, including AMD Secure Encrypted Virtualization-Secure Nested Paging (AMD SEV-SNP) settings.
         225  +
         */
         226  +
        public var cpuOptions: aws.sdk.kotlin.services.ec2.model.HostCpuOptions? = null
  215    227   
        /**
  216    228   
         * The ID of the Dedicated Host.
  217    229   
         */
  218    230   
        public var hostId: kotlin.String? = null
  219    231   
        /**
  220    232   
         * Indicates whether host maintenance is enabled or disabled for the Dedicated Host.
  221    233   
         */
  222    234   
        public var hostMaintenance: aws.sdk.kotlin.services.ec2.model.HostMaintenance? = null
  223    235   
        /**
  224    236   
         * The hardware specifications of the Dedicated Host.
@@ -246,258 +311,331 @@
  266    278   
        @PublishedApi
  267    279   
        internal constructor(x: aws.sdk.kotlin.services.ec2.model.Host) : this() {
  268    280   
            this.allocationTime = x.allocationTime
  269    281   
            this.allowsMultipleInstanceTypes = x.allowsMultipleInstanceTypes
  270    282   
            this.assetId = x.assetId
  271    283   
            this.autoPlacement = x.autoPlacement
  272    284   
            this.availabilityZone = x.availabilityZone
  273    285   
            this.availabilityZoneId = x.availabilityZoneId
  274    286   
            this.availableCapacity = x.availableCapacity
  275    287   
            this.clientToken = x.clientToken
         288  +
            this.cpuOptions = x.cpuOptions
  276    289   
            this.hostId = x.hostId
  277    290   
            this.hostMaintenance = x.hostMaintenance
  278    291   
            this.hostProperties = x.hostProperties
  279    292   
            this.hostRecovery = x.hostRecovery
  280    293   
            this.hostReservationId = x.hostReservationId
  281    294   
            this.instances = x.instances
  282    295   
            this.memberOfServiceLinkedResourceGroup = x.memberOfServiceLinkedResourceGroup
  283    296   
            this.outpostArn = x.outpostArn
  284    297   
            this.ownerId = x.ownerId
  285    298   
            this.releaseTime = x.releaseTime
  286    299   
            this.state = x.state
  287    300   
            this.tags = x.tags
  288    301   
        }
  289    302   
  290    303   
        @PublishedApi
  291    304   
        internal fun build(): aws.sdk.kotlin.services.ec2.model.Host = Host(this)
  292    305   
  293    306   
        /**
  294    307   
         * construct an [aws.sdk.kotlin.services.ec2.model.AvailableCapacity] inside the given [block]
  295    308   
         */
  296    309   
        public fun availableCapacity(block: aws.sdk.kotlin.services.ec2.model.AvailableCapacity.Builder.() -> kotlin.Unit) {
  297    310   
            this.availableCapacity = awsSdkKotlinServicesEc2ModelAvailableCapacityDslBuilderRef(block)
  298    311   
        }
  299    312   
         313  +
        /**
         314  +
         * construct an [aws.sdk.kotlin.services.ec2.model.HostCpuOptions] inside the given [block]
         315  +
         */
         316  +
        public fun cpuOptions(block: aws.sdk.kotlin.services.ec2.model.HostCpuOptions.Builder.() -> kotlin.Unit) {
         317  +
            this.cpuOptions = awsSdkKotlinServicesEc2ModelHostCpuOptionsDslBuilderRef(block)
         318  +
        }
         319  +
  300    320   
        /**
  301    321   
         * construct an [aws.sdk.kotlin.services.ec2.model.HostProperties] inside the given [block]
  302    322   
         */
  303    323   
        public fun hostProperties(block: aws.sdk.kotlin.services.ec2.model.HostProperties.Builder.() -> kotlin.Unit) {
  304    324   
            this.hostProperties = awsSdkKotlinServicesEc2ModelHostPropertiesDslBuilderRef(block)
  305    325   
        }
  306    326   
  307    327   
        internal fun correctErrors(): Builder {
  308    328   
            return this
  309    329   
        }

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

@@ -1,1 +50,55 @@
    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   
import aws.smithy.kotlin.runtime.time.Instant
    7      7   
           8  +
private val awsSdkKotlinServicesEc2ModelOperatorResponseDslBuilderRef = aws.sdk.kotlin.services.ec2.model.OperatorResponse
    8      9   
    9     10   
/**
   10     11   
 * Describes the modification status of an EBS volume.
   11     12   
 */
   12     13   
public class VolumeModification private constructor(builder: Builder) {
   13     14   
    /**
   14     15   
     * The modification completion or failure time.
   15     16   
     */
   16     17   
    public val endTime: aws.smithy.kotlin.runtime.time.Instant? = builder.endTime
   17     18   
    /**
   18     19   
     * The current modification state.
   19     20   
     */
   20     21   
    public val modificationState: aws.sdk.kotlin.services.ec2.model.VolumeModificationState? = builder.modificationState
          22  +
    /**
          23  +
     * The service provider that manages the resource.
          24  +
     */
          25  +
    public val operator: aws.sdk.kotlin.services.ec2.model.OperatorResponse? = builder.operator
   21     26   
    /**
   22     27   
     * The original IOPS rate of the volume.
   23     28   
     */
   24     29   
    public val originalIops: kotlin.Int? = builder.originalIops
   25     30   
    /**
   26     31   
     * The original setting for Amazon EBS Multi-Attach.
   27     32   
     */
   28     33   
    public val originalMultiAttachEnabled: kotlin.Boolean? = builder.originalMultiAttachEnabled
   29     34   
    /**
   30     35   
     * The original size of the volume, in GiB.
@@ -56,61 +190,202 @@
   76     81   
    public val volumeId: kotlin.String? = builder.volumeId
   77     82   
   78     83   
    public companion object {
   79     84   
        public operator fun invoke(block: Builder.() -> kotlin.Unit): aws.sdk.kotlin.services.ec2.model.VolumeModification = Builder().apply(block).build()
   80     85   
    }
   81     86   
   82     87   
    override fun toString(): kotlin.String = buildString {
   83     88   
        append("VolumeModification(")
   84     89   
        append("endTime=$endTime,")
   85     90   
        append("modificationState=$modificationState,")
          91  +
        append("operator=$operator,")
   86     92   
        append("originalIops=$originalIops,")
   87     93   
        append("originalMultiAttachEnabled=$originalMultiAttachEnabled,")
   88     94   
        append("originalSize=$originalSize,")
   89     95   
        append("originalThroughput=$originalThroughput,")
   90     96   
        append("originalVolumeType=$originalVolumeType,")
   91     97   
        append("progress=$progress,")
   92     98   
        append("startTime=$startTime,")
   93     99   
        append("statusMessage=$statusMessage,")
   94    100   
        append("targetIops=$targetIops,")
   95    101   
        append("targetMultiAttachEnabled=$targetMultiAttachEnabled,")
   96    102   
        append("targetSize=$targetSize,")
   97    103   
        append("targetThroughput=$targetThroughput,")
   98    104   
        append("targetVolumeType=$targetVolumeType,")
   99    105   
        append("volumeId=$volumeId")
  100    106   
        append(")")
  101    107   
    }
  102    108   
  103    109   
    override fun hashCode(): kotlin.Int {
  104    110   
        var result = endTime?.hashCode() ?: 0
  105    111   
        result = 31 * result + (this.modificationState?.hashCode() ?: 0)
         112  +
        result = 31 * result + (this.operator?.hashCode() ?: 0)
  106    113   
        result = 31 * result + (this.originalIops ?: 0)
  107    114   
        result = 31 * result + (this.originalMultiAttachEnabled?.hashCode() ?: 0)
  108    115   
        result = 31 * result + (this.originalSize ?: 0)
  109    116   
        result = 31 * result + (this.originalThroughput ?: 0)
  110    117   
        result = 31 * result + (this.originalVolumeType?.hashCode() ?: 0)
  111    118   
        result = 31 * result + (this.progress?.hashCode() ?: 0)
  112    119   
        result = 31 * result + (this.startTime?.hashCode() ?: 0)
  113    120   
        result = 31 * result + (this.statusMessage?.hashCode() ?: 0)
  114    121   
        result = 31 * result + (this.targetIops ?: 0)
  115    122   
        result = 31 * result + (this.targetMultiAttachEnabled?.hashCode() ?: 0)
  116    123   
        result = 31 * result + (this.targetSize ?: 0)
  117    124   
        result = 31 * result + (this.targetThroughput ?: 0)
  118    125   
        result = 31 * result + (this.targetVolumeType?.hashCode() ?: 0)
  119    126   
        result = 31 * result + (this.volumeId?.hashCode() ?: 0)
  120    127   
        return result
  121    128   
    }
  122    129   
  123    130   
    override fun equals(other: kotlin.Any?): kotlin.Boolean {
  124    131   
        if (this === other) return true
  125    132   
        if (other == null || this::class != other::class) return false
  126    133   
  127    134   
        other as VolumeModification
  128    135   
  129    136   
        if (endTime != other.endTime) return false
  130    137   
        if (modificationState != other.modificationState) return false
         138  +
        if (operator != other.operator) return false
  131    139   
        if (originalIops != other.originalIops) return false
  132    140   
        if (originalMultiAttachEnabled != other.originalMultiAttachEnabled) return false
  133    141   
        if (originalSize != other.originalSize) return false
  134    142   
        if (originalThroughput != other.originalThroughput) return false
  135    143   
        if (originalVolumeType != other.originalVolumeType) return false
  136    144   
        if (progress != other.progress) return false
  137    145   
        if (startTime != other.startTime) return false
  138    146   
        if (statusMessage != other.statusMessage) return false
  139    147   
        if (targetIops != other.targetIops) return false
  140    148   
        if (targetMultiAttachEnabled != other.targetMultiAttachEnabled) return false
  141    149   
        if (targetSize != other.targetSize) return false
  142    150   
        if (targetThroughput != other.targetThroughput) return false
  143    151   
        if (targetVolumeType != other.targetVolumeType) return false
  144    152   
        if (volumeId != other.volumeId) return false
  145    153   
  146    154   
        return true
  147    155   
    }
  148    156   
  149    157   
    public inline fun copy(block: Builder.() -> kotlin.Unit = {}): aws.sdk.kotlin.services.ec2.model.VolumeModification = Builder(this).apply(block).build()
  150    158   
  151    159   
    @SdkDsl
  152    160   
    public class Builder {
  153    161   
        /**
  154    162   
         * The modification completion or failure time.
  155    163   
         */
  156    164   
        public var endTime: aws.smithy.kotlin.runtime.time.Instant? = null
  157    165   
        /**
  158    166   
         * The current modification state.
  159    167   
         */
  160    168   
        public var modificationState: aws.sdk.kotlin.services.ec2.model.VolumeModificationState? = null
         169  +
        /**
         170  +
         * The service provider that manages the resource.
         171  +
         */
         172  +
        public var operator: aws.sdk.kotlin.services.ec2.model.OperatorResponse? = null
  161    173   
        /**
  162    174   
         * The original IOPS rate of the volume.
  163    175   
         */
  164    176   
        public var originalIops: kotlin.Int? = null
  165    177   
        /**
  166    178   
         * The original setting for Amazon EBS Multi-Attach.
  167    179   
         */
  168    180   
        public var originalMultiAttachEnabled: kotlin.Boolean? = null
  169    181   
        /**
  170    182   
         * The original size of the volume, in GiB.
@@ -194,206 +247,267 @@
  214    226   
         * The ID of the volume.
  215    227   
         */
  216    228   
        public var volumeId: kotlin.String? = null
  217    229   
  218    230   
        @PublishedApi
  219    231   
        internal constructor()
  220    232   
        @PublishedApi
  221    233   
        internal constructor(x: aws.sdk.kotlin.services.ec2.model.VolumeModification) : this() {
  222    234   
            this.endTime = x.endTime
  223    235   
            this.modificationState = x.modificationState
         236  +
            this.operator = x.operator
  224    237   
            this.originalIops = x.originalIops
  225    238   
            this.originalMultiAttachEnabled = x.originalMultiAttachEnabled
  226    239   
            this.originalSize = x.originalSize
  227    240   
            this.originalThroughput = x.originalThroughput
  228    241   
            this.originalVolumeType = x.originalVolumeType
  229    242   
            this.progress = x.progress
  230    243   
            this.startTime = x.startTime
  231    244   
            this.statusMessage = x.statusMessage
  232    245   
            this.targetIops = x.targetIops
  233    246   
            this.targetMultiAttachEnabled = x.targetMultiAttachEnabled
  234    247   
            this.targetSize = x.targetSize
  235    248   
            this.targetThroughput = x.targetThroughput
  236    249   
            this.targetVolumeType = x.targetVolumeType
  237    250   
            this.volumeId = x.volumeId
  238    251   
        }
  239    252   
  240    253   
        @PublishedApi
  241    254   
        internal fun build(): aws.sdk.kotlin.services.ec2.model.VolumeModification = VolumeModification(this)
  242    255   
         256  +
        /**
         257  +
         * construct an [aws.sdk.kotlin.services.ec2.model.OperatorResponse] inside the given [block]
         258  +
         */
         259  +
        public fun operator(block: aws.sdk.kotlin.services.ec2.model.OperatorResponse.Builder.() -> kotlin.Unit) {
         260  +
            this.operator = awsSdkKotlinServicesEc2ModelOperatorResponseDslBuilderRef(block)
         261  +
        }
         262  +
  243    263   
        internal fun correctErrors(): Builder {
  244    264   
            return this
  245    265   
        }
  246    266   
    }
  247    267   
}

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

@@ -1,1 +110,114 @@
    1      1   
// Code generated by smithy-kotlin codegen. DO NOT EDIT!
    2      2   
    3      3   
package aws.sdk.kotlin.services.ec2.serde
    4      4   
    5      5   
import aws.sdk.kotlin.services.ec2.model.AllocateHostsRequest
    6      6   
import aws.sdk.kotlin.services.ec2.model.AutoPlacement
           7  +
import aws.sdk.kotlin.services.ec2.model.HostCpuOptionsRequest
    7      8   
import aws.sdk.kotlin.services.ec2.model.HostMaintenance
    8      9   
import aws.sdk.kotlin.services.ec2.model.HostRecovery
    9     10   
import aws.sdk.kotlin.services.ec2.model.TagSpecification
   10     11   
import aws.smithy.kotlin.runtime.http.HttpBody
   11     12   
import aws.smithy.kotlin.runtime.http.HttpMethod
   12     13   
import aws.smithy.kotlin.runtime.http.operation.HttpSerializer
   13     14   
import aws.smithy.kotlin.runtime.http.request.HttpRequestBuilder
   14     15   
import aws.smithy.kotlin.runtime.http.request.url
   15     16   
import aws.smithy.kotlin.runtime.operation.ExecutionContext
   16     17   
import aws.smithy.kotlin.runtime.serde.SdkFieldDescriptor
   17     18   
import aws.smithy.kotlin.runtime.serde.SdkObjectDescriptor
   18     19   
import aws.smithy.kotlin.runtime.serde.SerialKind
   19     20   
import aws.smithy.kotlin.runtime.serde.asSdkSerializable
   20     21   
import aws.smithy.kotlin.runtime.serde.deserializeList
   21     22   
import aws.smithy.kotlin.runtime.serde.deserializeMap
   22     23   
import aws.smithy.kotlin.runtime.serde.deserializeStruct
   23     24   
import aws.smithy.kotlin.runtime.serde.field
   24     25   
import aws.smithy.kotlin.runtime.serde.formurl.FormUrlFlattened
   25     26   
import aws.smithy.kotlin.runtime.serde.formurl.FormUrlSerialName
   26     27   
import aws.smithy.kotlin.runtime.serde.formurl.FormUrlSerializer
   27     28   
import aws.smithy.kotlin.runtime.serde.formurl.QueryLiteral
   28     29   
import aws.smithy.kotlin.runtime.serde.serializeList
   29     30   
import aws.smithy.kotlin.runtime.serde.serializeMap
   30     31   
import aws.smithy.kotlin.runtime.serde.serializeStruct
   31     32   
   32     33   
   33     34   
internal class AllocateHostsOperationSerializer: HttpSerializer.NonStreaming<AllocateHostsRequest> {
   34     35   
    override fun serialize(context: ExecutionContext, input: AllocateHostsRequest): HttpRequestBuilder {
   35     36   
        val builder = HttpRequestBuilder()
   36     37   
        builder.method = HttpMethod.POST
   37     38   
   38     39   
        builder.url {
   39     40   
            path.encoded = "/"
   40     41   
        }
   41     42   
   42     43   
        val payload = serializeAllocateHostsOperationBody(context, input)
   43     44   
        builder.body = HttpBody.fromBytes(payload)
   44     45   
        if (builder.body !is HttpBody.Empty) {
   45     46   
            builder.headers.setMissing("Content-Type", "application/x-www-form-urlencoded")
   46     47   
        }
   47     48   
        return builder
   48     49   
    }
   49     50   
}
   50     51   
   51     52   
private fun serializeAllocateHostsOperationBody(context: ExecutionContext, input: AllocateHostsRequest): ByteArray {
   52     53   
    val serializer = FormUrlSerializer()
   53     54   
    val ASSETIDS_DESCRIPTOR = SdkFieldDescriptor(SerialKind.List, FormUrlSerialName("AssetId"), FormUrlFlattened)
   54     55   
    val AUTOPLACEMENT_DESCRIPTOR = SdkFieldDescriptor(SerialKind.Enum, FormUrlSerialName("AutoPlacement"))
   55     56   
    val AVAILABILITYZONE_DESCRIPTOR = SdkFieldDescriptor(SerialKind.String, FormUrlSerialName("AvailabilityZone"))
   56     57   
    val AVAILABILITYZONEID_DESCRIPTOR = SdkFieldDescriptor(SerialKind.String, FormUrlSerialName("AvailabilityZoneId"))
   57     58   
    val CLIENTTOKEN_DESCRIPTOR = SdkFieldDescriptor(SerialKind.String, FormUrlSerialName("ClientToken"))
          59  +
    val CPUOPTIONS_DESCRIPTOR = SdkFieldDescriptor(SerialKind.Struct, FormUrlSerialName("CpuOptions"))
   58     60   
    val HOSTMAINTENANCE_DESCRIPTOR = SdkFieldDescriptor(SerialKind.Enum, FormUrlSerialName("HostMaintenance"))
   59     61   
    val HOSTRECOVERY_DESCRIPTOR = SdkFieldDescriptor(SerialKind.Enum, FormUrlSerialName("HostRecovery"))
   60     62   
    val INSTANCEFAMILY_DESCRIPTOR = SdkFieldDescriptor(SerialKind.String, FormUrlSerialName("InstanceFamily"))
   61     63   
    val INSTANCETYPE_DESCRIPTOR = SdkFieldDescriptor(SerialKind.String, FormUrlSerialName("InstanceType"))
   62     64   
    val OUTPOSTARN_DESCRIPTOR = SdkFieldDescriptor(SerialKind.String, FormUrlSerialName("OutpostArn"))
   63     65   
    val QUANTITY_DESCRIPTOR = SdkFieldDescriptor(SerialKind.Integer, FormUrlSerialName("Quantity"))
   64     66   
    val TAGSPECIFICATIONS_DESCRIPTOR = SdkFieldDescriptor(SerialKind.List, FormUrlSerialName("TagSpecification"), FormUrlFlattened)
   65     67   
    val OBJ_DESCRIPTOR = SdkObjectDescriptor.build {
   66     68   
        trait(FormUrlSerialName("AllocateHostsRequest"))
   67     69   
        trait(QueryLiteral("Action", "AllocateHosts"))
   68     70   
        trait(QueryLiteral("Version", "2016-11-15"))
   69     71   
        field(ASSETIDS_DESCRIPTOR)
   70     72   
        field(AUTOPLACEMENT_DESCRIPTOR)
   71     73   
        field(AVAILABILITYZONE_DESCRIPTOR)
   72     74   
        field(AVAILABILITYZONEID_DESCRIPTOR)
   73     75   
        field(CLIENTTOKEN_DESCRIPTOR)
          76  +
        field(CPUOPTIONS_DESCRIPTOR)
   74     77   
        field(HOSTMAINTENANCE_DESCRIPTOR)
   75     78   
        field(HOSTRECOVERY_DESCRIPTOR)
   76     79   
        field(INSTANCEFAMILY_DESCRIPTOR)
   77     80   
        field(INSTANCETYPE_DESCRIPTOR)
   78     81   
        field(OUTPOSTARN_DESCRIPTOR)
   79     82   
        field(QUANTITY_DESCRIPTOR)
   80     83   
        field(TAGSPECIFICATIONS_DESCRIPTOR)
   81     84   
    }
   82     85   
   83     86   
    serializer.serializeStruct(OBJ_DESCRIPTOR) {
   84     87   
        if (!input.assetIds.isNullOrEmpty()) {
   85     88   
            listField(ASSETIDS_DESCRIPTOR) {
   86     89   
                for (el0 in input.assetIds) {
   87     90   
                    serializeString(el0)
   88     91   
                }
   89     92   
            }
   90     93   
        }
   91     94   
        input.autoPlacement?.let { field(AUTOPLACEMENT_DESCRIPTOR, it.value) }
   92     95   
        input.availabilityZone?.let { field(AVAILABILITYZONE_DESCRIPTOR, it) }
   93     96   
        input.availabilityZoneId?.let { field(AVAILABILITYZONEID_DESCRIPTOR, it) }
   94     97   
        input.clientToken?.let { field(CLIENTTOKEN_DESCRIPTOR, it) }
          98  +
        input.cpuOptions?.let { field(CPUOPTIONS_DESCRIPTOR, it, ::serializeHostCpuOptionsRequestDocument) }
   95     99   
        input.hostMaintenance?.let { field(HOSTMAINTENANCE_DESCRIPTOR, it.value) }
   96    100   
        input.hostRecovery?.let { field(HOSTRECOVERY_DESCRIPTOR, it.value) }
   97    101   
        input.instanceFamily?.let { field(INSTANCEFAMILY_DESCRIPTOR, it) }
   98    102   
        input.instanceType?.let { field(INSTANCETYPE_DESCRIPTOR, it) }
   99    103   
        input.outpostArn?.let { field(OUTPOSTARN_DESCRIPTOR, it) }
  100    104   
        input.quantity?.let { field(QUANTITY_DESCRIPTOR, it) }
  101    105   
        if (!input.tagSpecifications.isNullOrEmpty()) {
  102    106   
            listField(TAGSPECIFICATIONS_DESCRIPTOR) {
  103    107   
                for (el0 in input.tagSpecifications) {
  104    108   
                    serializeSdkSerializable(asSdkSerializable(el0, ::serializeTagSpecificationDocument))

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

@@ -22,22 +86,89 @@
   42     42   
            builder.headers.setMissing("Content-Type", "application/x-www-form-urlencoded")
   43     43   
        }
   44     44   
        return builder
   45     45   
    }
   46     46   
}
   47     47   
   48     48   
private fun serializeDescribeVolumesModificationsOperationBody(context: ExecutionContext, input: DescribeVolumesModificationsRequest): ByteArray {
   49     49   
    val serializer = FormUrlSerializer()
   50     50   
    val DRYRUN_DESCRIPTOR = SdkFieldDescriptor(SerialKind.Boolean, FormUrlSerialName("DryRun"))
   51     51   
    val FILTERS_DESCRIPTOR = SdkFieldDescriptor(SerialKind.List, FormUrlSerialName("Filter"), FormUrlFlattened)
          52  +
    val INCLUDEMANAGEDRESOURCES_DESCRIPTOR = SdkFieldDescriptor(SerialKind.Boolean, FormUrlSerialName("IncludeManagedResources"))
   52     53   
    val MAXRESULTS_DESCRIPTOR = SdkFieldDescriptor(SerialKind.Integer, FormUrlSerialName("MaxResults"))
   53     54   
    val NEXTTOKEN_DESCRIPTOR = SdkFieldDescriptor(SerialKind.String, FormUrlSerialName("NextToken"))
   54     55   
    val VOLUMEIDS_DESCRIPTOR = SdkFieldDescriptor(SerialKind.List, FormUrlSerialName("VolumeId"), FormUrlFlattened)
   55     56   
    val OBJ_DESCRIPTOR = SdkObjectDescriptor.build {
   56     57   
        trait(FormUrlSerialName("DescribeVolumesModificationsRequest"))
   57     58   
        trait(QueryLiteral("Action", "DescribeVolumesModifications"))
   58     59   
        trait(QueryLiteral("Version", "2016-11-15"))
   59     60   
        field(DRYRUN_DESCRIPTOR)
   60     61   
        field(FILTERS_DESCRIPTOR)
          62  +
        field(INCLUDEMANAGEDRESOURCES_DESCRIPTOR)
   61     63   
        field(MAXRESULTS_DESCRIPTOR)
   62     64   
        field(NEXTTOKEN_DESCRIPTOR)
   63     65   
        field(VOLUMEIDS_DESCRIPTOR)
   64     66   
    }
   65     67   
   66     68   
    serializer.serializeStruct(OBJ_DESCRIPTOR) {
   67     69   
        input.dryRun?.let { field(DRYRUN_DESCRIPTOR, it) }
   68     70   
        if (!input.filters.isNullOrEmpty()) {
   69     71   
            listField(FILTERS_DESCRIPTOR) {
   70     72   
                for (el0 in input.filters) {
   71     73   
                    serializeSdkSerializable(asSdkSerializable(el0, ::serializeFilterDocument))
   72     74   
                }
   73     75   
            }
   74     76   
        }
          77  +
        input.includeManagedResources?.let { field(INCLUDEMANAGEDRESOURCES_DESCRIPTOR, it) }
   75     78   
        input.maxResults?.let { field(MAXRESULTS_DESCRIPTOR, it) }
   76     79   
        input.nextToken?.let { field(NEXTTOKEN_DESCRIPTOR, it) }
   77     80   
        if (!input.volumeIds.isNullOrEmpty()) {
   78     81   
            listField(VOLUMEIDS_DESCRIPTOR) {
   79     82   
                for (el0 in input.volumeIds) {
   80     83   
                    serializeString(el0)
   81     84   
                }
   82     85   
            }
   83     86   
        }
   84     87   
    }

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

@@ -59,59 +95,97 @@
   79     79   
            // OutpostArn com.amazonaws.ec2#Host$OutpostArn
   80     80   
            "outpostArn" -> builder.outpostArn = curr.tryData()
   81     81   
                .getOrDeserializeErr { "expected (string: `com.amazonaws.ec2#String`)" }
   82     82   
            // HostMaintenance com.amazonaws.ec2#Host$HostMaintenance
   83     83   
            "hostMaintenance" -> builder.hostMaintenance = curr.tryData()
   84     84   
                .parse { HostMaintenance.fromValue(it) }
   85     85   
                .getOrDeserializeErr { "expected (enum: `com.amazonaws.ec2#HostMaintenance`)" }
   86     86   
            // AssetId com.amazonaws.ec2#Host$AssetId
   87     87   
            "assetId" -> builder.assetId = curr.tryData()
   88     88   
                .getOrDeserializeErr { "expected (string: `com.amazonaws.ec2#AssetId`)" }
          89  +
            // CpuOptions com.amazonaws.ec2#Host$CpuOptions
          90  +
            "cpuOptions" -> builder.cpuOptions = deserializeHostCpuOptionsDocument(curr)
   89     91   
            else -> {}
   90     92   
        }
   91     93   
        curr.drop()
   92     94   
    }
   93     95   
    builder.correctErrors()
   94     96   
    return builder.build()
   95     97   
}

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

@@ -56,56 +92,94 @@
   76     76   
                .parseLong()
   77     77   
                .getOrDeserializeErr { "expected (long: `com.amazonaws.ec2#Long`)" }
   78     78   
            // StartTime com.amazonaws.ec2#VolumeModification$StartTime
   79     79   
            "startTime" -> builder.startTime = curr.tryData()
   80     80   
                .parseTimestamp(TimestampFormat.ISO_8601)
   81     81   
                .getOrDeserializeErr { "expected (timestamp: `com.amazonaws.ec2#DateTime`)" }
   82     82   
            // EndTime com.amazonaws.ec2#VolumeModification$EndTime
   83     83   
            "endTime" -> builder.endTime = curr.tryData()
   84     84   
                .parseTimestamp(TimestampFormat.ISO_8601)
   85     85   
                .getOrDeserializeErr { "expected (timestamp: `com.amazonaws.ec2#DateTime`)" }
          86  +
            // Operator com.amazonaws.ec2#VolumeModification$Operator
          87  +
            "operator" -> builder.operator = deserializeOperatorResponseDocument(curr)
   86     88   
            else -> {}
   87     89   
        }
   88     90   
        curr.drop()
   89     91   
    }
   90     92   
    builder.correctErrors()
   91     93   
    return builder.build()
   92     94   
}

tmp-codegen-diff/services/polly/build/tmp/jvmJar/MANIFEST.MF

@@ -1,0 +2,0 @@
    1         -
Manifest-Version: 1.0
    2         -