# frozen_string_literal: true

# WARNING ABOUT GENERATED CODE
#
# This file is generated. See the contributing guide for more information:
# https://github.com/aws/aws-sdk-ruby/blob/version-3/CONTRIBUTING.md
#
# WARNING ABOUT GENERATED CODE


module Aws::EC2
  # @api private
  module ClientApi

    include Seahorse::Model

    AcceleratorCount = Shapes::StructureShape.new(name: 'AcceleratorCount')
    AcceleratorCountRequest = Shapes::StructureShape.new(name: 'AcceleratorCountRequest')
    AcceleratorManufacturer = Shapes::StringShape.new(name: 'AcceleratorManufacturer')
    AcceleratorManufacturerSet = Shapes::ListShape.new(name: 'AcceleratorManufacturerSet')
    AcceleratorName = Shapes::StringShape.new(name: 'AcceleratorName')
    AcceleratorNameSet = Shapes::ListShape.new(name: 'AcceleratorNameSet')
    AcceleratorTotalMemoryMiB = Shapes::StructureShape.new(name: 'AcceleratorTotalMemoryMiB')
    AcceleratorTotalMemoryMiBRequest = Shapes::StructureShape.new(name: 'AcceleratorTotalMemoryMiBRequest')
    AcceleratorType = Shapes::StringShape.new(name: 'AcceleratorType')
    AcceleratorTypeSet = Shapes::ListShape.new(name: 'AcceleratorTypeSet')
    AcceptAddressTransferRequest = Shapes::StructureShape.new(name: 'AcceptAddressTransferRequest')
    AcceptAddressTransferResult = Shapes::StructureShape.new(name: 'AcceptAddressTransferResult')
    AcceptCapacityReservationBillingOwnershipRequest = Shapes::StructureShape.new(name: 'AcceptCapacityReservationBillingOwnershipRequest')
    AcceptCapacityReservationBillingOwnershipResult = Shapes::StructureShape.new(name: 'AcceptCapacityReservationBillingOwnershipResult')
    AcceptReservedInstancesExchangeQuoteRequest = Shapes::StructureShape.new(name: 'AcceptReservedInstancesExchangeQuoteRequest')
    AcceptReservedInstancesExchangeQuoteResult = Shapes::StructureShape.new(name: 'AcceptReservedInstancesExchangeQuoteResult')
    AcceptTransitGatewayMulticastDomainAssociationsRequest = Shapes::StructureShape.new(name: 'AcceptTransitGatewayMulticastDomainAssociationsRequest')
    AcceptTransitGatewayMulticastDomainAssociationsResult = Shapes::StructureShape.new(name: 'AcceptTransitGatewayMulticastDomainAssociationsResult')
    AcceptTransitGatewayPeeringAttachmentRequest = Shapes::StructureShape.new(name: 'AcceptTransitGatewayPeeringAttachmentRequest')
    AcceptTransitGatewayPeeringAttachmentResult = Shapes::StructureShape.new(name: 'AcceptTransitGatewayPeeringAttachmentResult')
    AcceptTransitGatewayVpcAttachmentRequest = Shapes::StructureShape.new(name: 'AcceptTransitGatewayVpcAttachmentRequest')
    AcceptTransitGatewayVpcAttachmentResult = Shapes::StructureShape.new(name: 'AcceptTransitGatewayVpcAttachmentResult')
    AcceptVpcEndpointConnectionsRequest = Shapes::StructureShape.new(name: 'AcceptVpcEndpointConnectionsRequest')
    AcceptVpcEndpointConnectionsResult = Shapes::StructureShape.new(name: 'AcceptVpcEndpointConnectionsResult')
    AcceptVpcPeeringConnectionRequest = Shapes::StructureShape.new(name: 'AcceptVpcPeeringConnectionRequest')
    AcceptVpcPeeringConnectionResult = Shapes::StructureShape.new(name: 'AcceptVpcPeeringConnectionResult')
    AccessScopeAnalysisFinding = Shapes::StructureShape.new(name: 'AccessScopeAnalysisFinding')
    AccessScopeAnalysisFindingList = Shapes::ListShape.new(name: 'AccessScopeAnalysisFindingList')
    AccessScopePath = Shapes::StructureShape.new(name: 'AccessScopePath')
    AccessScopePathList = Shapes::ListShape.new(name: 'AccessScopePathList')
    AccessScopePathListRequest = Shapes::ListShape.new(name: 'AccessScopePathListRequest')
    AccessScopePathRequest = Shapes::StructureShape.new(name: 'AccessScopePathRequest')
    AccountAttribute = Shapes::StructureShape.new(name: 'AccountAttribute')
    AccountAttributeList = Shapes::ListShape.new(name: 'AccountAttributeList')
    AccountAttributeName = Shapes::StringShape.new(name: 'AccountAttributeName')
    AccountAttributeNameStringList = Shapes::ListShape.new(name: 'AccountAttributeNameStringList')
    AccountAttributeValue = Shapes::StructureShape.new(name: 'AccountAttributeValue')
    AccountAttributeValueList = Shapes::ListShape.new(name: 'AccountAttributeValueList')
    AccountID = Shapes::StringShape.new(name: 'AccountID')
    ActiveInstance = Shapes::StructureShape.new(name: 'ActiveInstance')
    ActiveInstanceSet = Shapes::ListShape.new(name: 'ActiveInstanceSet')
    ActivityStatus = Shapes::StringShape.new(name: 'ActivityStatus')
    AddIpamOperatingRegion = Shapes::StructureShape.new(name: 'AddIpamOperatingRegion')
    AddIpamOperatingRegionSet = Shapes::ListShape.new(name: 'AddIpamOperatingRegionSet')
    AddIpamOrganizationalUnitExclusion = Shapes::StructureShape.new(name: 'AddIpamOrganizationalUnitExclusion')
    AddIpamOrganizationalUnitExclusionSet = Shapes::ListShape.new(name: 'AddIpamOrganizationalUnitExclusionSet')
    AddPrefixListEntries = Shapes::ListShape.new(name: 'AddPrefixListEntries')
    AddPrefixListEntry = Shapes::StructureShape.new(name: 'AddPrefixListEntry')
    AddedPrincipal = Shapes::StructureShape.new(name: 'AddedPrincipal')
    AddedPrincipalSet = Shapes::ListShape.new(name: 'AddedPrincipalSet')
    AdditionalDetail = Shapes::StructureShape.new(name: 'AdditionalDetail')
    AdditionalDetailList = Shapes::ListShape.new(name: 'AdditionalDetailList')
    Address = Shapes::StructureShape.new(name: 'Address')
    AddressAttribute = Shapes::StructureShape.new(name: 'AddressAttribute')
    AddressAttributeName = Shapes::StringShape.new(name: 'AddressAttributeName')
    AddressFamily = Shapes::StringShape.new(name: 'AddressFamily')
    AddressList = Shapes::ListShape.new(name: 'AddressList')
    AddressMaxResults = Shapes::IntegerShape.new(name: 'AddressMaxResults')
    AddressSet = Shapes::ListShape.new(name: 'AddressSet')
    AddressTransfer = Shapes::StructureShape.new(name: 'AddressTransfer')
    AddressTransferList = Shapes::ListShape.new(name: 'AddressTransferList')
    AddressTransferStatus = Shapes::StringShape.new(name: 'AddressTransferStatus')
    AdvertiseByoipCidrRequest = Shapes::StructureShape.new(name: 'AdvertiseByoipCidrRequest')
    AdvertiseByoipCidrResult = Shapes::StructureShape.new(name: 'AdvertiseByoipCidrResult')
    Affinity = Shapes::StringShape.new(name: 'Affinity')
    AllocateAddressRequest = Shapes::StructureShape.new(name: 'AllocateAddressRequest')
    AllocateAddressResult = Shapes::StructureShape.new(name: 'AllocateAddressResult')
    AllocateHostsRequest = Shapes::StructureShape.new(name: 'AllocateHostsRequest')
    AllocateHostsResult = Shapes::StructureShape.new(name: 'AllocateHostsResult')
    AllocateIpamPoolCidrRequest = Shapes::StructureShape.new(name: 'AllocateIpamPoolCidrRequest')
    AllocateIpamPoolCidrResult = Shapes::StructureShape.new(name: 'AllocateIpamPoolCidrResult')
    AllocationId = Shapes::StringShape.new(name: 'AllocationId')
    AllocationIdList = Shapes::ListShape.new(name: 'AllocationIdList')
    AllocationIds = Shapes::ListShape.new(name: 'AllocationIds')
    AllocationState = Shapes::StringShape.new(name: 'AllocationState')
    AllocationStrategy = Shapes::StringShape.new(name: 'AllocationStrategy')
    AllocationType = Shapes::StringShape.new(name: 'AllocationType')
    AllowedImagesSettingsDisabledState = Shapes::StringShape.new(name: 'AllowedImagesSettingsDisabledState')
    AllowedImagesSettingsEnabledState = Shapes::StringShape.new(name: 'AllowedImagesSettingsEnabledState')
    AllowedInstanceType = Shapes::StringShape.new(name: 'AllowedInstanceType')
    AllowedInstanceTypeSet = Shapes::ListShape.new(name: 'AllowedInstanceTypeSet')
    AllowedPrincipal = Shapes::StructureShape.new(name: 'AllowedPrincipal')
    AllowedPrincipalSet = Shapes::ListShape.new(name: 'AllowedPrincipalSet')
    AllowsMultipleInstanceTypes = Shapes::StringShape.new(name: 'AllowsMultipleInstanceTypes')
    AlternatePathHint = Shapes::StructureShape.new(name: 'AlternatePathHint')
    AlternatePathHintList = Shapes::ListShape.new(name: 'AlternatePathHintList')
    AmdSevSnpSpecification = Shapes::StringShape.new(name: 'AmdSevSnpSpecification')
    AnalysisAclRule = Shapes::StructureShape.new(name: 'AnalysisAclRule')
    AnalysisComponent = Shapes::StructureShape.new(name: 'AnalysisComponent')
    AnalysisComponentList = Shapes::ListShape.new(name: 'AnalysisComponentList')
    AnalysisLoadBalancerListener = Shapes::StructureShape.new(name: 'AnalysisLoadBalancerListener')
    AnalysisLoadBalancerTarget = Shapes::StructureShape.new(name: 'AnalysisLoadBalancerTarget')
    AnalysisPacketHeader = Shapes::StructureShape.new(name: 'AnalysisPacketHeader')
    AnalysisRouteTableRoute = Shapes::StructureShape.new(name: 'AnalysisRouteTableRoute')
    AnalysisSecurityGroupRule = Shapes::StructureShape.new(name: 'AnalysisSecurityGroupRule')
    AnalysisStatus = Shapes::StringShape.new(name: 'AnalysisStatus')
    ApplianceModeSupportValue = Shapes::StringShape.new(name: 'ApplianceModeSupportValue')
    ApplySecurityGroupsToClientVpnTargetNetworkRequest = Shapes::StructureShape.new(name: 'ApplySecurityGroupsToClientVpnTargetNetworkRequest')
    ApplySecurityGroupsToClientVpnTargetNetworkResult = Shapes::StructureShape.new(name: 'ApplySecurityGroupsToClientVpnTargetNetworkResult')
    ArchitectureType = Shapes::StringShape.new(name: 'ArchitectureType')
    ArchitectureTypeList = Shapes::ListShape.new(name: 'ArchitectureTypeList')
    ArchitectureTypeSet = Shapes::ListShape.new(name: 'ArchitectureTypeSet')
    ArchitectureValues = Shapes::StringShape.new(name: 'ArchitectureValues')
    ArnList = Shapes::ListShape.new(name: 'ArnList')
    AsnAssociation = Shapes::StructureShape.new(name: 'AsnAssociation')
    AsnAssociationSet = Shapes::ListShape.new(name: 'AsnAssociationSet')
    AsnAssociationState = Shapes::StringShape.new(name: 'AsnAssociationState')
    AsnAuthorizationContext = Shapes::StructureShape.new(name: 'AsnAuthorizationContext')
    AsnState = Shapes::StringShape.new(name: 'AsnState')
    AssetId = Shapes::StringShape.new(name: 'AssetId')
    AssetIdList = Shapes::ListShape.new(name: 'AssetIdList')
    AssignIpv6AddressesRequest = Shapes::StructureShape.new(name: 'AssignIpv6AddressesRequest')
    AssignIpv6AddressesResult = Shapes::StructureShape.new(name: 'AssignIpv6AddressesResult')
    AssignPrivateIpAddressesRequest = Shapes::StructureShape.new(name: 'AssignPrivateIpAddressesRequest')
    AssignPrivateIpAddressesResult = Shapes::StructureShape.new(name: 'AssignPrivateIpAddressesResult')
    AssignPrivateNatGatewayAddressRequest = Shapes::StructureShape.new(name: 'AssignPrivateNatGatewayAddressRequest')
    AssignPrivateNatGatewayAddressResult = Shapes::StructureShape.new(name: 'AssignPrivateNatGatewayAddressResult')
    AssignedPrivateIpAddress = Shapes::StructureShape.new(name: 'AssignedPrivateIpAddress')
    AssignedPrivateIpAddressList = Shapes::ListShape.new(name: 'AssignedPrivateIpAddressList')
    AssociateAddressRequest = Shapes::StructureShape.new(name: 'AssociateAddressRequest')
    AssociateAddressResult = Shapes::StructureShape.new(name: 'AssociateAddressResult')
    AssociateCapacityReservationBillingOwnerRequest = Shapes::StructureShape.new(name: 'AssociateCapacityReservationBillingOwnerRequest')
    AssociateCapacityReservationBillingOwnerResult = Shapes::StructureShape.new(name: 'AssociateCapacityReservationBillingOwnerResult')
    AssociateClientVpnTargetNetworkRequest = Shapes::StructureShape.new(name: 'AssociateClientVpnTargetNetworkRequest')
    AssociateClientVpnTargetNetworkResult = Shapes::StructureShape.new(name: 'AssociateClientVpnTargetNetworkResult')
    AssociateDhcpOptionsRequest = Shapes::StructureShape.new(name: 'AssociateDhcpOptionsRequest')
    AssociateEnclaveCertificateIamRoleRequest = Shapes::StructureShape.new(name: 'AssociateEnclaveCertificateIamRoleRequest')
    AssociateEnclaveCertificateIamRoleResult = Shapes::StructureShape.new(name: 'AssociateEnclaveCertificateIamRoleResult')
    AssociateIamInstanceProfileRequest = Shapes::StructureShape.new(name: 'AssociateIamInstanceProfileRequest')
    AssociateIamInstanceProfileResult = Shapes::StructureShape.new(name: 'AssociateIamInstanceProfileResult')
    AssociateInstanceEventWindowRequest = Shapes::StructureShape.new(name: 'AssociateInstanceEventWindowRequest')
    AssociateInstanceEventWindowResult = Shapes::StructureShape.new(name: 'AssociateInstanceEventWindowResult')
    AssociateIpamByoasnRequest = Shapes::StructureShape.new(name: 'AssociateIpamByoasnRequest')
    AssociateIpamByoasnResult = Shapes::StructureShape.new(name: 'AssociateIpamByoasnResult')
    AssociateIpamResourceDiscoveryRequest = Shapes::StructureShape.new(name: 'AssociateIpamResourceDiscoveryRequest')
    AssociateIpamResourceDiscoveryResult = Shapes::StructureShape.new(name: 'AssociateIpamResourceDiscoveryResult')
    AssociateNatGatewayAddressRequest = Shapes::StructureShape.new(name: 'AssociateNatGatewayAddressRequest')
    AssociateNatGatewayAddressResult = Shapes::StructureShape.new(name: 'AssociateNatGatewayAddressResult')
    AssociateRouteTableRequest = Shapes::StructureShape.new(name: 'AssociateRouteTableRequest')
    AssociateRouteTableResult = Shapes::StructureShape.new(name: 'AssociateRouteTableResult')
    AssociateSecurityGroupVpcRequest = Shapes::StructureShape.new(name: 'AssociateSecurityGroupVpcRequest')
    AssociateSecurityGroupVpcResult = Shapes::StructureShape.new(name: 'AssociateSecurityGroupVpcResult')
    AssociateSubnetCidrBlockRequest = Shapes::StructureShape.new(name: 'AssociateSubnetCidrBlockRequest')
    AssociateSubnetCidrBlockResult = Shapes::StructureShape.new(name: 'AssociateSubnetCidrBlockResult')
    AssociateTransitGatewayMulticastDomainRequest = Shapes::StructureShape.new(name: 'AssociateTransitGatewayMulticastDomainRequest')
    AssociateTransitGatewayMulticastDomainResult = Shapes::StructureShape.new(name: 'AssociateTransitGatewayMulticastDomainResult')
    AssociateTransitGatewayPolicyTableRequest = Shapes::StructureShape.new(name: 'AssociateTransitGatewayPolicyTableRequest')
    AssociateTransitGatewayPolicyTableResult = Shapes::StructureShape.new(name: 'AssociateTransitGatewayPolicyTableResult')
    AssociateTransitGatewayRouteTableRequest = Shapes::StructureShape.new(name: 'AssociateTransitGatewayRouteTableRequest')
    AssociateTransitGatewayRouteTableResult = Shapes::StructureShape.new(name: 'AssociateTransitGatewayRouteTableResult')
    AssociateTrunkInterfaceRequest = Shapes::StructureShape.new(name: 'AssociateTrunkInterfaceRequest')
    AssociateTrunkInterfaceResult = Shapes::StructureShape.new(name: 'AssociateTrunkInterfaceResult')
    AssociateVpcCidrBlockRequest = Shapes::StructureShape.new(name: 'AssociateVpcCidrBlockRequest')
    AssociateVpcCidrBlockResult = Shapes::StructureShape.new(name: 'AssociateVpcCidrBlockResult')
    AssociatedNetworkType = Shapes::StringShape.new(name: 'AssociatedNetworkType')
    AssociatedRole = Shapes::StructureShape.new(name: 'AssociatedRole')
    AssociatedRolesList = Shapes::ListShape.new(name: 'AssociatedRolesList')
    AssociatedTargetNetwork = Shapes::StructureShape.new(name: 'AssociatedTargetNetwork')
    AssociatedTargetNetworkSet = Shapes::ListShape.new(name: 'AssociatedTargetNetworkSet')
    AssociationIdList = Shapes::ListShape.new(name: 'AssociationIdList')
    AssociationStatus = Shapes::StructureShape.new(name: 'AssociationStatus')
    AssociationStatusCode = Shapes::StringShape.new(name: 'AssociationStatusCode')
    AthenaIntegration = Shapes::StructureShape.new(name: 'AthenaIntegration')
    AthenaIntegrationsSet = Shapes::ListShape.new(name: 'AthenaIntegrationsSet')
    AttachClassicLinkVpcRequest = Shapes::StructureShape.new(name: 'AttachClassicLinkVpcRequest')
    AttachClassicLinkVpcResult = Shapes::StructureShape.new(name: 'AttachClassicLinkVpcResult')
    AttachInternetGatewayRequest = Shapes::StructureShape.new(name: 'AttachInternetGatewayRequest')
    AttachNetworkInterfaceRequest = Shapes::StructureShape.new(name: 'AttachNetworkInterfaceRequest')
    AttachNetworkInterfaceResult = Shapes::StructureShape.new(name: 'AttachNetworkInterfaceResult')
    AttachVerifiedAccessTrustProviderRequest = Shapes::StructureShape.new(name: 'AttachVerifiedAccessTrustProviderRequest')
    AttachVerifiedAccessTrustProviderResult = Shapes::StructureShape.new(name: 'AttachVerifiedAccessTrustProviderResult')
    AttachVolumeRequest = Shapes::StructureShape.new(name: 'AttachVolumeRequest')
    AttachVpnGatewayRequest = Shapes::StructureShape.new(name: 'AttachVpnGatewayRequest')
    AttachVpnGatewayResult = Shapes::StructureShape.new(name: 'AttachVpnGatewayResult')
    AttachmentEnaSrdSpecification = Shapes::StructureShape.new(name: 'AttachmentEnaSrdSpecification')
    AttachmentEnaSrdUdpSpecification = Shapes::StructureShape.new(name: 'AttachmentEnaSrdUdpSpecification')
    AttachmentStatus = Shapes::StringShape.new(name: 'AttachmentStatus')
    AttributeBooleanValue = Shapes::StructureShape.new(name: 'AttributeBooleanValue')
    AttributeSummary = Shapes::StructureShape.new(name: 'AttributeSummary')
    AttributeSummaryList = Shapes::ListShape.new(name: 'AttributeSummaryList')
    AttributeValue = Shapes::StructureShape.new(name: 'AttributeValue')
    AuthorizationRule = Shapes::StructureShape.new(name: 'AuthorizationRule')
    AuthorizationRuleSet = Shapes::ListShape.new(name: 'AuthorizationRuleSet')
    AuthorizeClientVpnIngressRequest = Shapes::StructureShape.new(name: 'AuthorizeClientVpnIngressRequest')
    AuthorizeClientVpnIngressResult = Shapes::StructureShape.new(name: 'AuthorizeClientVpnIngressResult')
    AuthorizeSecurityGroupEgressRequest = Shapes::StructureShape.new(name: 'AuthorizeSecurityGroupEgressRequest')
    AuthorizeSecurityGroupEgressResult = Shapes::StructureShape.new(name: 'AuthorizeSecurityGroupEgressResult')
    AuthorizeSecurityGroupIngressRequest = Shapes::StructureShape.new(name: 'AuthorizeSecurityGroupIngressRequest')
    AuthorizeSecurityGroupIngressResult = Shapes::StructureShape.new(name: 'AuthorizeSecurityGroupIngressResult')
    AutoAcceptSharedAssociationsValue = Shapes::StringShape.new(name: 'AutoAcceptSharedAssociationsValue')
    AutoAcceptSharedAttachmentsValue = Shapes::StringShape.new(name: 'AutoAcceptSharedAttachmentsValue')
    AutoPlacement = Shapes::StringShape.new(name: 'AutoPlacement')
    AutoRecoveryFlag = Shapes::BooleanShape.new(name: 'AutoRecoveryFlag')
    AvailabilityZone = Shapes::StructureShape.new(name: 'AvailabilityZone')
    AvailabilityZoneId = Shapes::StringShape.new(name: 'AvailabilityZoneId')
    AvailabilityZoneList = Shapes::ListShape.new(name: 'AvailabilityZoneList')
    AvailabilityZoneMessage = Shapes::StructureShape.new(name: 'AvailabilityZoneMessage')
    AvailabilityZoneMessageList = Shapes::ListShape.new(name: 'AvailabilityZoneMessageList')
    AvailabilityZoneName = Shapes::StringShape.new(name: 'AvailabilityZoneName')
    AvailabilityZoneOptInStatus = Shapes::StringShape.new(name: 'AvailabilityZoneOptInStatus')
    AvailabilityZoneState = Shapes::StringShape.new(name: 'AvailabilityZoneState')
    AvailabilityZoneStringList = Shapes::ListShape.new(name: 'AvailabilityZoneStringList')
    AvailableCapacity = Shapes::StructureShape.new(name: 'AvailableCapacity')
    AvailableInstanceCapacityList = Shapes::ListShape.new(name: 'AvailableInstanceCapacityList')
    BandwidthWeightingType = Shapes::StringShape.new(name: 'BandwidthWeightingType')
    BandwidthWeightingTypeList = Shapes::ListShape.new(name: 'BandwidthWeightingTypeList')
    BareMetal = Shapes::StringShape.new(name: 'BareMetal')
    BareMetalFlag = Shapes::BooleanShape.new(name: 'BareMetalFlag')
    BaselineBandwidthInGbps = Shapes::FloatShape.new(name: 'BaselineBandwidthInGbps')
    BaselineBandwidthInMbps = Shapes::IntegerShape.new(name: 'BaselineBandwidthInMbps')
    BaselineEbsBandwidthMbps = Shapes::StructureShape.new(name: 'BaselineEbsBandwidthMbps')
    BaselineEbsBandwidthMbpsRequest = Shapes::StructureShape.new(name: 'BaselineEbsBandwidthMbpsRequest')
    BaselineIops = Shapes::IntegerShape.new(name: 'BaselineIops')
    BaselinePerformanceFactors = Shapes::StructureShape.new(name: 'BaselinePerformanceFactors')
    BaselinePerformanceFactorsRequest = Shapes::StructureShape.new(name: 'BaselinePerformanceFactorsRequest')
    BaselineThroughputInMBps = Shapes::FloatShape.new(name: 'BaselineThroughputInMBps')
    BatchState = Shapes::StringShape.new(name: 'BatchState')
    BgpStatus = Shapes::StringShape.new(name: 'BgpStatus')
    BillingProductList = Shapes::ListShape.new(name: 'BillingProductList')
    Blob = Shapes::BlobShape.new(name: 'Blob')
    BlobAttributeValue = Shapes::StructureShape.new(name: 'BlobAttributeValue')
    BlockDeviceMapping = Shapes::StructureShape.new(name: 'BlockDeviceMapping')
    BlockDeviceMappingList = Shapes::ListShape.new(name: 'BlockDeviceMappingList')
    BlockDeviceMappingRequestList = Shapes::ListShape.new(name: 'BlockDeviceMappingRequestList')
    BlockDeviceMappingResponse = Shapes::StructureShape.new(name: 'BlockDeviceMappingResponse')
    BlockDeviceMappingResponseList = Shapes::ListShape.new(name: 'BlockDeviceMappingResponseList')
    BlockPublicAccessMode = Shapes::StringShape.new(name: 'BlockPublicAccessMode')
    BlockPublicAccessStates = Shapes::StructureShape.new(name: 'BlockPublicAccessStates')
    Boolean = Shapes::BooleanShape.new(name: 'Boolean')
    BootModeType = Shapes::StringShape.new(name: 'BootModeType')
    BootModeTypeList = Shapes::ListShape.new(name: 'BootModeTypeList')
    BootModeValues = Shapes::StringShape.new(name: 'BootModeValues')
    BoxedDouble = Shapes::FloatShape.new(name: 'BoxedDouble')
    BoxedInteger = Shapes::IntegerShape.new(name: 'BoxedInteger')
    BundleId = Shapes::StringShape.new(name: 'BundleId')
    BundleIdStringList = Shapes::ListShape.new(name: 'BundleIdStringList')
    BundleInstanceRequest = Shapes::StructureShape.new(name: 'BundleInstanceRequest')
    BundleInstanceResult = Shapes::StructureShape.new(name: 'BundleInstanceResult')
    BundleTask = Shapes::StructureShape.new(name: 'BundleTask')
    BundleTaskError = Shapes::StructureShape.new(name: 'BundleTaskError')
    BundleTaskList = Shapes::ListShape.new(name: 'BundleTaskList')
    BundleTaskState = Shapes::StringShape.new(name: 'BundleTaskState')
    BurstablePerformance = Shapes::StringShape.new(name: 'BurstablePerformance')
    BurstablePerformanceFlag = Shapes::BooleanShape.new(name: 'BurstablePerformanceFlag')
    Byoasn = Shapes::StructureShape.new(name: 'Byoasn')
    ByoasnSet = Shapes::ListShape.new(name: 'ByoasnSet')
    ByoipCidr = Shapes::StructureShape.new(name: 'ByoipCidr')
    ByoipCidrSet = Shapes::ListShape.new(name: 'ByoipCidrSet')
    ByoipCidrState = Shapes::StringShape.new(name: 'ByoipCidrState')
    CallerRole = Shapes::StringShape.new(name: 'CallerRole')
    CancelBatchErrorCode = Shapes::StringShape.new(name: 'CancelBatchErrorCode')
    CancelBundleTaskRequest = Shapes::StructureShape.new(name: 'CancelBundleTaskRequest')
    CancelBundleTaskResult = Shapes::StructureShape.new(name: 'CancelBundleTaskResult')
    CancelCapacityReservationFleetError = Shapes::StructureShape.new(name: 'CancelCapacityReservationFleetError')
    CancelCapacityReservationFleetErrorCode = Shapes::StringShape.new(name: 'CancelCapacityReservationFleetErrorCode')
    CancelCapacityReservationFleetErrorMessage = Shapes::StringShape.new(name: 'CancelCapacityReservationFleetErrorMessage')
    CancelCapacityReservationFleetsRequest = Shapes::StructureShape.new(name: 'CancelCapacityReservationFleetsRequest')
    CancelCapacityReservationFleetsResult = Shapes::StructureShape.new(name: 'CancelCapacityReservationFleetsResult')
    CancelCapacityReservationRequest = Shapes::StructureShape.new(name: 'CancelCapacityReservationRequest')
    CancelCapacityReservationResult = Shapes::StructureShape.new(name: 'CancelCapacityReservationResult')
    CancelConversionRequest = Shapes::StructureShape.new(name: 'CancelConversionRequest')
    CancelDeclarativePoliciesReportRequest = Shapes::StructureShape.new(name: 'CancelDeclarativePoliciesReportRequest')
    CancelDeclarativePoliciesReportResult = Shapes::StructureShape.new(name: 'CancelDeclarativePoliciesReportResult')
    CancelExportTaskRequest = Shapes::StructureShape.new(name: 'CancelExportTaskRequest')
    CancelImageLaunchPermissionRequest = Shapes::StructureShape.new(name: 'CancelImageLaunchPermissionRequest')
    CancelImageLaunchPermissionResult = Shapes::StructureShape.new(name: 'CancelImageLaunchPermissionResult')
    CancelImportTaskRequest = Shapes::StructureShape.new(name: 'CancelImportTaskRequest')
    CancelImportTaskResult = Shapes::StructureShape.new(name: 'CancelImportTaskResult')
    CancelReservedInstancesListingRequest = Shapes::StructureShape.new(name: 'CancelReservedInstancesListingRequest')
    CancelReservedInstancesListingResult = Shapes::StructureShape.new(name: 'CancelReservedInstancesListingResult')
    CancelSpotFleetRequestsError = Shapes::StructureShape.new(name: 'CancelSpotFleetRequestsError')
    CancelSpotFleetRequestsErrorItem = Shapes::StructureShape.new(name: 'CancelSpotFleetRequestsErrorItem')
    CancelSpotFleetRequestsErrorSet = Shapes::ListShape.new(name: 'CancelSpotFleetRequestsErrorSet')
    CancelSpotFleetRequestsRequest = Shapes::StructureShape.new(name: 'CancelSpotFleetRequestsRequest')
    CancelSpotFleetRequestsResponse = Shapes::StructureShape.new(name: 'CancelSpotFleetRequestsResponse')
    CancelSpotFleetRequestsSuccessItem = Shapes::StructureShape.new(name: 'CancelSpotFleetRequestsSuccessItem')
    CancelSpotFleetRequestsSuccessSet = Shapes::ListShape.new(name: 'CancelSpotFleetRequestsSuccessSet')
    CancelSpotInstanceRequestState = Shapes::StringShape.new(name: 'CancelSpotInstanceRequestState')
    CancelSpotInstanceRequestsRequest = Shapes::StructureShape.new(name: 'CancelSpotInstanceRequestsRequest')
    CancelSpotInstanceRequestsResult = Shapes::StructureShape.new(name: 'CancelSpotInstanceRequestsResult')
    CancelledSpotInstanceRequest = Shapes::StructureShape.new(name: 'CancelledSpotInstanceRequest')
    CancelledSpotInstanceRequestList = Shapes::ListShape.new(name: 'CancelledSpotInstanceRequestList')
    CapacityAllocation = Shapes::StructureShape.new(name: 'CapacityAllocation')
    CapacityAllocations = Shapes::ListShape.new(name: 'CapacityAllocations')
    CapacityBlockExtension = Shapes::StructureShape.new(name: 'CapacityBlockExtension')
    CapacityBlockExtensionOffering = Shapes::StructureShape.new(name: 'CapacityBlockExtensionOffering')
    CapacityBlockExtensionOfferingSet = Shapes::ListShape.new(name: 'CapacityBlockExtensionOfferingSet')
    CapacityBlockExtensionSet = Shapes::ListShape.new(name: 'CapacityBlockExtensionSet')
    CapacityBlockExtensionStatus = Shapes::StringShape.new(name: 'CapacityBlockExtensionStatus')
    CapacityBlockOffering = Shapes::StructureShape.new(name: 'CapacityBlockOffering')
    CapacityBlockOfferingSet = Shapes::ListShape.new(name: 'CapacityBlockOfferingSet')
    CapacityReservation = Shapes::StructureShape.new(name: 'CapacityReservation')
    CapacityReservationBillingRequest = Shapes::StructureShape.new(name: 'CapacityReservationBillingRequest')
    CapacityReservationBillingRequestSet = Shapes::ListShape.new(name: 'CapacityReservationBillingRequestSet')
    CapacityReservationBillingRequestStatus = Shapes::StringShape.new(name: 'CapacityReservationBillingRequestStatus')
    CapacityReservationCommitmentDuration = Shapes::IntegerShape.new(name: 'CapacityReservationCommitmentDuration')
    CapacityReservationCommitmentInfo = Shapes::StructureShape.new(name: 'CapacityReservationCommitmentInfo')
    CapacityReservationDeliveryPreference = Shapes::StringShape.new(name: 'CapacityReservationDeliveryPreference')
    CapacityReservationFleet = Shapes::StructureShape.new(name: 'CapacityReservationFleet')
    CapacityReservationFleetCancellationState = Shapes::StructureShape.new(name: 'CapacityReservationFleetCancellationState')
    CapacityReservationFleetCancellationStateSet = Shapes::ListShape.new(name: 'CapacityReservationFleetCancellationStateSet')
    CapacityReservationFleetId = Shapes::StringShape.new(name: 'CapacityReservationFleetId')
    CapacityReservationFleetIdSet = Shapes::ListShape.new(name: 'CapacityReservationFleetIdSet')
    CapacityReservationFleetSet = Shapes::ListShape.new(name: 'CapacityReservationFleetSet')
    CapacityReservationFleetState = Shapes::StringShape.new(name: 'CapacityReservationFleetState')
    CapacityReservationGroup = Shapes::StructureShape.new(name: 'CapacityReservationGroup')
    CapacityReservationGroupSet = Shapes::ListShape.new(name: 'CapacityReservationGroupSet')
    CapacityReservationId = Shapes::StringShape.new(name: 'CapacityReservationId')
    CapacityReservationIdSet = Shapes::ListShape.new(name: 'CapacityReservationIdSet')
    CapacityReservationInfo = Shapes::StructureShape.new(name: 'CapacityReservationInfo')
    CapacityReservationInstancePlatform = Shapes::StringShape.new(name: 'CapacityReservationInstancePlatform')
    CapacityReservationOptions = Shapes::StructureShape.new(name: 'CapacityReservationOptions')
    CapacityReservationOptionsRequest = Shapes::StructureShape.new(name: 'CapacityReservationOptionsRequest')
    CapacityReservationPreference = Shapes::StringShape.new(name: 'CapacityReservationPreference')
    CapacityReservationSet = Shapes::ListShape.new(name: 'CapacityReservationSet')
    CapacityReservationSpecification = Shapes::StructureShape.new(name: 'CapacityReservationSpecification')
    CapacityReservationSpecificationResponse = Shapes::StructureShape.new(name: 'CapacityReservationSpecificationResponse')
    CapacityReservationState = Shapes::StringShape.new(name: 'CapacityReservationState')
    CapacityReservationTarget = Shapes::StructureShape.new(name: 'CapacityReservationTarget')
    CapacityReservationTargetResponse = Shapes::StructureShape.new(name: 'CapacityReservationTargetResponse')
    CapacityReservationTenancy = Shapes::StringShape.new(name: 'CapacityReservationTenancy')
    CapacityReservationType = Shapes::StringShape.new(name: 'CapacityReservationType')
    CarrierGateway = Shapes::StructureShape.new(name: 'CarrierGateway')
    CarrierGatewayId = Shapes::StringShape.new(name: 'CarrierGatewayId')
    CarrierGatewayIdSet = Shapes::ListShape.new(name: 'CarrierGatewayIdSet')
    CarrierGatewayMaxResults = Shapes::IntegerShape.new(name: 'CarrierGatewayMaxResults')
    CarrierGatewaySet = Shapes::ListShape.new(name: 'CarrierGatewaySet')
    CarrierGatewayState = Shapes::StringShape.new(name: 'CarrierGatewayState')
    CertificateArn = Shapes::StringShape.new(name: 'CertificateArn')
    CertificateAuthentication = Shapes::StructureShape.new(name: 'CertificateAuthentication')
    CertificateAuthenticationRequest = Shapes::StructureShape.new(name: 'CertificateAuthenticationRequest')
    CertificateId = Shapes::StringShape.new(name: 'CertificateId')
    CidrAuthorizationContext = Shapes::StructureShape.new(name: 'CidrAuthorizationContext')
    CidrBlock = Shapes::StructureShape.new(name: 'CidrBlock')
    CidrBlockSet = Shapes::ListShape.new(name: 'CidrBlockSet')
    ClassicLinkDnsSupport = Shapes::StructureShape.new(name: 'ClassicLinkDnsSupport')
    ClassicLinkDnsSupportList = Shapes::ListShape.new(name: 'ClassicLinkDnsSupportList')
    ClassicLinkInstance = Shapes::StructureShape.new(name: 'ClassicLinkInstance')
    ClassicLinkInstanceList = Shapes::ListShape.new(name: 'ClassicLinkInstanceList')
    ClassicLoadBalancer = Shapes::StructureShape.new(name: 'ClassicLoadBalancer')
    ClassicLoadBalancers = Shapes::ListShape.new(name: 'ClassicLoadBalancers')
    ClassicLoadBalancersConfig = Shapes::StructureShape.new(name: 'ClassicLoadBalancersConfig')
    ClientCertificateRevocationListStatus = Shapes::StructureShape.new(name: 'ClientCertificateRevocationListStatus')
    ClientCertificateRevocationListStatusCode = Shapes::StringShape.new(name: 'ClientCertificateRevocationListStatusCode')
    ClientConnectOptions = Shapes::StructureShape.new(name: 'ClientConnectOptions')
    ClientConnectResponseOptions = Shapes::StructureShape.new(name: 'ClientConnectResponseOptions')
    ClientData = Shapes::StructureShape.new(name: 'ClientData')
    ClientLoginBannerOptions = Shapes::StructureShape.new(name: 'ClientLoginBannerOptions')
    ClientLoginBannerResponseOptions = Shapes::StructureShape.new(name: 'ClientLoginBannerResponseOptions')
    ClientSecretType = Shapes::StringShape.new(name: 'ClientSecretType')
    ClientVpnAuthentication = Shapes::StructureShape.new(name: 'ClientVpnAuthentication')
    ClientVpnAuthenticationList = Shapes::ListShape.new(name: 'ClientVpnAuthenticationList')
    ClientVpnAuthenticationRequest = Shapes::StructureShape.new(name: 'ClientVpnAuthenticationRequest')
    ClientVpnAuthenticationRequestList = Shapes::ListShape.new(name: 'ClientVpnAuthenticationRequestList')
    ClientVpnAuthenticationType = Shapes::StringShape.new(name: 'ClientVpnAuthenticationType')
    ClientVpnAuthorizationRuleStatus = Shapes::StructureShape.new(name: 'ClientVpnAuthorizationRuleStatus')
    ClientVpnAuthorizationRuleStatusCode = Shapes::StringShape.new(name: 'ClientVpnAuthorizationRuleStatusCode')
    ClientVpnConnection = Shapes::StructureShape.new(name: 'ClientVpnConnection')
    ClientVpnConnectionSet = Shapes::ListShape.new(name: 'ClientVpnConnectionSet')
    ClientVpnConnectionStatus = Shapes::StructureShape.new(name: 'ClientVpnConnectionStatus')
    ClientVpnConnectionStatusCode = Shapes::StringShape.new(name: 'ClientVpnConnectionStatusCode')
    ClientVpnEndpoint = Shapes::StructureShape.new(name: 'ClientVpnEndpoint')
    ClientVpnEndpointAttributeStatus = Shapes::StructureShape.new(name: 'ClientVpnEndpointAttributeStatus')
    ClientVpnEndpointAttributeStatusCode = Shapes::StringShape.new(name: 'ClientVpnEndpointAttributeStatusCode')
    ClientVpnEndpointId = Shapes::StringShape.new(name: 'ClientVpnEndpointId')
    ClientVpnEndpointIdList = Shapes::ListShape.new(name: 'ClientVpnEndpointIdList')
    ClientVpnEndpointStatus = Shapes::StructureShape.new(name: 'ClientVpnEndpointStatus')
    ClientVpnEndpointStatusCode = Shapes::StringShape.new(name: 'ClientVpnEndpointStatusCode')
    ClientVpnRoute = Shapes::StructureShape.new(name: 'ClientVpnRoute')
    ClientVpnRouteSet = Shapes::ListShape.new(name: 'ClientVpnRouteSet')
    ClientVpnRouteStatus = Shapes::StructureShape.new(name: 'ClientVpnRouteStatus')
    ClientVpnRouteStatusCode = Shapes::StringShape.new(name: 'ClientVpnRouteStatusCode')
    ClientVpnSecurityGroupIdSet = Shapes::ListShape.new(name: 'ClientVpnSecurityGroupIdSet')
    CloudWatchLogGroupArn = Shapes::StringShape.new(name: 'CloudWatchLogGroupArn')
    CloudWatchLogOptions = Shapes::StructureShape.new(name: 'CloudWatchLogOptions')
    CloudWatchLogOptionsSpecification = Shapes::StructureShape.new(name: 'CloudWatchLogOptionsSpecification')
    CoipAddressUsage = Shapes::StructureShape.new(name: 'CoipAddressUsage')
    CoipAddressUsageSet = Shapes::ListShape.new(name: 'CoipAddressUsageSet')
    CoipCidr = Shapes::StructureShape.new(name: 'CoipCidr')
    CoipPool = Shapes::StructureShape.new(name: 'CoipPool')
    CoipPoolId = Shapes::StringShape.new(name: 'CoipPoolId')
    CoipPoolIdSet = Shapes::ListShape.new(name: 'CoipPoolIdSet')
    CoipPoolMaxResults = Shapes::IntegerShape.new(name: 'CoipPoolMaxResults')
    CoipPoolSet = Shapes::ListShape.new(name: 'CoipPoolSet')
    ComponentAccount = Shapes::StringShape.new(name: 'ComponentAccount')
    ComponentRegion = Shapes::StringShape.new(name: 'ComponentRegion')
    ConfirmProductInstanceRequest = Shapes::StructureShape.new(name: 'ConfirmProductInstanceRequest')
    ConfirmProductInstanceResult = Shapes::StructureShape.new(name: 'ConfirmProductInstanceResult')
    ConnectionLogOptions = Shapes::StructureShape.new(name: 'ConnectionLogOptions')
    ConnectionLogResponseOptions = Shapes::StructureShape.new(name: 'ConnectionLogResponseOptions')
    ConnectionNotification = Shapes::StructureShape.new(name: 'ConnectionNotification')
    ConnectionNotificationId = Shapes::StringShape.new(name: 'ConnectionNotificationId')
    ConnectionNotificationIdsList = Shapes::ListShape.new(name: 'ConnectionNotificationIdsList')
    ConnectionNotificationSet = Shapes::ListShape.new(name: 'ConnectionNotificationSet')
    ConnectionNotificationState = Shapes::StringShape.new(name: 'ConnectionNotificationState')
    ConnectionNotificationType = Shapes::StringShape.new(name: 'ConnectionNotificationType')
    ConnectionTrackingConfiguration = Shapes::StructureShape.new(name: 'ConnectionTrackingConfiguration')
    ConnectionTrackingSpecification = Shapes::StructureShape.new(name: 'ConnectionTrackingSpecification')
    ConnectionTrackingSpecificationRequest = Shapes::StructureShape.new(name: 'ConnectionTrackingSpecificationRequest')
    ConnectionTrackingSpecificationResponse = Shapes::StructureShape.new(name: 'ConnectionTrackingSpecificationResponse')
    ConnectivityType = Shapes::StringShape.new(name: 'ConnectivityType')
    ContainerFormat = Shapes::StringShape.new(name: 'ContainerFormat')
    ConversionIdStringList = Shapes::ListShape.new(name: 'ConversionIdStringList')
    ConversionTask = Shapes::StructureShape.new(name: 'ConversionTask')
    ConversionTaskId = Shapes::StringShape.new(name: 'ConversionTaskId')
    ConversionTaskState = Shapes::StringShape.new(name: 'ConversionTaskState')
    CoolOffPeriodRequestHours = Shapes::IntegerShape.new(name: 'CoolOffPeriodRequestHours')
    CoolOffPeriodResponseHours = Shapes::IntegerShape.new(name: 'CoolOffPeriodResponseHours')
    CopyFpgaImageRequest = Shapes::StructureShape.new(name: 'CopyFpgaImageRequest')
    CopyFpgaImageResult = Shapes::StructureShape.new(name: 'CopyFpgaImageResult')
    CopyImageRequest = Shapes::StructureShape.new(name: 'CopyImageRequest')
    CopyImageResult = Shapes::StructureShape.new(name: 'CopyImageResult')
    CopySnapshotRequest = Shapes::StructureShape.new(name: 'CopySnapshotRequest')
    CopySnapshotRequestPSU = Shapes::StringShape.new(name: 'CopySnapshotRequestPSU')
    CopySnapshotResult = Shapes::StructureShape.new(name: 'CopySnapshotResult')
    CopyTagsFromSource = Shapes::StringShape.new(name: 'CopyTagsFromSource')
    CoreCount = Shapes::IntegerShape.new(name: 'CoreCount')
    CoreCountList = Shapes::ListShape.new(name: 'CoreCountList')
    CoreNetworkArn = Shapes::StringShape.new(name: 'CoreNetworkArn')
    CpuManufacturer = Shapes::StringShape.new(name: 'CpuManufacturer')
    CpuManufacturerName = Shapes::StringShape.new(name: 'CpuManufacturerName')
    CpuManufacturerSet = Shapes::ListShape.new(name: 'CpuManufacturerSet')
    CpuOptions = Shapes::StructureShape.new(name: 'CpuOptions')
    CpuOptionsRequest = Shapes::StructureShape.new(name: 'CpuOptionsRequest')
    CpuPerformanceFactor = Shapes::StructureShape.new(name: 'CpuPerformanceFactor')
    CpuPerformanceFactorRequest = Shapes::StructureShape.new(name: 'CpuPerformanceFactorRequest')
    CreateCapacityReservationBySplittingRequest = Shapes::StructureShape.new(name: 'CreateCapacityReservationBySplittingRequest')
    CreateCapacityReservationBySplittingResult = Shapes::StructureShape.new(name: 'CreateCapacityReservationBySplittingResult')
    CreateCapacityReservationFleetRequest = Shapes::StructureShape.new(name: 'CreateCapacityReservationFleetRequest')
    CreateCapacityReservationFleetResult = Shapes::StructureShape.new(name: 'CreateCapacityReservationFleetResult')
    CreateCapacityReservationRequest = Shapes::StructureShape.new(name: 'CreateCapacityReservationRequest')
    CreateCapacityReservationResult = Shapes::StructureShape.new(name: 'CreateCapacityReservationResult')
    CreateCarrierGatewayRequest = Shapes::StructureShape.new(name: 'CreateCarrierGatewayRequest')
    CreateCarrierGatewayResult = Shapes::StructureShape.new(name: 'CreateCarrierGatewayResult')
    CreateClientVpnEndpointRequest = Shapes::StructureShape.new(name: 'CreateClientVpnEndpointRequest')
    CreateClientVpnEndpointResult = Shapes::StructureShape.new(name: 'CreateClientVpnEndpointResult')
    CreateClientVpnRouteRequest = Shapes::StructureShape.new(name: 'CreateClientVpnRouteRequest')
    CreateClientVpnRouteResult = Shapes::StructureShape.new(name: 'CreateClientVpnRouteResult')
    CreateCoipCidrRequest = Shapes::StructureShape.new(name: 'CreateCoipCidrRequest')
    CreateCoipCidrResult = Shapes::StructureShape.new(name: 'CreateCoipCidrResult')
    CreateCoipPoolRequest = Shapes::StructureShape.new(name: 'CreateCoipPoolRequest')
    CreateCoipPoolResult = Shapes::StructureShape.new(name: 'CreateCoipPoolResult')
    CreateCustomerGatewayRequest = Shapes::StructureShape.new(name: 'CreateCustomerGatewayRequest')
    CreateCustomerGatewayResult = Shapes::StructureShape.new(name: 'CreateCustomerGatewayResult')
    CreateDefaultSubnetRequest = Shapes::StructureShape.new(name: 'CreateDefaultSubnetRequest')
    CreateDefaultSubnetResult = Shapes::StructureShape.new(name: 'CreateDefaultSubnetResult')
    CreateDefaultVpcRequest = Shapes::StructureShape.new(name: 'CreateDefaultVpcRequest')
    CreateDefaultVpcResult = Shapes::StructureShape.new(name: 'CreateDefaultVpcResult')
    CreateDhcpOptionsRequest = Shapes::StructureShape.new(name: 'CreateDhcpOptionsRequest')
    CreateDhcpOptionsResult = Shapes::StructureShape.new(name: 'CreateDhcpOptionsResult')
    CreateEgressOnlyInternetGatewayRequest = Shapes::StructureShape.new(name: 'CreateEgressOnlyInternetGatewayRequest')
    CreateEgressOnlyInternetGatewayResult = Shapes::StructureShape.new(name: 'CreateEgressOnlyInternetGatewayResult')
    CreateFleetError = Shapes::StructureShape.new(name: 'CreateFleetError')
    CreateFleetErrorsSet = Shapes::ListShape.new(name: 'CreateFleetErrorsSet')
    CreateFleetInstance = Shapes::StructureShape.new(name: 'CreateFleetInstance')
    CreateFleetInstancesSet = Shapes::ListShape.new(name: 'CreateFleetInstancesSet')
    CreateFleetRequest = Shapes::StructureShape.new(name: 'CreateFleetRequest')
    CreateFleetResult = Shapes::StructureShape.new(name: 'CreateFleetResult')
    CreateFlowLogsRequest = Shapes::StructureShape.new(name: 'CreateFlowLogsRequest')
    CreateFlowLogsResult = Shapes::StructureShape.new(name: 'CreateFlowLogsResult')
    CreateFpgaImageRequest = Shapes::StructureShape.new(name: 'CreateFpgaImageRequest')
    CreateFpgaImageResult = Shapes::StructureShape.new(name: 'CreateFpgaImageResult')
    CreateImageRequest = Shapes::StructureShape.new(name: 'CreateImageRequest')
    CreateImageResult = Shapes::StructureShape.new(name: 'CreateImageResult')
    CreateInstanceConnectEndpointRequest = Shapes::StructureShape.new(name: 'CreateInstanceConnectEndpointRequest')
    CreateInstanceConnectEndpointResult = Shapes::StructureShape.new(name: 'CreateInstanceConnectEndpointResult')
    CreateInstanceEventWindowRequest = Shapes::StructureShape.new(name: 'CreateInstanceEventWindowRequest')
    CreateInstanceEventWindowResult = Shapes::StructureShape.new(name: 'CreateInstanceEventWindowResult')
    CreateInstanceExportTaskRequest = Shapes::StructureShape.new(name: 'CreateInstanceExportTaskRequest')
    CreateInstanceExportTaskResult = Shapes::StructureShape.new(name: 'CreateInstanceExportTaskResult')
    CreateInternetGatewayRequest = Shapes::StructureShape.new(name: 'CreateInternetGatewayRequest')
    CreateInternetGatewayResult = Shapes::StructureShape.new(name: 'CreateInternetGatewayResult')
    CreateIpamExternalResourceVerificationTokenRequest = Shapes::StructureShape.new(name: 'CreateIpamExternalResourceVerificationTokenRequest')
    CreateIpamExternalResourceVerificationTokenResult = Shapes::StructureShape.new(name: 'CreateIpamExternalResourceVerificationTokenResult')
    CreateIpamPoolRequest = Shapes::StructureShape.new(name: 'CreateIpamPoolRequest')
    CreateIpamPoolResult = Shapes::StructureShape.new(name: 'CreateIpamPoolResult')
    CreateIpamRequest = Shapes::StructureShape.new(name: 'CreateIpamRequest')
    CreateIpamResourceDiscoveryRequest = Shapes::StructureShape.new(name: 'CreateIpamResourceDiscoveryRequest')
    CreateIpamResourceDiscoveryResult = Shapes::StructureShape.new(name: 'CreateIpamResourceDiscoveryResult')
    CreateIpamResult = Shapes::StructureShape.new(name: 'CreateIpamResult')
    CreateIpamScopeRequest = Shapes::StructureShape.new(name: 'CreateIpamScopeRequest')
    CreateIpamScopeResult = Shapes::StructureShape.new(name: 'CreateIpamScopeResult')
    CreateKeyPairRequest = Shapes::StructureShape.new(name: 'CreateKeyPairRequest')
    CreateLaunchTemplateRequest = Shapes::StructureShape.new(name: 'CreateLaunchTemplateRequest')
    CreateLaunchTemplateResult = Shapes::StructureShape.new(name: 'CreateLaunchTemplateResult')
    CreateLaunchTemplateVersionRequest = Shapes::StructureShape.new(name: 'CreateLaunchTemplateVersionRequest')
    CreateLaunchTemplateVersionResult = Shapes::StructureShape.new(name: 'CreateLaunchTemplateVersionResult')
    CreateLocalGatewayRouteRequest = Shapes::StructureShape.new(name: 'CreateLocalGatewayRouteRequest')
    CreateLocalGatewayRouteResult = Shapes::StructureShape.new(name: 'CreateLocalGatewayRouteResult')
    CreateLocalGatewayRouteTableRequest = Shapes::StructureShape.new(name: 'CreateLocalGatewayRouteTableRequest')
    CreateLocalGatewayRouteTableResult = Shapes::StructureShape.new(name: 'CreateLocalGatewayRouteTableResult')
    CreateLocalGatewayRouteTableVirtualInterfaceGroupAssociationRequest = Shapes::StructureShape.new(name: 'CreateLocalGatewayRouteTableVirtualInterfaceGroupAssociationRequest')
    CreateLocalGatewayRouteTableVirtualInterfaceGroupAssociationResult = Shapes::StructureShape.new(name: 'CreateLocalGatewayRouteTableVirtualInterfaceGroupAssociationResult')
    CreateLocalGatewayRouteTableVpcAssociationRequest = Shapes::StructureShape.new(name: 'CreateLocalGatewayRouteTableVpcAssociationRequest')
    CreateLocalGatewayRouteTableVpcAssociationResult = Shapes::StructureShape.new(name: 'CreateLocalGatewayRouteTableVpcAssociationResult')
    CreateManagedPrefixListRequest = Shapes::StructureShape.new(name: 'CreateManagedPrefixListRequest')
    CreateManagedPrefixListResult = Shapes::StructureShape.new(name: 'CreateManagedPrefixListResult')
    CreateNatGatewayRequest = Shapes::StructureShape.new(name: 'CreateNatGatewayRequest')
    CreateNatGatewayResult = Shapes::StructureShape.new(name: 'CreateNatGatewayResult')
    CreateNetworkAclEntryRequest = Shapes::StructureShape.new(name: 'CreateNetworkAclEntryRequest')
    CreateNetworkAclRequest = Shapes::StructureShape.new(name: 'CreateNetworkAclRequest')
    CreateNetworkAclResult = Shapes::StructureShape.new(name: 'CreateNetworkAclResult')
    CreateNetworkInsightsAccessScopeRequest = Shapes::StructureShape.new(name: 'CreateNetworkInsightsAccessScopeRequest')
    CreateNetworkInsightsAccessScopeResult = Shapes::StructureShape.new(name: 'CreateNetworkInsightsAccessScopeResult')
    CreateNetworkInsightsPathRequest = Shapes::StructureShape.new(name: 'CreateNetworkInsightsPathRequest')
    CreateNetworkInsightsPathResult = Shapes::StructureShape.new(name: 'CreateNetworkInsightsPathResult')
    CreateNetworkInterfacePermissionRequest = Shapes::StructureShape.new(name: 'CreateNetworkInterfacePermissionRequest')
    CreateNetworkInterfacePermissionResult = Shapes::StructureShape.new(name: 'CreateNetworkInterfacePermissionResult')
    CreateNetworkInterfaceRequest = Shapes::StructureShape.new(name: 'CreateNetworkInterfaceRequest')
    CreateNetworkInterfaceResult = Shapes::StructureShape.new(name: 'CreateNetworkInterfaceResult')
    CreatePlacementGroupRequest = Shapes::StructureShape.new(name: 'CreatePlacementGroupRequest')
    CreatePlacementGroupResult = Shapes::StructureShape.new(name: 'CreatePlacementGroupResult')
    CreatePublicIpv4PoolRequest = Shapes::StructureShape.new(name: 'CreatePublicIpv4PoolRequest')
    CreatePublicIpv4PoolResult = Shapes::StructureShape.new(name: 'CreatePublicIpv4PoolResult')
    CreateReplaceRootVolumeTaskRequest = Shapes::StructureShape.new(name: 'CreateReplaceRootVolumeTaskRequest')
    CreateReplaceRootVolumeTaskResult = Shapes::StructureShape.new(name: 'CreateReplaceRootVolumeTaskResult')
    CreateReservedInstancesListingRequest = Shapes::StructureShape.new(name: 'CreateReservedInstancesListingRequest')
    CreateReservedInstancesListingResult = Shapes::StructureShape.new(name: 'CreateReservedInstancesListingResult')
    CreateRestoreImageTaskRequest = Shapes::StructureShape.new(name: 'CreateRestoreImageTaskRequest')
    CreateRestoreImageTaskResult = Shapes::StructureShape.new(name: 'CreateRestoreImageTaskResult')
    CreateRouteRequest = Shapes::StructureShape.new(name: 'CreateRouteRequest')
    CreateRouteResult = Shapes::StructureShape.new(name: 'CreateRouteResult')
    CreateRouteTableRequest = Shapes::StructureShape.new(name: 'CreateRouteTableRequest')
    CreateRouteTableResult = Shapes::StructureShape.new(name: 'CreateRouteTableResult')
    CreateSecurityGroupRequest = Shapes::StructureShape.new(name: 'CreateSecurityGroupRequest')
    CreateSecurityGroupResult = Shapes::StructureShape.new(name: 'CreateSecurityGroupResult')
    CreateSnapshotRequest = Shapes::StructureShape.new(name: 'CreateSnapshotRequest')
    CreateSnapshotsRequest = Shapes::StructureShape.new(name: 'CreateSnapshotsRequest')
    CreateSnapshotsResult = Shapes::StructureShape.new(name: 'CreateSnapshotsResult')
    CreateSpotDatafeedSubscriptionRequest = Shapes::StructureShape.new(name: 'CreateSpotDatafeedSubscriptionRequest')
    CreateSpotDatafeedSubscriptionResult = Shapes::StructureShape.new(name: 'CreateSpotDatafeedSubscriptionResult')
    CreateStoreImageTaskRequest = Shapes::StructureShape.new(name: 'CreateStoreImageTaskRequest')
    CreateStoreImageTaskResult = Shapes::StructureShape.new(name: 'CreateStoreImageTaskResult')
    CreateSubnetCidrReservationRequest = Shapes::StructureShape.new(name: 'CreateSubnetCidrReservationRequest')
    CreateSubnetCidrReservationResult = Shapes::StructureShape.new(name: 'CreateSubnetCidrReservationResult')
    CreateSubnetRequest = Shapes::StructureShape.new(name: 'CreateSubnetRequest')
    CreateSubnetResult = Shapes::StructureShape.new(name: 'CreateSubnetResult')
    CreateTagsRequest = Shapes::StructureShape.new(name: 'CreateTagsRequest')
    CreateTrafficMirrorFilterRequest = Shapes::StructureShape.new(name: 'CreateTrafficMirrorFilterRequest')
    CreateTrafficMirrorFilterResult = Shapes::StructureShape.new(name: 'CreateTrafficMirrorFilterResult')
    CreateTrafficMirrorFilterRuleRequest = Shapes::StructureShape.new(name: 'CreateTrafficMirrorFilterRuleRequest')
    CreateTrafficMirrorFilterRuleResult = Shapes::StructureShape.new(name: 'CreateTrafficMirrorFilterRuleResult')
    CreateTrafficMirrorSessionRequest = Shapes::StructureShape.new(name: 'CreateTrafficMirrorSessionRequest')
    CreateTrafficMirrorSessionResult = Shapes::StructureShape.new(name: 'CreateTrafficMirrorSessionResult')
    CreateTrafficMirrorTargetRequest = Shapes::StructureShape.new(name: 'CreateTrafficMirrorTargetRequest')
    CreateTrafficMirrorTargetResult = Shapes::StructureShape.new(name: 'CreateTrafficMirrorTargetResult')
    CreateTransitGatewayConnectPeerRequest = Shapes::StructureShape.new(name: 'CreateTransitGatewayConnectPeerRequest')
    CreateTransitGatewayConnectPeerResult = Shapes::StructureShape.new(name: 'CreateTransitGatewayConnectPeerResult')
    CreateTransitGatewayConnectRequest = Shapes::StructureShape.new(name: 'CreateTransitGatewayConnectRequest')
    CreateTransitGatewayConnectRequestOptions = Shapes::StructureShape.new(name: 'CreateTransitGatewayConnectRequestOptions')
    CreateTransitGatewayConnectResult = Shapes::StructureShape.new(name: 'CreateTransitGatewayConnectResult')
    CreateTransitGatewayMulticastDomainRequest = Shapes::StructureShape.new(name: 'CreateTransitGatewayMulticastDomainRequest')
    CreateTransitGatewayMulticastDomainRequestOptions = Shapes::StructureShape.new(name: 'CreateTransitGatewayMulticastDomainRequestOptions')
    CreateTransitGatewayMulticastDomainResult = Shapes::StructureShape.new(name: 'CreateTransitGatewayMulticastDomainResult')
    CreateTransitGatewayPeeringAttachmentRequest = Shapes::StructureShape.new(name: 'CreateTransitGatewayPeeringAttachmentRequest')
    CreateTransitGatewayPeeringAttachmentRequestOptions = Shapes::StructureShape.new(name: 'CreateTransitGatewayPeeringAttachmentRequestOptions')
    CreateTransitGatewayPeeringAttachmentResult = Shapes::StructureShape.new(name: 'CreateTransitGatewayPeeringAttachmentResult')
    CreateTransitGatewayPolicyTableRequest = Shapes::StructureShape.new(name: 'CreateTransitGatewayPolicyTableRequest')
    CreateTransitGatewayPolicyTableResult = Shapes::StructureShape.new(name: 'CreateTransitGatewayPolicyTableResult')
    CreateTransitGatewayPrefixListReferenceRequest = Shapes::StructureShape.new(name: 'CreateTransitGatewayPrefixListReferenceRequest')
    CreateTransitGatewayPrefixListReferenceResult = Shapes::StructureShape.new(name: 'CreateTransitGatewayPrefixListReferenceResult')
    CreateTransitGatewayRequest = Shapes::StructureShape.new(name: 'CreateTransitGatewayRequest')
    CreateTransitGatewayResult = Shapes::StructureShape.new(name: 'CreateTransitGatewayResult')
    CreateTransitGatewayRouteRequest = Shapes::StructureShape.new(name: 'CreateTransitGatewayRouteRequest')
    CreateTransitGatewayRouteResult = Shapes::StructureShape.new(name: 'CreateTransitGatewayRouteResult')
    CreateTransitGatewayRouteTableAnnouncementRequest = Shapes::StructureShape.new(name: 'CreateTransitGatewayRouteTableAnnouncementRequest')
    CreateTransitGatewayRouteTableAnnouncementResult = Shapes::StructureShape.new(name: 'CreateTransitGatewayRouteTableAnnouncementResult')
    CreateTransitGatewayRouteTableRequest = Shapes::StructureShape.new(name: 'CreateTransitGatewayRouteTableRequest')
    CreateTransitGatewayRouteTableResult = Shapes::StructureShape.new(name: 'CreateTransitGatewayRouteTableResult')
    CreateTransitGatewayVpcAttachmentRequest = Shapes::StructureShape.new(name: 'CreateTransitGatewayVpcAttachmentRequest')
    CreateTransitGatewayVpcAttachmentRequestOptions = Shapes::StructureShape.new(name: 'CreateTransitGatewayVpcAttachmentRequestOptions')
    CreateTransitGatewayVpcAttachmentResult = Shapes::StructureShape.new(name: 'CreateTransitGatewayVpcAttachmentResult')
    CreateVerifiedAccessEndpointCidrOptions = Shapes::StructureShape.new(name: 'CreateVerifiedAccessEndpointCidrOptions')
    CreateVerifiedAccessEndpointEniOptions = Shapes::StructureShape.new(name: 'CreateVerifiedAccessEndpointEniOptions')
    CreateVerifiedAccessEndpointLoadBalancerOptions = Shapes::StructureShape.new(name: 'CreateVerifiedAccessEndpointLoadBalancerOptions')
    CreateVerifiedAccessEndpointPortRange = Shapes::StructureShape.new(name: 'CreateVerifiedAccessEndpointPortRange')
    CreateVerifiedAccessEndpointPortRangeList = Shapes::ListShape.new(name: 'CreateVerifiedAccessEndpointPortRangeList')
    CreateVerifiedAccessEndpointRdsOptions = Shapes::StructureShape.new(name: 'CreateVerifiedAccessEndpointRdsOptions')
    CreateVerifiedAccessEndpointRequest = Shapes::StructureShape.new(name: 'CreateVerifiedAccessEndpointRequest')
    CreateVerifiedAccessEndpointResult = Shapes::StructureShape.new(name: 'CreateVerifiedAccessEndpointResult')
    CreateVerifiedAccessEndpointSubnetIdList = Shapes::ListShape.new(name: 'CreateVerifiedAccessEndpointSubnetIdList')
    CreateVerifiedAccessGroupRequest = Shapes::StructureShape.new(name: 'CreateVerifiedAccessGroupRequest')
    CreateVerifiedAccessGroupResult = Shapes::StructureShape.new(name: 'CreateVerifiedAccessGroupResult')
    CreateVerifiedAccessInstanceRequest = Shapes::StructureShape.new(name: 'CreateVerifiedAccessInstanceRequest')
    CreateVerifiedAccessInstanceResult = Shapes::StructureShape.new(name: 'CreateVerifiedAccessInstanceResult')
    CreateVerifiedAccessNativeApplicationOidcOptions = Shapes::StructureShape.new(name: 'CreateVerifiedAccessNativeApplicationOidcOptions')
    CreateVerifiedAccessTrustProviderDeviceOptions = Shapes::StructureShape.new(name: 'CreateVerifiedAccessTrustProviderDeviceOptions')
    CreateVerifiedAccessTrustProviderOidcOptions = Shapes::StructureShape.new(name: 'CreateVerifiedAccessTrustProviderOidcOptions')
    CreateVerifiedAccessTrustProviderRequest = Shapes::StructureShape.new(name: 'CreateVerifiedAccessTrustProviderRequest')
    CreateVerifiedAccessTrustProviderResult = Shapes::StructureShape.new(name: 'CreateVerifiedAccessTrustProviderResult')
    CreateVolumePermission = Shapes::StructureShape.new(name: 'CreateVolumePermission')
    CreateVolumePermissionList = Shapes::ListShape.new(name: 'CreateVolumePermissionList')
    CreateVolumePermissionModifications = Shapes::StructureShape.new(name: 'CreateVolumePermissionModifications')
    CreateVolumeRequest = Shapes::StructureShape.new(name: 'CreateVolumeRequest')
    CreateVpcBlockPublicAccessExclusionRequest = Shapes::StructureShape.new(name: 'CreateVpcBlockPublicAccessExclusionRequest')
    CreateVpcBlockPublicAccessExclusionResult = Shapes::StructureShape.new(name: 'CreateVpcBlockPublicAccessExclusionResult')
    CreateVpcEndpointConnectionNotificationRequest = Shapes::StructureShape.new(name: 'CreateVpcEndpointConnectionNotificationRequest')
    CreateVpcEndpointConnectionNotificationResult = Shapes::StructureShape.new(name: 'CreateVpcEndpointConnectionNotificationResult')
    CreateVpcEndpointRequest = Shapes::StructureShape.new(name: 'CreateVpcEndpointRequest')
    CreateVpcEndpointResult = Shapes::StructureShape.new(name: 'CreateVpcEndpointResult')
    CreateVpcEndpointServiceConfigurationRequest = Shapes::StructureShape.new(name: 'CreateVpcEndpointServiceConfigurationRequest')
    CreateVpcEndpointServiceConfigurationResult = Shapes::StructureShape.new(name: 'CreateVpcEndpointServiceConfigurationResult')
    CreateVpcPeeringConnectionRequest = Shapes::StructureShape.new(name: 'CreateVpcPeeringConnectionRequest')
    CreateVpcPeeringConnectionResult = Shapes::StructureShape.new(name: 'CreateVpcPeeringConnectionResult')
    CreateVpcRequest = Shapes::StructureShape.new(name: 'CreateVpcRequest')
    CreateVpcResult = Shapes::StructureShape.new(name: 'CreateVpcResult')
    CreateVpnConnectionRequest = Shapes::StructureShape.new(name: 'CreateVpnConnectionRequest')
    CreateVpnConnectionResult = Shapes::StructureShape.new(name: 'CreateVpnConnectionResult')
    CreateVpnConnectionRouteRequest = Shapes::StructureShape.new(name: 'CreateVpnConnectionRouteRequest')
    CreateVpnGatewayRequest = Shapes::StructureShape.new(name: 'CreateVpnGatewayRequest')
    CreateVpnGatewayResult = Shapes::StructureShape.new(name: 'CreateVpnGatewayResult')
    CreditSpecification = Shapes::StructureShape.new(name: 'CreditSpecification')
    CreditSpecificationRequest = Shapes::StructureShape.new(name: 'CreditSpecificationRequest')
    CurrencyCodeValues = Shapes::StringShape.new(name: 'CurrencyCodeValues')
    CurrentGenerationFlag = Shapes::BooleanShape.new(name: 'CurrentGenerationFlag')
    CustomerGateway = Shapes::StructureShape.new(name: 'CustomerGateway')
    CustomerGatewayId = Shapes::StringShape.new(name: 'CustomerGatewayId')
    CustomerGatewayIdStringList = Shapes::ListShape.new(name: 'CustomerGatewayIdStringList')
    CustomerGatewayList = Shapes::ListShape.new(name: 'CustomerGatewayList')
    DITMaxResults = Shapes::IntegerShape.new(name: 'DITMaxResults')
    DITOMaxResults = Shapes::IntegerShape.new(name: 'DITOMaxResults')
    DataQueries = Shapes::ListShape.new(name: 'DataQueries')
    DataQuery = Shapes::StructureShape.new(name: 'DataQuery')
    DataResponse = Shapes::StructureShape.new(name: 'DataResponse')
    DataResponses = Shapes::ListShape.new(name: 'DataResponses')
    DatafeedSubscriptionState = Shapes::StringShape.new(name: 'DatafeedSubscriptionState')
    DateTime = Shapes::TimestampShape.new(name: 'DateTime')
    DeclarativePoliciesMaxResults = Shapes::IntegerShape.new(name: 'DeclarativePoliciesMaxResults')
    DeclarativePoliciesReport = Shapes::StructureShape.new(name: 'DeclarativePoliciesReport')
    DeclarativePoliciesReportId = Shapes::StringShape.new(name: 'DeclarativePoliciesReportId')
    DeclarativePoliciesReportList = Shapes::ListShape.new(name: 'DeclarativePoliciesReportList')
    DedicatedHostFlag = Shapes::BooleanShape.new(name: 'DedicatedHostFlag')
    DedicatedHostId = Shapes::StringShape.new(name: 'DedicatedHostId')
    DedicatedHostIdList = Shapes::ListShape.new(name: 'DedicatedHostIdList')
    DefaultInstanceMetadataEndpointState = Shapes::StringShape.new(name: 'DefaultInstanceMetadataEndpointState')
    DefaultInstanceMetadataTagsState = Shapes::StringShape.new(name: 'DefaultInstanceMetadataTagsState')
    DefaultNetworkCardIndex = Shapes::IntegerShape.new(name: 'DefaultNetworkCardIndex')
    DefaultRouteTableAssociationValue = Shapes::StringShape.new(name: 'DefaultRouteTableAssociationValue')
    DefaultRouteTablePropagationValue = Shapes::StringShape.new(name: 'DefaultRouteTablePropagationValue')
    DefaultTargetCapacityType = Shapes::StringShape.new(name: 'DefaultTargetCapacityType')
    DefaultingDhcpOptionsId = Shapes::StringShape.new(name: 'DefaultingDhcpOptionsId')
    DeleteCarrierGatewayRequest = Shapes::StructureShape.new(name: 'DeleteCarrierGatewayRequest')
    DeleteCarrierGatewayResult = Shapes::StructureShape.new(name: 'DeleteCarrierGatewayResult')
    DeleteClientVpnEndpointRequest = Shapes::StructureShape.new(name: 'DeleteClientVpnEndpointRequest')
    DeleteClientVpnEndpointResult = Shapes::StructureShape.new(name: 'DeleteClientVpnEndpointResult')
    DeleteClientVpnRouteRequest = Shapes::StructureShape.new(name: 'DeleteClientVpnRouteRequest')
    DeleteClientVpnRouteResult = Shapes::StructureShape.new(name: 'DeleteClientVpnRouteResult')
    DeleteCoipCidrRequest = Shapes::StructureShape.new(name: 'DeleteCoipCidrRequest')
    DeleteCoipCidrResult = Shapes::StructureShape.new(name: 'DeleteCoipCidrResult')
    DeleteCoipPoolRequest = Shapes::StructureShape.new(name: 'DeleteCoipPoolRequest')
    DeleteCoipPoolResult = Shapes::StructureShape.new(name: 'DeleteCoipPoolResult')
    DeleteCustomerGatewayRequest = Shapes::StructureShape.new(name: 'DeleteCustomerGatewayRequest')
    DeleteDhcpOptionsRequest = Shapes::StructureShape.new(name: 'DeleteDhcpOptionsRequest')
    DeleteEgressOnlyInternetGatewayRequest = Shapes::StructureShape.new(name: 'DeleteEgressOnlyInternetGatewayRequest')
    DeleteEgressOnlyInternetGatewayResult = Shapes::StructureShape.new(name: 'DeleteEgressOnlyInternetGatewayResult')
    DeleteFleetError = Shapes::StructureShape.new(name: 'DeleteFleetError')
    DeleteFleetErrorCode = Shapes::StringShape.new(name: 'DeleteFleetErrorCode')
    DeleteFleetErrorItem = Shapes::StructureShape.new(name: 'DeleteFleetErrorItem')
    DeleteFleetErrorSet = Shapes::ListShape.new(name: 'DeleteFleetErrorSet')
    DeleteFleetSuccessItem = Shapes::StructureShape.new(name: 'DeleteFleetSuccessItem')
    DeleteFleetSuccessSet = Shapes::ListShape.new(name: 'DeleteFleetSuccessSet')
    DeleteFleetsRequest = Shapes::StructureShape.new(name: 'DeleteFleetsRequest')
    DeleteFleetsResult = Shapes::StructureShape.new(name: 'DeleteFleetsResult')
    DeleteFlowLogsRequest = Shapes::StructureShape.new(name: 'DeleteFlowLogsRequest')
    DeleteFlowLogsResult = Shapes::StructureShape.new(name: 'DeleteFlowLogsResult')
    DeleteFpgaImageRequest = Shapes::StructureShape.new(name: 'DeleteFpgaImageRequest')
    DeleteFpgaImageResult = Shapes::StructureShape.new(name: 'DeleteFpgaImageResult')
    DeleteInstanceConnectEndpointRequest = Shapes::StructureShape.new(name: 'DeleteInstanceConnectEndpointRequest')
    DeleteInstanceConnectEndpointResult = Shapes::StructureShape.new(name: 'DeleteInstanceConnectEndpointResult')
    DeleteInstanceEventWindowRequest = Shapes::StructureShape.new(name: 'DeleteInstanceEventWindowRequest')
    DeleteInstanceEventWindowResult = Shapes::StructureShape.new(name: 'DeleteInstanceEventWindowResult')
    DeleteInternetGatewayRequest = Shapes::StructureShape.new(name: 'DeleteInternetGatewayRequest')
    DeleteIpamExternalResourceVerificationTokenRequest = Shapes::StructureShape.new(name: 'DeleteIpamExternalResourceVerificationTokenRequest')
    DeleteIpamExternalResourceVerificationTokenResult = Shapes::StructureShape.new(name: 'DeleteIpamExternalResourceVerificationTokenResult')
    DeleteIpamPoolRequest = Shapes::StructureShape.new(name: 'DeleteIpamPoolRequest')
    DeleteIpamPoolResult = Shapes::StructureShape.new(name: 'DeleteIpamPoolResult')
    DeleteIpamRequest = Shapes::StructureShape.new(name: 'DeleteIpamRequest')
    DeleteIpamResourceDiscoveryRequest = Shapes::StructureShape.new(name: 'DeleteIpamResourceDiscoveryRequest')
    DeleteIpamResourceDiscoveryResult = Shapes::StructureShape.new(name: 'DeleteIpamResourceDiscoveryResult')
    DeleteIpamResult = Shapes::StructureShape.new(name: 'DeleteIpamResult')
    DeleteIpamScopeRequest = Shapes::StructureShape.new(name: 'DeleteIpamScopeRequest')
    DeleteIpamScopeResult = Shapes::StructureShape.new(name: 'DeleteIpamScopeResult')
    DeleteKeyPairRequest = Shapes::StructureShape.new(name: 'DeleteKeyPairRequest')
    DeleteKeyPairResult = Shapes::StructureShape.new(name: 'DeleteKeyPairResult')
    DeleteLaunchTemplateRequest = Shapes::StructureShape.new(name: 'DeleteLaunchTemplateRequest')
    DeleteLaunchTemplateResult = Shapes::StructureShape.new(name: 'DeleteLaunchTemplateResult')
    DeleteLaunchTemplateVersionsRequest = Shapes::StructureShape.new(name: 'DeleteLaunchTemplateVersionsRequest')
    DeleteLaunchTemplateVersionsResponseErrorItem = Shapes::StructureShape.new(name: 'DeleteLaunchTemplateVersionsResponseErrorItem')
    DeleteLaunchTemplateVersionsResponseErrorSet = Shapes::ListShape.new(name: 'DeleteLaunchTemplateVersionsResponseErrorSet')
    DeleteLaunchTemplateVersionsResponseSuccessItem = Shapes::StructureShape.new(name: 'DeleteLaunchTemplateVersionsResponseSuccessItem')
    DeleteLaunchTemplateVersionsResponseSuccessSet = Shapes::ListShape.new(name: 'DeleteLaunchTemplateVersionsResponseSuccessSet')
    DeleteLaunchTemplateVersionsResult = Shapes::StructureShape.new(name: 'DeleteLaunchTemplateVersionsResult')
    DeleteLocalGatewayRouteRequest = Shapes::StructureShape.new(name: 'DeleteLocalGatewayRouteRequest')
    DeleteLocalGatewayRouteResult = Shapes::StructureShape.new(name: 'DeleteLocalGatewayRouteResult')
    DeleteLocalGatewayRouteTableRequest = Shapes::StructureShape.new(name: 'DeleteLocalGatewayRouteTableRequest')
    DeleteLocalGatewayRouteTableResult = Shapes::StructureShape.new(name: 'DeleteLocalGatewayRouteTableResult')
    DeleteLocalGatewayRouteTableVirtualInterfaceGroupAssociationRequest = Shapes::StructureShape.new(name: 'DeleteLocalGatewayRouteTableVirtualInterfaceGroupAssociationRequest')
    DeleteLocalGatewayRouteTableVirtualInterfaceGroupAssociationResult = Shapes::StructureShape.new(name: 'DeleteLocalGatewayRouteTableVirtualInterfaceGroupAssociationResult')
    DeleteLocalGatewayRouteTableVpcAssociationRequest = Shapes::StructureShape.new(name: 'DeleteLocalGatewayRouteTableVpcAssociationRequest')
    DeleteLocalGatewayRouteTableVpcAssociationResult = Shapes::StructureShape.new(name: 'DeleteLocalGatewayRouteTableVpcAssociationResult')
    DeleteManagedPrefixListRequest = Shapes::StructureShape.new(name: 'DeleteManagedPrefixListRequest')
    DeleteManagedPrefixListResult = Shapes::StructureShape.new(name: 'DeleteManagedPrefixListResult')
    DeleteNatGatewayRequest = Shapes::StructureShape.new(name: 'DeleteNatGatewayRequest')
    DeleteNatGatewayResult = Shapes::StructureShape.new(name: 'DeleteNatGatewayResult')
    DeleteNetworkAclEntryRequest = Shapes::StructureShape.new(name: 'DeleteNetworkAclEntryRequest')
    DeleteNetworkAclRequest = Shapes::StructureShape.new(name: 'DeleteNetworkAclRequest')
    DeleteNetworkInsightsAccessScopeAnalysisRequest = Shapes::StructureShape.new(name: 'DeleteNetworkInsightsAccessScopeAnalysisRequest')
    DeleteNetworkInsightsAccessScopeAnalysisResult = Shapes::StructureShape.new(name: 'DeleteNetworkInsightsAccessScopeAnalysisResult')
    DeleteNetworkInsightsAccessScopeRequest = Shapes::StructureShape.new(name: 'DeleteNetworkInsightsAccessScopeRequest')
    DeleteNetworkInsightsAccessScopeResult = Shapes::StructureShape.new(name: 'DeleteNetworkInsightsAccessScopeResult')
    DeleteNetworkInsightsAnalysisRequest = Shapes::StructureShape.new(name: 'DeleteNetworkInsightsAnalysisRequest')
    DeleteNetworkInsightsAnalysisResult = Shapes::StructureShape.new(name: 'DeleteNetworkInsightsAnalysisResult')
    DeleteNetworkInsightsPathRequest = Shapes::StructureShape.new(name: 'DeleteNetworkInsightsPathRequest')
    DeleteNetworkInsightsPathResult = Shapes::StructureShape.new(name: 'DeleteNetworkInsightsPathResult')
    DeleteNetworkInterfacePermissionRequest = Shapes::StructureShape.new(name: 'DeleteNetworkInterfacePermissionRequest')
    DeleteNetworkInterfacePermissionResult = Shapes::StructureShape.new(name: 'DeleteNetworkInterfacePermissionResult')
    DeleteNetworkInterfaceRequest = Shapes::StructureShape.new(name: 'DeleteNetworkInterfaceRequest')
    DeletePlacementGroupRequest = Shapes::StructureShape.new(name: 'DeletePlacementGroupRequest')
    DeletePublicIpv4PoolRequest = Shapes::StructureShape.new(name: 'DeletePublicIpv4PoolRequest')
    DeletePublicIpv4PoolResult = Shapes::StructureShape.new(name: 'DeletePublicIpv4PoolResult')
    DeleteQueuedReservedInstancesError = Shapes::StructureShape.new(name: 'DeleteQueuedReservedInstancesError')
    DeleteQueuedReservedInstancesErrorCode = Shapes::StringShape.new(name: 'DeleteQueuedReservedInstancesErrorCode')
    DeleteQueuedReservedInstancesIdList = Shapes::ListShape.new(name: 'DeleteQueuedReservedInstancesIdList')
    DeleteQueuedReservedInstancesRequest = Shapes::StructureShape.new(name: 'DeleteQueuedReservedInstancesRequest')
    DeleteQueuedReservedInstancesResult = Shapes::StructureShape.new(name: 'DeleteQueuedReservedInstancesResult')
    DeleteRouteRequest = Shapes::StructureShape.new(name: 'DeleteRouteRequest')
    DeleteRouteTableRequest = Shapes::StructureShape.new(name: 'DeleteRouteTableRequest')
    DeleteSecurityGroupRequest = Shapes::StructureShape.new(name: 'DeleteSecurityGroupRequest')
    DeleteSecurityGroupResult = Shapes::StructureShape.new(name: 'DeleteSecurityGroupResult')
    DeleteSnapshotRequest = Shapes::StructureShape.new(name: 'DeleteSnapshotRequest')
    DeleteSpotDatafeedSubscriptionRequest = Shapes::StructureShape.new(name: 'DeleteSpotDatafeedSubscriptionRequest')
    DeleteSubnetCidrReservationRequest = Shapes::StructureShape.new(name: 'DeleteSubnetCidrReservationRequest')
    DeleteSubnetCidrReservationResult = Shapes::StructureShape.new(name: 'DeleteSubnetCidrReservationResult')
    DeleteSubnetRequest = Shapes::StructureShape.new(name: 'DeleteSubnetRequest')
    DeleteTagsRequest = Shapes::StructureShape.new(name: 'DeleteTagsRequest')
    DeleteTrafficMirrorFilterRequest = Shapes::StructureShape.new(name: 'DeleteTrafficMirrorFilterRequest')
    DeleteTrafficMirrorFilterResult = Shapes::StructureShape.new(name: 'DeleteTrafficMirrorFilterResult')
    DeleteTrafficMirrorFilterRuleRequest = Shapes::StructureShape.new(name: 'DeleteTrafficMirrorFilterRuleRequest')
    DeleteTrafficMirrorFilterRuleResult = Shapes::StructureShape.new(name: 'DeleteTrafficMirrorFilterRuleResult')
    DeleteTrafficMirrorSessionRequest = Shapes::StructureShape.new(name: 'DeleteTrafficMirrorSessionRequest')
    DeleteTrafficMirrorSessionResult = Shapes::StructureShape.new(name: 'DeleteTrafficMirrorSessionResult')
    DeleteTrafficMirrorTargetRequest = Shapes::StructureShape.new(name: 'DeleteTrafficMirrorTargetRequest')
    DeleteTrafficMirrorTargetResult = Shapes::StructureShape.new(name: 'DeleteTrafficMirrorTargetResult')
    DeleteTransitGatewayConnectPeerRequest = Shapes::StructureShape.new(name: 'DeleteTransitGatewayConnectPeerRequest')
    DeleteTransitGatewayConnectPeerResult = Shapes::StructureShape.new(name: 'DeleteTransitGatewayConnectPeerResult')
    DeleteTransitGatewayConnectRequest = Shapes::StructureShape.new(name: 'DeleteTransitGatewayConnectRequest')
    DeleteTransitGatewayConnectResult = Shapes::StructureShape.new(name: 'DeleteTransitGatewayConnectResult')
    DeleteTransitGatewayMulticastDomainRequest = Shapes::StructureShape.new(name: 'DeleteTransitGatewayMulticastDomainRequest')
    DeleteTransitGatewayMulticastDomainResult = Shapes::StructureShape.new(name: 'DeleteTransitGatewayMulticastDomainResult')
    DeleteTransitGatewayPeeringAttachmentRequest = Shapes::StructureShape.new(name: 'DeleteTransitGatewayPeeringAttachmentRequest')
    DeleteTransitGatewayPeeringAttachmentResult = Shapes::StructureShape.new(name: 'DeleteTransitGatewayPeeringAttachmentResult')
    DeleteTransitGatewayPolicyTableRequest = Shapes::StructureShape.new(name: 'DeleteTransitGatewayPolicyTableRequest')
    DeleteTransitGatewayPolicyTableResult = Shapes::StructureShape.new(name: 'DeleteTransitGatewayPolicyTableResult')
    DeleteTransitGatewayPrefixListReferenceRequest = Shapes::StructureShape.new(name: 'DeleteTransitGatewayPrefixListReferenceRequest')
    DeleteTransitGatewayPrefixListReferenceResult = Shapes::StructureShape.new(name: 'DeleteTransitGatewayPrefixListReferenceResult')
    DeleteTransitGatewayRequest = Shapes::StructureShape.new(name: 'DeleteTransitGatewayRequest')
    DeleteTransitGatewayResult = Shapes::StructureShape.new(name: 'DeleteTransitGatewayResult')
    DeleteTransitGatewayRouteRequest = Shapes::StructureShape.new(name: 'DeleteTransitGatewayRouteRequest')
    DeleteTransitGatewayRouteResult = Shapes::StructureShape.new(name: 'DeleteTransitGatewayRouteResult')
    DeleteTransitGatewayRouteTableAnnouncementRequest = Shapes::StructureShape.new(name: 'DeleteTransitGatewayRouteTableAnnouncementRequest')
    DeleteTransitGatewayRouteTableAnnouncementResult = Shapes::StructureShape.new(name: 'DeleteTransitGatewayRouteTableAnnouncementResult')
    DeleteTransitGatewayRouteTableRequest = Shapes::StructureShape.new(name: 'DeleteTransitGatewayRouteTableRequest')
    DeleteTransitGatewayRouteTableResult = Shapes::StructureShape.new(name: 'DeleteTransitGatewayRouteTableResult')
    DeleteTransitGatewayVpcAttachmentRequest = Shapes::StructureShape.new(name: 'DeleteTransitGatewayVpcAttachmentRequest')
    DeleteTransitGatewayVpcAttachmentResult = Shapes::StructureShape.new(name: 'DeleteTransitGatewayVpcAttachmentResult')
    DeleteVerifiedAccessEndpointRequest = Shapes::StructureShape.new(name: 'DeleteVerifiedAccessEndpointRequest')
    DeleteVerifiedAccessEndpointResult = Shapes::StructureShape.new(name: 'DeleteVerifiedAccessEndpointResult')
    DeleteVerifiedAccessGroupRequest = Shapes::StructureShape.new(name: 'DeleteVerifiedAccessGroupRequest')
    DeleteVerifiedAccessGroupResult = Shapes::StructureShape.new(name: 'DeleteVerifiedAccessGroupResult')
    DeleteVerifiedAccessInstanceRequest = Shapes::StructureShape.new(name: 'DeleteVerifiedAccessInstanceRequest')
    DeleteVerifiedAccessInstanceResult = Shapes::StructureShape.new(name: 'DeleteVerifiedAccessInstanceResult')
    DeleteVerifiedAccessTrustProviderRequest = Shapes::StructureShape.new(name: 'DeleteVerifiedAccessTrustProviderRequest')
    DeleteVerifiedAccessTrustProviderResult = Shapes::StructureShape.new(name: 'DeleteVerifiedAccessTrustProviderResult')
    DeleteVolumeRequest = Shapes::StructureShape.new(name: 'DeleteVolumeRequest')
    DeleteVpcBlockPublicAccessExclusionRequest = Shapes::StructureShape.new(name: 'DeleteVpcBlockPublicAccessExclusionRequest')
    DeleteVpcBlockPublicAccessExclusionResult = Shapes::StructureShape.new(name: 'DeleteVpcBlockPublicAccessExclusionResult')
    DeleteVpcEndpointConnectionNotificationsRequest = Shapes::StructureShape.new(name: 'DeleteVpcEndpointConnectionNotificationsRequest')
    DeleteVpcEndpointConnectionNotificationsResult = Shapes::StructureShape.new(name: 'DeleteVpcEndpointConnectionNotificationsResult')
    DeleteVpcEndpointServiceConfigurationsRequest = Shapes::StructureShape.new(name: 'DeleteVpcEndpointServiceConfigurationsRequest')
    DeleteVpcEndpointServiceConfigurationsResult = Shapes::StructureShape.new(name: 'DeleteVpcEndpointServiceConfigurationsResult')
    DeleteVpcEndpointsRequest = Shapes::StructureShape.new(name: 'DeleteVpcEndpointsRequest')
    DeleteVpcEndpointsResult = Shapes::StructureShape.new(name: 'DeleteVpcEndpointsResult')
    DeleteVpcPeeringConnectionRequest = Shapes::StructureShape.new(name: 'DeleteVpcPeeringConnectionRequest')
    DeleteVpcPeeringConnectionResult = Shapes::StructureShape.new(name: 'DeleteVpcPeeringConnectionResult')
    DeleteVpcRequest = Shapes::StructureShape.new(name: 'DeleteVpcRequest')
    DeleteVpnConnectionRequest = Shapes::StructureShape.new(name: 'DeleteVpnConnectionRequest')
    DeleteVpnConnectionRouteRequest = Shapes::StructureShape.new(name: 'DeleteVpnConnectionRouteRequest')
    DeleteVpnGatewayRequest = Shapes::StructureShape.new(name: 'DeleteVpnGatewayRequest')
    DeprovisionByoipCidrRequest = Shapes::StructureShape.new(name: 'DeprovisionByoipCidrRequest')
    DeprovisionByoipCidrResult = Shapes::StructureShape.new(name: 'DeprovisionByoipCidrResult')
    DeprovisionIpamByoasnRequest = Shapes::StructureShape.new(name: 'DeprovisionIpamByoasnRequest')
    DeprovisionIpamByoasnResult = Shapes::StructureShape.new(name: 'DeprovisionIpamByoasnResult')
    DeprovisionIpamPoolCidrRequest = Shapes::StructureShape.new(name: 'DeprovisionIpamPoolCidrRequest')
    DeprovisionIpamPoolCidrResult = Shapes::StructureShape.new(name: 'DeprovisionIpamPoolCidrResult')
    DeprovisionPublicIpv4PoolCidrRequest = Shapes::StructureShape.new(name: 'DeprovisionPublicIpv4PoolCidrRequest')
    DeprovisionPublicIpv4PoolCidrResult = Shapes::StructureShape.new(name: 'DeprovisionPublicIpv4PoolCidrResult')
    DeprovisionedAddressSet = Shapes::ListShape.new(name: 'DeprovisionedAddressSet')
    DeregisterImageRequest = Shapes::StructureShape.new(name: 'DeregisterImageRequest')
    DeregisterImageResult = Shapes::StructureShape.new(name: 'DeregisterImageResult')
    DeregisterInstanceEventNotificationAttributesRequest = Shapes::StructureShape.new(name: 'DeregisterInstanceEventNotificationAttributesRequest')
    DeregisterInstanceEventNotificationAttributesResult = Shapes::StructureShape.new(name: 'DeregisterInstanceEventNotificationAttributesResult')
    DeregisterInstanceTagAttributeRequest = Shapes::StructureShape.new(name: 'DeregisterInstanceTagAttributeRequest')
    DeregisterTransitGatewayMulticastGroupMembersRequest = Shapes::StructureShape.new(name: 'DeregisterTransitGatewayMulticastGroupMembersRequest')
    DeregisterTransitGatewayMulticastGroupMembersResult = Shapes::StructureShape.new(name: 'DeregisterTransitGatewayMulticastGroupMembersResult')
    DeregisterTransitGatewayMulticastGroupSourcesRequest = Shapes::StructureShape.new(name: 'DeregisterTransitGatewayMulticastGroupSourcesRequest')
    DeregisterTransitGatewayMulticastGroupSourcesResult = Shapes::StructureShape.new(name: 'DeregisterTransitGatewayMulticastGroupSourcesResult')
    DescribeAccountAttributesRequest = Shapes::StructureShape.new(name: 'DescribeAccountAttributesRequest')
    DescribeAccountAttributesResult = Shapes::StructureShape.new(name: 'DescribeAccountAttributesResult')
    DescribeAddressTransfersMaxResults = Shapes::IntegerShape.new(name: 'DescribeAddressTransfersMaxResults')
    DescribeAddressTransfersRequest = Shapes::StructureShape.new(name: 'DescribeAddressTransfersRequest')
    DescribeAddressTransfersResult = Shapes::StructureShape.new(name: 'DescribeAddressTransfersResult')
    DescribeAddressesAttributeRequest = Shapes::StructureShape.new(name: 'DescribeAddressesAttributeRequest')
    DescribeAddressesAttributeResult = Shapes::StructureShape.new(name: 'DescribeAddressesAttributeResult')
    DescribeAddressesRequest = Shapes::StructureShape.new(name: 'DescribeAddressesRequest')
    DescribeAddressesResult = Shapes::StructureShape.new(name: 'DescribeAddressesResult')
    DescribeAggregateIdFormatRequest = Shapes::StructureShape.new(name: 'DescribeAggregateIdFormatRequest')
    DescribeAggregateIdFormatResult = Shapes::StructureShape.new(name: 'DescribeAggregateIdFormatResult')
    DescribeAvailabilityZonesRequest = Shapes::StructureShape.new(name: 'DescribeAvailabilityZonesRequest')
    DescribeAvailabilityZonesResult = Shapes::StructureShape.new(name: 'DescribeAvailabilityZonesResult')
    DescribeAwsNetworkPerformanceMetricSubscriptionsRequest = Shapes::StructureShape.new(name: 'DescribeAwsNetworkPerformanceMetricSubscriptionsRequest')
    DescribeAwsNetworkPerformanceMetricSubscriptionsResult = Shapes::StructureShape.new(name: 'DescribeAwsNetworkPerformanceMetricSubscriptionsResult')
    DescribeBundleTasksRequest = Shapes::StructureShape.new(name: 'DescribeBundleTasksRequest')
    DescribeBundleTasksResult = Shapes::StructureShape.new(name: 'DescribeBundleTasksResult')
    DescribeByoipCidrsMaxResults = Shapes::IntegerShape.new(name: 'DescribeByoipCidrsMaxResults')
    DescribeByoipCidrsRequest = Shapes::StructureShape.new(name: 'DescribeByoipCidrsRequest')
    DescribeByoipCidrsResult = Shapes::StructureShape.new(name: 'DescribeByoipCidrsResult')
    DescribeCapacityBlockExtensionHistoryRequest = Shapes::StructureShape.new(name: 'DescribeCapacityBlockExtensionHistoryRequest')
    DescribeCapacityBlockExtensionHistoryResult = Shapes::StructureShape.new(name: 'DescribeCapacityBlockExtensionHistoryResult')
    DescribeCapacityBlockExtensionOfferingsMaxResults = Shapes::IntegerShape.new(name: 'DescribeCapacityBlockExtensionOfferingsMaxResults')
    DescribeCapacityBlockExtensionOfferingsRequest = Shapes::StructureShape.new(name: 'DescribeCapacityBlockExtensionOfferingsRequest')
    DescribeCapacityBlockExtensionOfferingsResult = Shapes::StructureShape.new(name: 'DescribeCapacityBlockExtensionOfferingsResult')
    DescribeCapacityBlockOfferingsMaxResults = Shapes::IntegerShape.new(name: 'DescribeCapacityBlockOfferingsMaxResults')
    DescribeCapacityBlockOfferingsRequest = Shapes::StructureShape.new(name: 'DescribeCapacityBlockOfferingsRequest')
    DescribeCapacityBlockOfferingsResult = Shapes::StructureShape.new(name: 'DescribeCapacityBlockOfferingsResult')
    DescribeCapacityReservationBillingRequestsRequest = Shapes::StructureShape.new(name: 'DescribeCapacityReservationBillingRequestsRequest')
    DescribeCapacityReservationBillingRequestsRequestMaxResults = Shapes::IntegerShape.new(name: 'DescribeCapacityReservationBillingRequestsRequestMaxResults')
    DescribeCapacityReservationBillingRequestsResult = Shapes::StructureShape.new(name: 'DescribeCapacityReservationBillingRequestsResult')
    DescribeCapacityReservationFleetsMaxResults = Shapes::IntegerShape.new(name: 'DescribeCapacityReservationFleetsMaxResults')
    DescribeCapacityReservationFleetsRequest = Shapes::StructureShape.new(name: 'DescribeCapacityReservationFleetsRequest')
    DescribeCapacityReservationFleetsResult = Shapes::StructureShape.new(name: 'DescribeCapacityReservationFleetsResult')
    DescribeCapacityReservationsMaxResults = Shapes::IntegerShape.new(name: 'DescribeCapacityReservationsMaxResults')
    DescribeCapacityReservationsRequest = Shapes::StructureShape.new(name: 'DescribeCapacityReservationsRequest')
    DescribeCapacityReservationsResult = Shapes::StructureShape.new(name: 'DescribeCapacityReservationsResult')
    DescribeCarrierGatewaysRequest = Shapes::StructureShape.new(name: 'DescribeCarrierGatewaysRequest')
    DescribeCarrierGatewaysResult = Shapes::StructureShape.new(name: 'DescribeCarrierGatewaysResult')
    DescribeClassicLinkInstancesMaxResults = Shapes::IntegerShape.new(name: 'DescribeClassicLinkInstancesMaxResults')
    DescribeClassicLinkInstancesRequest = Shapes::StructureShape.new(name: 'DescribeClassicLinkInstancesRequest')
    DescribeClassicLinkInstancesResult = Shapes::StructureShape.new(name: 'DescribeClassicLinkInstancesResult')
    DescribeClientVpnAuthorizationRulesMaxResults = Shapes::IntegerShape.new(name: 'DescribeClientVpnAuthorizationRulesMaxResults')
    DescribeClientVpnAuthorizationRulesRequest = Shapes::StructureShape.new(name: 'DescribeClientVpnAuthorizationRulesRequest')
    DescribeClientVpnAuthorizationRulesResult = Shapes::StructureShape.new(name: 'DescribeClientVpnAuthorizationRulesResult')
    DescribeClientVpnConnectionsMaxResults = Shapes::IntegerShape.new(name: 'DescribeClientVpnConnectionsMaxResults')
    DescribeClientVpnConnectionsRequest = Shapes::StructureShape.new(name: 'DescribeClientVpnConnectionsRequest')
    DescribeClientVpnConnectionsResult = Shapes::StructureShape.new(name: 'DescribeClientVpnConnectionsResult')
    DescribeClientVpnEndpointMaxResults = Shapes::IntegerShape.new(name: 'DescribeClientVpnEndpointMaxResults')
    DescribeClientVpnEndpointsRequest = Shapes::StructureShape.new(name: 'DescribeClientVpnEndpointsRequest')
    DescribeClientVpnEndpointsResult = Shapes::StructureShape.new(name: 'DescribeClientVpnEndpointsResult')
    DescribeClientVpnRoutesMaxResults = Shapes::IntegerShape.new(name: 'DescribeClientVpnRoutesMaxResults')
    DescribeClientVpnRoutesRequest = Shapes::StructureShape.new(name: 'DescribeClientVpnRoutesRequest')
    DescribeClientVpnRoutesResult = Shapes::StructureShape.new(name: 'DescribeClientVpnRoutesResult')
    DescribeClientVpnTargetNetworksMaxResults = Shapes::IntegerShape.new(name: 'DescribeClientVpnTargetNetworksMaxResults')
    DescribeClientVpnTargetNetworksRequest = Shapes::StructureShape.new(name: 'DescribeClientVpnTargetNetworksRequest')
    DescribeClientVpnTargetNetworksResult = Shapes::StructureShape.new(name: 'DescribeClientVpnTargetNetworksResult')
    DescribeCoipPoolsRequest = Shapes::StructureShape.new(name: 'DescribeCoipPoolsRequest')
    DescribeCoipPoolsResult = Shapes::StructureShape.new(name: 'DescribeCoipPoolsResult')
    DescribeConversionTaskList = Shapes::ListShape.new(name: 'DescribeConversionTaskList')
    DescribeConversionTasksRequest = Shapes::StructureShape.new(name: 'DescribeConversionTasksRequest')
    DescribeConversionTasksResult = Shapes::StructureShape.new(name: 'DescribeConversionTasksResult')
    DescribeCustomerGatewaysRequest = Shapes::StructureShape.new(name: 'DescribeCustomerGatewaysRequest')
    DescribeCustomerGatewaysResult = Shapes::StructureShape.new(name: 'DescribeCustomerGatewaysResult')
    DescribeDeclarativePoliciesReportsRequest = Shapes::StructureShape.new(name: 'DescribeDeclarativePoliciesReportsRequest')
    DescribeDeclarativePoliciesReportsResult = Shapes::StructureShape.new(name: 'DescribeDeclarativePoliciesReportsResult')
    DescribeDhcpOptionsMaxResults = Shapes::IntegerShape.new(name: 'DescribeDhcpOptionsMaxResults')
    DescribeDhcpOptionsRequest = Shapes::StructureShape.new(name: 'DescribeDhcpOptionsRequest')
    DescribeDhcpOptionsResult = Shapes::StructureShape.new(name: 'DescribeDhcpOptionsResult')
    DescribeEgressOnlyInternetGatewaysMaxResults = Shapes::IntegerShape.new(name: 'DescribeEgressOnlyInternetGatewaysMaxResults')
    DescribeEgressOnlyInternetGatewaysRequest = Shapes::StructureShape.new(name: 'DescribeEgressOnlyInternetGatewaysRequest')
    DescribeEgressOnlyInternetGatewaysResult = Shapes::StructureShape.new(name: 'DescribeEgressOnlyInternetGatewaysResult')
    DescribeElasticGpusMaxResults = Shapes::IntegerShape.new(name: 'DescribeElasticGpusMaxResults')
    DescribeElasticGpusRequest = Shapes::StructureShape.new(name: 'DescribeElasticGpusRequest')
    DescribeElasticGpusResult = Shapes::StructureShape.new(name: 'DescribeElasticGpusResult')
    DescribeExportImageTasksMaxResults = Shapes::IntegerShape.new(name: 'DescribeExportImageTasksMaxResults')
    DescribeExportImageTasksRequest = Shapes::StructureShape.new(name: 'DescribeExportImageTasksRequest')
    DescribeExportImageTasksResult = Shapes::StructureShape.new(name: 'DescribeExportImageTasksResult')
    DescribeExportTasksRequest = Shapes::StructureShape.new(name: 'DescribeExportTasksRequest')
    DescribeExportTasksResult = Shapes::StructureShape.new(name: 'DescribeExportTasksResult')
    DescribeFastLaunchImagesRequest = Shapes::StructureShape.new(name: 'DescribeFastLaunchImagesRequest')
    DescribeFastLaunchImagesRequestMaxResults = Shapes::IntegerShape.new(name: 'DescribeFastLaunchImagesRequestMaxResults')
    DescribeFastLaunchImagesResult = Shapes::StructureShape.new(name: 'DescribeFastLaunchImagesResult')
    DescribeFastLaunchImagesSuccessItem = Shapes::StructureShape.new(name: 'DescribeFastLaunchImagesSuccessItem')
    DescribeFastLaunchImagesSuccessSet = Shapes::ListShape.new(name: 'DescribeFastLaunchImagesSuccessSet')
    DescribeFastSnapshotRestoreSuccessItem = Shapes::StructureShape.new(name: 'DescribeFastSnapshotRestoreSuccessItem')
    DescribeFastSnapshotRestoreSuccessSet = Shapes::ListShape.new(name: 'DescribeFastSnapshotRestoreSuccessSet')
    DescribeFastSnapshotRestoresMaxResults = Shapes::IntegerShape.new(name: 'DescribeFastSnapshotRestoresMaxResults')
    DescribeFastSnapshotRestoresRequest = Shapes::StructureShape.new(name: 'DescribeFastSnapshotRestoresRequest')
    DescribeFastSnapshotRestoresResult = Shapes::StructureShape.new(name: 'DescribeFastSnapshotRestoresResult')
    DescribeFleetError = Shapes::StructureShape.new(name: 'DescribeFleetError')
    DescribeFleetHistoryRequest = Shapes::StructureShape.new(name: 'DescribeFleetHistoryRequest')
    DescribeFleetHistoryResult = Shapes::StructureShape.new(name: 'DescribeFleetHistoryResult')
    DescribeFleetInstancesRequest = Shapes::StructureShape.new(name: 'DescribeFleetInstancesRequest')
    DescribeFleetInstancesResult = Shapes::StructureShape.new(name: 'DescribeFleetInstancesResult')
    DescribeFleetsErrorSet = Shapes::ListShape.new(name: 'DescribeFleetsErrorSet')
    DescribeFleetsInstances = Shapes::StructureShape.new(name: 'DescribeFleetsInstances')
    DescribeFleetsInstancesSet = Shapes::ListShape.new(name: 'DescribeFleetsInstancesSet')
    DescribeFleetsRequest = Shapes::StructureShape.new(name: 'DescribeFleetsRequest')
    DescribeFleetsResult = Shapes::StructureShape.new(name: 'DescribeFleetsResult')
    DescribeFlowLogsRequest = Shapes::StructureShape.new(name: 'DescribeFlowLogsRequest')
    DescribeFlowLogsResult = Shapes::StructureShape.new(name: 'DescribeFlowLogsResult')
    DescribeFpgaImageAttributeRequest = Shapes::StructureShape.new(name: 'DescribeFpgaImageAttributeRequest')
    DescribeFpgaImageAttributeResult = Shapes::StructureShape.new(name: 'DescribeFpgaImageAttributeResult')
    DescribeFpgaImagesMaxResults = Shapes::IntegerShape.new(name: 'DescribeFpgaImagesMaxResults')
    DescribeFpgaImagesRequest = Shapes::StructureShape.new(name: 'DescribeFpgaImagesRequest')
    DescribeFpgaImagesResult = Shapes::StructureShape.new(name: 'DescribeFpgaImagesResult')
    DescribeFutureCapacityMaxResults = Shapes::IntegerShape.new(name: 'DescribeFutureCapacityMaxResults')
    DescribeHostReservationOfferingsRequest = Shapes::StructureShape.new(name: 'DescribeHostReservationOfferingsRequest')
    DescribeHostReservationOfferingsResult = Shapes::StructureShape.new(name: 'DescribeHostReservationOfferingsResult')
    DescribeHostReservationsMaxResults = Shapes::IntegerShape.new(name: 'DescribeHostReservationsMaxResults')
    DescribeHostReservationsRequest = Shapes::StructureShape.new(name: 'DescribeHostReservationsRequest')
    DescribeHostReservationsResult = Shapes::StructureShape.new(name: 'DescribeHostReservationsResult')
    DescribeHostsRequest = Shapes::StructureShape.new(name: 'DescribeHostsRequest')
    DescribeHostsResult = Shapes::StructureShape.new(name: 'DescribeHostsResult')
    DescribeIamInstanceProfileAssociationsMaxResults = Shapes::IntegerShape.new(name: 'DescribeIamInstanceProfileAssociationsMaxResults')
    DescribeIamInstanceProfileAssociationsRequest = Shapes::StructureShape.new(name: 'DescribeIamInstanceProfileAssociationsRequest')
    DescribeIamInstanceProfileAssociationsResult = Shapes::StructureShape.new(name: 'DescribeIamInstanceProfileAssociationsResult')
    DescribeIdFormatRequest = Shapes::StructureShape.new(name: 'DescribeIdFormatRequest')
    DescribeIdFormatResult = Shapes::StructureShape.new(name: 'DescribeIdFormatResult')
    DescribeIdentityIdFormatRequest = Shapes::StructureShape.new(name: 'DescribeIdentityIdFormatRequest')
    DescribeIdentityIdFormatResult = Shapes::StructureShape.new(name: 'DescribeIdentityIdFormatResult')
    DescribeImageAttributeRequest = Shapes::StructureShape.new(name: 'DescribeImageAttributeRequest')
    DescribeImagesRequest = Shapes::StructureShape.new(name: 'DescribeImagesRequest')
    DescribeImagesResult = Shapes::StructureShape.new(name: 'DescribeImagesResult')
    DescribeImportImageTasksRequest = Shapes::StructureShape.new(name: 'DescribeImportImageTasksRequest')
    DescribeImportImageTasksResult = Shapes::StructureShape.new(name: 'DescribeImportImageTasksResult')
    DescribeImportSnapshotTasksRequest = Shapes::StructureShape.new(name: 'DescribeImportSnapshotTasksRequest')
    DescribeImportSnapshotTasksResult = Shapes::StructureShape.new(name: 'DescribeImportSnapshotTasksResult')
    DescribeInstanceAttributeRequest = Shapes::StructureShape.new(name: 'DescribeInstanceAttributeRequest')
    DescribeInstanceConnectEndpointsRequest = Shapes::StructureShape.new(name: 'DescribeInstanceConnectEndpointsRequest')
    DescribeInstanceConnectEndpointsResult = Shapes::StructureShape.new(name: 'DescribeInstanceConnectEndpointsResult')
    DescribeInstanceCreditSpecificationsMaxResults = Shapes::IntegerShape.new(name: 'DescribeInstanceCreditSpecificationsMaxResults')
    DescribeInstanceCreditSpecificationsRequest = Shapes::StructureShape.new(name: 'DescribeInstanceCreditSpecificationsRequest')
    DescribeInstanceCreditSpecificationsResult = Shapes::StructureShape.new(name: 'DescribeInstanceCreditSpecificationsResult')
    DescribeInstanceEventNotificationAttributesRequest = Shapes::StructureShape.new(name: 'DescribeInstanceEventNotificationAttributesRequest')
    DescribeInstanceEventNotificationAttributesResult = Shapes::StructureShape.new(name: 'DescribeInstanceEventNotificationAttributesResult')
    DescribeInstanceEventWindowsRequest = Shapes::StructureShape.new(name: 'DescribeInstanceEventWindowsRequest')
    DescribeInstanceEventWindowsResult = Shapes::StructureShape.new(name: 'DescribeInstanceEventWindowsResult')
    DescribeInstanceImageMetadataMaxResults = Shapes::IntegerShape.new(name: 'DescribeInstanceImageMetadataMaxResults')
    DescribeInstanceImageMetadataRequest = Shapes::StructureShape.new(name: 'DescribeInstanceImageMetadataRequest')
    DescribeInstanceImageMetadataResult = Shapes::StructureShape.new(name: 'DescribeInstanceImageMetadataResult')
    DescribeInstanceStatusRequest = Shapes::StructureShape.new(name: 'DescribeInstanceStatusRequest')
    DescribeInstanceStatusResult = Shapes::StructureShape.new(name: 'DescribeInstanceStatusResult')
    DescribeInstanceTopologyGroupNameSet = Shapes::ListShape.new(name: 'DescribeInstanceTopologyGroupNameSet')
    DescribeInstanceTopologyInstanceIdSet = Shapes::ListShape.new(name: 'DescribeInstanceTopologyInstanceIdSet')
    DescribeInstanceTopologyMaxResults = Shapes::IntegerShape.new(name: 'DescribeInstanceTopologyMaxResults')
    DescribeInstanceTopologyRequest = Shapes::StructureShape.new(name: 'DescribeInstanceTopologyRequest')
    DescribeInstanceTopologyResult = Shapes::StructureShape.new(name: 'DescribeInstanceTopologyResult')
    DescribeInstanceTypeOfferingsRequest = Shapes::StructureShape.new(name: 'DescribeInstanceTypeOfferingsRequest')
    DescribeInstanceTypeOfferingsResult = Shapes::StructureShape.new(name: 'DescribeInstanceTypeOfferingsResult')
    DescribeInstanceTypesRequest = Shapes::StructureShape.new(name: 'DescribeInstanceTypesRequest')
    DescribeInstanceTypesResult = Shapes::StructureShape.new(name: 'DescribeInstanceTypesResult')
    DescribeInstancesRequest = Shapes::StructureShape.new(name: 'DescribeInstancesRequest')
    DescribeInstancesResult = Shapes::StructureShape.new(name: 'DescribeInstancesResult')
    DescribeInternetGatewaysMaxResults = Shapes::IntegerShape.new(name: 'DescribeInternetGatewaysMaxResults')
    DescribeInternetGatewaysRequest = Shapes::StructureShape.new(name: 'DescribeInternetGatewaysRequest')
    DescribeInternetGatewaysResult = Shapes::StructureShape.new(name: 'DescribeInternetGatewaysResult')
    DescribeIpamByoasnMaxResults = Shapes::IntegerShape.new(name: 'DescribeIpamByoasnMaxResults')
    DescribeIpamByoasnRequest = Shapes::StructureShape.new(name: 'DescribeIpamByoasnRequest')
    DescribeIpamByoasnResult = Shapes::StructureShape.new(name: 'DescribeIpamByoasnResult')
    DescribeIpamExternalResourceVerificationTokensRequest = Shapes::StructureShape.new(name: 'DescribeIpamExternalResourceVerificationTokensRequest')
    DescribeIpamExternalResourceVerificationTokensResult = Shapes::StructureShape.new(name: 'DescribeIpamExternalResourceVerificationTokensResult')
    DescribeIpamPoolsRequest = Shapes::StructureShape.new(name: 'DescribeIpamPoolsRequest')
    DescribeIpamPoolsResult = Shapes::StructureShape.new(name: 'DescribeIpamPoolsResult')
    DescribeIpamResourceDiscoveriesRequest = Shapes::StructureShape.new(name: 'DescribeIpamResourceDiscoveriesRequest')
    DescribeIpamResourceDiscoveriesResult = Shapes::StructureShape.new(name: 'DescribeIpamResourceDiscoveriesResult')
    DescribeIpamResourceDiscoveryAssociationsRequest = Shapes::StructureShape.new(name: 'DescribeIpamResourceDiscoveryAssociationsRequest')
    DescribeIpamResourceDiscoveryAssociationsResult = Shapes::StructureShape.new(name: 'DescribeIpamResourceDiscoveryAssociationsResult')
    DescribeIpamScopesRequest = Shapes::StructureShape.new(name: 'DescribeIpamScopesRequest')
    DescribeIpamScopesResult = Shapes::StructureShape.new(name: 'DescribeIpamScopesResult')
    DescribeIpamsRequest = Shapes::StructureShape.new(name: 'DescribeIpamsRequest')
    DescribeIpamsResult = Shapes::StructureShape.new(name: 'DescribeIpamsResult')
    DescribeIpv6PoolsRequest = Shapes::StructureShape.new(name: 'DescribeIpv6PoolsRequest')
    DescribeIpv6PoolsResult = Shapes::StructureShape.new(name: 'DescribeIpv6PoolsResult')
    DescribeKeyPairsRequest = Shapes::StructureShape.new(name: 'DescribeKeyPairsRequest')
    DescribeKeyPairsResult = Shapes::StructureShape.new(name: 'DescribeKeyPairsResult')
    DescribeLaunchTemplateVersionsRequest = Shapes::StructureShape.new(name: 'DescribeLaunchTemplateVersionsRequest')
    DescribeLaunchTemplateVersionsResult = Shapes::StructureShape.new(name: 'DescribeLaunchTemplateVersionsResult')
    DescribeLaunchTemplatesMaxResults = Shapes::IntegerShape.new(name: 'DescribeLaunchTemplatesMaxResults')
    DescribeLaunchTemplatesRequest = Shapes::StructureShape.new(name: 'DescribeLaunchTemplatesRequest')
    DescribeLaunchTemplatesResult = Shapes::StructureShape.new(name: 'DescribeLaunchTemplatesResult')
    DescribeLocalGatewayRouteTableVirtualInterfaceGroupAssociationsRequest = Shapes::StructureShape.new(name: 'DescribeLocalGatewayRouteTableVirtualInterfaceGroupAssociationsRequest')
    DescribeLocalGatewayRouteTableVirtualInterfaceGroupAssociationsResult = Shapes::StructureShape.new(name: 'DescribeLocalGatewayRouteTableVirtualInterfaceGroupAssociationsResult')
    DescribeLocalGatewayRouteTableVpcAssociationsRequest = Shapes::StructureShape.new(name: 'DescribeLocalGatewayRouteTableVpcAssociationsRequest')
    DescribeLocalGatewayRouteTableVpcAssociationsResult = Shapes::StructureShape.new(name: 'DescribeLocalGatewayRouteTableVpcAssociationsResult')
    DescribeLocalGatewayRouteTablesRequest = Shapes::StructureShape.new(name: 'DescribeLocalGatewayRouteTablesRequest')
    DescribeLocalGatewayRouteTablesResult = Shapes::StructureShape.new(name: 'DescribeLocalGatewayRouteTablesResult')
    DescribeLocalGatewayVirtualInterfaceGroupsRequest = Shapes::StructureShape.new(name: 'DescribeLocalGatewayVirtualInterfaceGroupsRequest')
    DescribeLocalGatewayVirtualInterfaceGroupsResult = Shapes::StructureShape.new(name: 'DescribeLocalGatewayVirtualInterfaceGroupsResult')
    DescribeLocalGatewayVirtualInterfacesRequest = Shapes::StructureShape.new(name: 'DescribeLocalGatewayVirtualInterfacesRequest')
    DescribeLocalGatewayVirtualInterfacesResult = Shapes::StructureShape.new(name: 'DescribeLocalGatewayVirtualInterfacesResult')
    DescribeLocalGatewaysRequest = Shapes::StructureShape.new(name: 'DescribeLocalGatewaysRequest')
    DescribeLocalGatewaysResult = Shapes::StructureShape.new(name: 'DescribeLocalGatewaysResult')
    DescribeLockedSnapshotsMaxResults = Shapes::IntegerShape.new(name: 'DescribeLockedSnapshotsMaxResults')
    DescribeLockedSnapshotsRequest = Shapes::StructureShape.new(name: 'DescribeLockedSnapshotsRequest')
    DescribeLockedSnapshotsResult = Shapes::StructureShape.new(name: 'DescribeLockedSnapshotsResult')
    DescribeMacHostsRequest = Shapes::StructureShape.new(name: 'DescribeMacHostsRequest')
    DescribeMacHostsRequestMaxResults = Shapes::IntegerShape.new(name: 'DescribeMacHostsRequestMaxResults')
    DescribeMacHostsResult = Shapes::StructureShape.new(name: 'DescribeMacHostsResult')
    DescribeManagedPrefixListsRequest = Shapes::StructureShape.new(name: 'DescribeManagedPrefixListsRequest')
    DescribeManagedPrefixListsResult = Shapes::StructureShape.new(name: 'DescribeManagedPrefixListsResult')
    DescribeMovingAddressesMaxResults = Shapes::IntegerShape.new(name: 'DescribeMovingAddressesMaxResults')
    DescribeMovingAddressesRequest = Shapes::StructureShape.new(name: 'DescribeMovingAddressesRequest')
    DescribeMovingAddressesResult = Shapes::StructureShape.new(name: 'DescribeMovingAddressesResult')
    DescribeNatGatewaysMaxResults = Shapes::IntegerShape.new(name: 'DescribeNatGatewaysMaxResults')
    DescribeNatGatewaysRequest = Shapes::StructureShape.new(name: 'DescribeNatGatewaysRequest')
    DescribeNatGatewaysResult = Shapes::StructureShape.new(name: 'DescribeNatGatewaysResult')
    DescribeNetworkAclsMaxResults = Shapes::IntegerShape.new(name: 'DescribeNetworkAclsMaxResults')
    DescribeNetworkAclsRequest = Shapes::StructureShape.new(name: 'DescribeNetworkAclsRequest')
    DescribeNetworkAclsResult = Shapes::StructureShape.new(name: 'DescribeNetworkAclsResult')
    DescribeNetworkInsightsAccessScopeAnalysesRequest = Shapes::StructureShape.new(name: 'DescribeNetworkInsightsAccessScopeAnalysesRequest')
    DescribeNetworkInsightsAccessScopeAnalysesResult = Shapes::StructureShape.new(name: 'DescribeNetworkInsightsAccessScopeAnalysesResult')
    DescribeNetworkInsightsAccessScopesRequest = Shapes::StructureShape.new(name: 'DescribeNetworkInsightsAccessScopesRequest')
    DescribeNetworkInsightsAccessScopesResult = Shapes::StructureShape.new(name: 'DescribeNetworkInsightsAccessScopesResult')
    DescribeNetworkInsightsAnalysesRequest = Shapes::StructureShape.new(name: 'DescribeNetworkInsightsAnalysesRequest')
    DescribeNetworkInsightsAnalysesResult = Shapes::StructureShape.new(name: 'DescribeNetworkInsightsAnalysesResult')
    DescribeNetworkInsightsPathsRequest = Shapes::StructureShape.new(name: 'DescribeNetworkInsightsPathsRequest')
    DescribeNetworkInsightsPathsResult = Shapes::StructureShape.new(name: 'DescribeNetworkInsightsPathsResult')
    DescribeNetworkInterfaceAttributeRequest = Shapes::StructureShape.new(name: 'DescribeNetworkInterfaceAttributeRequest')
    DescribeNetworkInterfaceAttributeResult = Shapes::StructureShape.new(name: 'DescribeNetworkInterfaceAttributeResult')
    DescribeNetworkInterfacePermissionsMaxResults = Shapes::IntegerShape.new(name: 'DescribeNetworkInterfacePermissionsMaxResults')
    DescribeNetworkInterfacePermissionsRequest = Shapes::StructureShape.new(name: 'DescribeNetworkInterfacePermissionsRequest')
    DescribeNetworkInterfacePermissionsResult = Shapes::StructureShape.new(name: 'DescribeNetworkInterfacePermissionsResult')
    DescribeNetworkInterfacesMaxResults = Shapes::IntegerShape.new(name: 'DescribeNetworkInterfacesMaxResults')
    DescribeNetworkInterfacesRequest = Shapes::StructureShape.new(name: 'DescribeNetworkInterfacesRequest')
    DescribeNetworkInterfacesResult = Shapes::StructureShape.new(name: 'DescribeNetworkInterfacesResult')
    DescribePlacementGroupsRequest = Shapes::StructureShape.new(name: 'DescribePlacementGroupsRequest')
    DescribePlacementGroupsResult = Shapes::StructureShape.new(name: 'DescribePlacementGroupsResult')
    DescribePrefixListsRequest = Shapes::StructureShape.new(name: 'DescribePrefixListsRequest')
    DescribePrefixListsResult = Shapes::StructureShape.new(name: 'DescribePrefixListsResult')
    DescribePrincipalIdFormatMaxResults = Shapes::IntegerShape.new(name: 'DescribePrincipalIdFormatMaxResults')
    DescribePrincipalIdFormatRequest = Shapes::StructureShape.new(name: 'DescribePrincipalIdFormatRequest')
    DescribePrincipalIdFormatResult = Shapes::StructureShape.new(name: 'DescribePrincipalIdFormatResult')
    DescribePublicIpv4PoolsRequest = Shapes::StructureShape.new(name: 'DescribePublicIpv4PoolsRequest')
    DescribePublicIpv4PoolsResult = Shapes::StructureShape.new(name: 'DescribePublicIpv4PoolsResult')
    DescribeRegionsRequest = Shapes::StructureShape.new(name: 'DescribeRegionsRequest')
    DescribeRegionsResult = Shapes::StructureShape.new(name: 'DescribeRegionsResult')
    DescribeReplaceRootVolumeTasksMaxResults = Shapes::IntegerShape.new(name: 'DescribeReplaceRootVolumeTasksMaxResults')
    DescribeReplaceRootVolumeTasksRequest = Shapes::StructureShape.new(name: 'DescribeReplaceRootVolumeTasksRequest')
    DescribeReplaceRootVolumeTasksResult = Shapes::StructureShape.new(name: 'DescribeReplaceRootVolumeTasksResult')
    DescribeReservedInstancesListingsRequest = Shapes::StructureShape.new(name: 'DescribeReservedInstancesListingsRequest')
    DescribeReservedInstancesListingsResult = Shapes::StructureShape.new(name: 'DescribeReservedInstancesListingsResult')
    DescribeReservedInstancesModificationsRequest = Shapes::StructureShape.new(name: 'DescribeReservedInstancesModificationsRequest')
    DescribeReservedInstancesModificationsResult = Shapes::StructureShape.new(name: 'DescribeReservedInstancesModificationsResult')
    DescribeReservedInstancesOfferingsRequest = Shapes::StructureShape.new(name: 'DescribeReservedInstancesOfferingsRequest')
    DescribeReservedInstancesOfferingsResult = Shapes::StructureShape.new(name: 'DescribeReservedInstancesOfferingsResult')
    DescribeReservedInstancesRequest = Shapes::StructureShape.new(name: 'DescribeReservedInstancesRequest')
    DescribeReservedInstancesResult = Shapes::StructureShape.new(name: 'DescribeReservedInstancesResult')
    DescribeRouteTablesMaxResults = Shapes::IntegerShape.new(name: 'DescribeRouteTablesMaxResults')
    DescribeRouteTablesRequest = Shapes::StructureShape.new(name: 'DescribeRouteTablesRequest')
    DescribeRouteTablesResult = Shapes::StructureShape.new(name: 'DescribeRouteTablesResult')
    DescribeScheduledInstanceAvailabilityMaxResults = Shapes::IntegerShape.new(name: 'DescribeScheduledInstanceAvailabilityMaxResults')
    DescribeScheduledInstanceAvailabilityRequest = Shapes::StructureShape.new(name: 'DescribeScheduledInstanceAvailabilityRequest')
    DescribeScheduledInstanceAvailabilityResult = Shapes::StructureShape.new(name: 'DescribeScheduledInstanceAvailabilityResult')
    DescribeScheduledInstancesRequest = Shapes::StructureShape.new(name: 'DescribeScheduledInstancesRequest')
    DescribeScheduledInstancesResult = Shapes::StructureShape.new(name: 'DescribeScheduledInstancesResult')
    DescribeSecurityGroupReferencesRequest = Shapes::StructureShape.new(name: 'DescribeSecurityGroupReferencesRequest')
    DescribeSecurityGroupReferencesResult = Shapes::StructureShape.new(name: 'DescribeSecurityGroupReferencesResult')
    DescribeSecurityGroupRulesMaxResults = Shapes::IntegerShape.new(name: 'DescribeSecurityGroupRulesMaxResults')
    DescribeSecurityGroupRulesRequest = Shapes::StructureShape.new(name: 'DescribeSecurityGroupRulesRequest')
    DescribeSecurityGroupRulesResult = Shapes::StructureShape.new(name: 'DescribeSecurityGroupRulesResult')
    DescribeSecurityGroupVpcAssociationsMaxResults = Shapes::IntegerShape.new(name: 'DescribeSecurityGroupVpcAssociationsMaxResults')
    DescribeSecurityGroupVpcAssociationsRequest = Shapes::StructureShape.new(name: 'DescribeSecurityGroupVpcAssociationsRequest')
    DescribeSecurityGroupVpcAssociationsResult = Shapes::StructureShape.new(name: 'DescribeSecurityGroupVpcAssociationsResult')
    DescribeSecurityGroupsMaxResults = Shapes::IntegerShape.new(name: 'DescribeSecurityGroupsMaxResults')
    DescribeSecurityGroupsRequest = Shapes::StructureShape.new(name: 'DescribeSecurityGroupsRequest')
    DescribeSecurityGroupsResult = Shapes::StructureShape.new(name: 'DescribeSecurityGroupsResult')
    DescribeSnapshotAttributeRequest = Shapes::StructureShape.new(name: 'DescribeSnapshotAttributeRequest')
    DescribeSnapshotAttributeResult = Shapes::StructureShape.new(name: 'DescribeSnapshotAttributeResult')
    DescribeSnapshotTierStatusMaxResults = Shapes::IntegerShape.new(name: 'DescribeSnapshotTierStatusMaxResults')
    DescribeSnapshotTierStatusRequest = Shapes::StructureShape.new(name: 'DescribeSnapshotTierStatusRequest')
    DescribeSnapshotTierStatusResult = Shapes::StructureShape.new(name: 'DescribeSnapshotTierStatusResult')
    DescribeSnapshotsRequest = Shapes::StructureShape.new(name: 'DescribeSnapshotsRequest')
    DescribeSnapshotsResult = Shapes::StructureShape.new(name: 'DescribeSnapshotsResult')
    DescribeSpotDatafeedSubscriptionRequest = Shapes::StructureShape.new(name: 'DescribeSpotDatafeedSubscriptionRequest')
    DescribeSpotDatafeedSubscriptionResult = Shapes::StructureShape.new(name: 'DescribeSpotDatafeedSubscriptionResult')
    DescribeSpotFleetInstancesMaxResults = Shapes::IntegerShape.new(name: 'DescribeSpotFleetInstancesMaxResults')
    DescribeSpotFleetInstancesRequest = Shapes::StructureShape.new(name: 'DescribeSpotFleetInstancesRequest')
    DescribeSpotFleetInstancesResponse = Shapes::StructureShape.new(name: 'DescribeSpotFleetInstancesResponse')
    DescribeSpotFleetRequestHistoryMaxResults = Shapes::IntegerShape.new(name: 'DescribeSpotFleetRequestHistoryMaxResults')
    DescribeSpotFleetRequestHistoryRequest = Shapes::StructureShape.new(name: 'DescribeSpotFleetRequestHistoryRequest')
    DescribeSpotFleetRequestHistoryResponse = Shapes::StructureShape.new(name: 'DescribeSpotFleetRequestHistoryResponse')
    DescribeSpotFleetRequestsRequest = Shapes::StructureShape.new(name: 'DescribeSpotFleetRequestsRequest')
    DescribeSpotFleetRequestsResponse = Shapes::StructureShape.new(name: 'DescribeSpotFleetRequestsResponse')
    DescribeSpotInstanceRequestsRequest = Shapes::StructureShape.new(name: 'DescribeSpotInstanceRequestsRequest')
    DescribeSpotInstanceRequestsResult = Shapes::StructureShape.new(name: 'DescribeSpotInstanceRequestsResult')
    DescribeSpotPriceHistoryRequest = Shapes::StructureShape.new(name: 'DescribeSpotPriceHistoryRequest')
    DescribeSpotPriceHistoryResult = Shapes::StructureShape.new(name: 'DescribeSpotPriceHistoryResult')
    DescribeStaleSecurityGroupsMaxResults = Shapes::IntegerShape.new(name: 'DescribeStaleSecurityGroupsMaxResults')
    DescribeStaleSecurityGroupsNextToken = Shapes::StringShape.new(name: 'DescribeStaleSecurityGroupsNextToken')
    DescribeStaleSecurityGroupsRequest = Shapes::StructureShape.new(name: 'DescribeStaleSecurityGroupsRequest')
    DescribeStaleSecurityGroupsResult = Shapes::StructureShape.new(name: 'DescribeStaleSecurityGroupsResult')
    DescribeStoreImageTasksRequest = Shapes::StructureShape.new(name: 'DescribeStoreImageTasksRequest')
    DescribeStoreImageTasksRequestMaxResults = Shapes::IntegerShape.new(name: 'DescribeStoreImageTasksRequestMaxResults')
    DescribeStoreImageTasksResult = Shapes::StructureShape.new(name: 'DescribeStoreImageTasksResult')
    DescribeSubnetsMaxResults = Shapes::IntegerShape.new(name: 'DescribeSubnetsMaxResults')
    DescribeSubnetsRequest = Shapes::StructureShape.new(name: 'DescribeSubnetsRequest')
    DescribeSubnetsResult = Shapes::StructureShape.new(name: 'DescribeSubnetsResult')
    DescribeTagsRequest = Shapes::StructureShape.new(name: 'DescribeTagsRequest')
    DescribeTagsResult = Shapes::StructureShape.new(name: 'DescribeTagsResult')
    DescribeTrafficMirrorFilterRulesRequest = Shapes::StructureShape.new(name: 'DescribeTrafficMirrorFilterRulesRequest')
    DescribeTrafficMirrorFilterRulesResult = Shapes::StructureShape.new(name: 'DescribeTrafficMirrorFilterRulesResult')
    DescribeTrafficMirrorFiltersRequest = Shapes::StructureShape.new(name: 'DescribeTrafficMirrorFiltersRequest')
    DescribeTrafficMirrorFiltersResult = Shapes::StructureShape.new(name: 'DescribeTrafficMirrorFiltersResult')
    DescribeTrafficMirrorSessionsRequest = Shapes::StructureShape.new(name: 'DescribeTrafficMirrorSessionsRequest')
    DescribeTrafficMirrorSessionsResult = Shapes::StructureShape.new(name: 'DescribeTrafficMirrorSessionsResult')
    DescribeTrafficMirrorTargetsRequest = Shapes::StructureShape.new(name: 'DescribeTrafficMirrorTargetsRequest')
    DescribeTrafficMirrorTargetsResult = Shapes::StructureShape.new(name: 'DescribeTrafficMirrorTargetsResult')
    DescribeTransitGatewayAttachmentsRequest = Shapes::StructureShape.new(name: 'DescribeTransitGatewayAttachmentsRequest')
    DescribeTransitGatewayAttachmentsResult = Shapes::StructureShape.new(name: 'DescribeTransitGatewayAttachmentsResult')
    DescribeTransitGatewayConnectPeersRequest = Shapes::StructureShape.new(name: 'DescribeTransitGatewayConnectPeersRequest')
    DescribeTransitGatewayConnectPeersResult = Shapes::StructureShape.new(name: 'DescribeTransitGatewayConnectPeersResult')
    DescribeTransitGatewayConnectsRequest = Shapes::StructureShape.new(name: 'DescribeTransitGatewayConnectsRequest')
    DescribeTransitGatewayConnectsResult = Shapes::StructureShape.new(name: 'DescribeTransitGatewayConnectsResult')
    DescribeTransitGatewayMulticastDomainsRequest = Shapes::StructureShape.new(name: 'DescribeTransitGatewayMulticastDomainsRequest')
    DescribeTransitGatewayMulticastDomainsResult = Shapes::StructureShape.new(name: 'DescribeTransitGatewayMulticastDomainsResult')
    DescribeTransitGatewayPeeringAttachmentsRequest = Shapes::StructureShape.new(name: 'DescribeTransitGatewayPeeringAttachmentsRequest')
    DescribeTransitGatewayPeeringAttachmentsResult = Shapes::StructureShape.new(name: 'DescribeTransitGatewayPeeringAttachmentsResult')
    DescribeTransitGatewayPolicyTablesRequest = Shapes::StructureShape.new(name: 'DescribeTransitGatewayPolicyTablesRequest')
    DescribeTransitGatewayPolicyTablesResult = Shapes::StructureShape.new(name: 'DescribeTransitGatewayPolicyTablesResult')
    DescribeTransitGatewayRouteTableAnnouncementsRequest = Shapes::StructureShape.new(name: 'DescribeTransitGatewayRouteTableAnnouncementsRequest')
    DescribeTransitGatewayRouteTableAnnouncementsResult = Shapes::StructureShape.new(name: 'DescribeTransitGatewayRouteTableAnnouncementsResult')
    DescribeTransitGatewayRouteTablesRequest = Shapes::StructureShape.new(name: 'DescribeTransitGatewayRouteTablesRequest')
    DescribeTransitGatewayRouteTablesResult = Shapes::StructureShape.new(name: 'DescribeTransitGatewayRouteTablesResult')
    DescribeTransitGatewayVpcAttachmentsRequest = Shapes::StructureShape.new(name: 'DescribeTransitGatewayVpcAttachmentsRequest')
    DescribeTransitGatewayVpcAttachmentsResult = Shapes::StructureShape.new(name: 'DescribeTransitGatewayVpcAttachmentsResult')
    DescribeTransitGatewaysRequest = Shapes::StructureShape.new(name: 'DescribeTransitGatewaysRequest')
    DescribeTransitGatewaysResult = Shapes::StructureShape.new(name: 'DescribeTransitGatewaysResult')
    DescribeTrunkInterfaceAssociationsMaxResults = Shapes::IntegerShape.new(name: 'DescribeTrunkInterfaceAssociationsMaxResults')
    DescribeTrunkInterfaceAssociationsRequest = Shapes::StructureShape.new(name: 'DescribeTrunkInterfaceAssociationsRequest')
    DescribeTrunkInterfaceAssociationsResult = Shapes::StructureShape.new(name: 'DescribeTrunkInterfaceAssociationsResult')
    DescribeVerifiedAccessEndpointsMaxResults = Shapes::IntegerShape.new(name: 'DescribeVerifiedAccessEndpointsMaxResults')
    DescribeVerifiedAccessEndpointsRequest = Shapes::StructureShape.new(name: 'DescribeVerifiedAccessEndpointsRequest')
    DescribeVerifiedAccessEndpointsResult = Shapes::StructureShape.new(name: 'DescribeVerifiedAccessEndpointsResult')
    DescribeVerifiedAccessGroupMaxResults = Shapes::IntegerShape.new(name: 'DescribeVerifiedAccessGroupMaxResults')
    DescribeVerifiedAccessGroupsRequest = Shapes::StructureShape.new(name: 'DescribeVerifiedAccessGroupsRequest')
    DescribeVerifiedAccessGroupsResult = Shapes::StructureShape.new(name: 'DescribeVerifiedAccessGroupsResult')
    DescribeVerifiedAccessInstanceLoggingConfigurationsMaxResults = Shapes::IntegerShape.new(name: 'DescribeVerifiedAccessInstanceLoggingConfigurationsMaxResults')
    DescribeVerifiedAccessInstanceLoggingConfigurationsRequest = Shapes::StructureShape.new(name: 'DescribeVerifiedAccessInstanceLoggingConfigurationsRequest')
    DescribeVerifiedAccessInstanceLoggingConfigurationsResult = Shapes::StructureShape.new(name: 'DescribeVerifiedAccessInstanceLoggingConfigurationsResult')
    DescribeVerifiedAccessInstancesMaxResults = Shapes::IntegerShape.new(name: 'DescribeVerifiedAccessInstancesMaxResults')
    DescribeVerifiedAccessInstancesRequest = Shapes::StructureShape.new(name: 'DescribeVerifiedAccessInstancesRequest')
    DescribeVerifiedAccessInstancesResult = Shapes::StructureShape.new(name: 'DescribeVerifiedAccessInstancesResult')
    DescribeVerifiedAccessTrustProvidersMaxResults = Shapes::IntegerShape.new(name: 'DescribeVerifiedAccessTrustProvidersMaxResults')
    DescribeVerifiedAccessTrustProvidersRequest = Shapes::StructureShape.new(name: 'DescribeVerifiedAccessTrustProvidersRequest')
    DescribeVerifiedAccessTrustProvidersResult = Shapes::StructureShape.new(name: 'DescribeVerifiedAccessTrustProvidersResult')
    DescribeVolumeAttributeRequest = Shapes::StructureShape.new(name: 'DescribeVolumeAttributeRequest')
    DescribeVolumeAttributeResult = Shapes::StructureShape.new(name: 'DescribeVolumeAttributeResult')
    DescribeVolumeStatusRequest = Shapes::StructureShape.new(name: 'DescribeVolumeStatusRequest')
    DescribeVolumeStatusResult = Shapes::StructureShape.new(name: 'DescribeVolumeStatusResult')
    DescribeVolumesModificationsRequest = Shapes::StructureShape.new(name: 'DescribeVolumesModificationsRequest')
    DescribeVolumesModificationsResult = Shapes::StructureShape.new(name: 'DescribeVolumesModificationsResult')
    DescribeVolumesRequest = Shapes::StructureShape.new(name: 'DescribeVolumesRequest')
    DescribeVolumesResult = Shapes::StructureShape.new(name: 'DescribeVolumesResult')
    DescribeVpcAttributeRequest = Shapes::StructureShape.new(name: 'DescribeVpcAttributeRequest')
    DescribeVpcAttributeResult = Shapes::StructureShape.new(name: 'DescribeVpcAttributeResult')
    DescribeVpcBlockPublicAccessExclusionsMaxResults = Shapes::IntegerShape.new(name: 'DescribeVpcBlockPublicAccessExclusionsMaxResults')
    DescribeVpcBlockPublicAccessExclusionsRequest = Shapes::StructureShape.new(name: 'DescribeVpcBlockPublicAccessExclusionsRequest')
    DescribeVpcBlockPublicAccessExclusionsResult = Shapes::StructureShape.new(name: 'DescribeVpcBlockPublicAccessExclusionsResult')
    DescribeVpcBlockPublicAccessOptionsRequest = Shapes::StructureShape.new(name: 'DescribeVpcBlockPublicAccessOptionsRequest')
    DescribeVpcBlockPublicAccessOptionsResult = Shapes::StructureShape.new(name: 'DescribeVpcBlockPublicAccessOptionsResult')
    DescribeVpcClassicLinkDnsSupportMaxResults = Shapes::IntegerShape.new(name: 'DescribeVpcClassicLinkDnsSupportMaxResults')
    DescribeVpcClassicLinkDnsSupportNextToken = Shapes::StringShape.new(name: 'DescribeVpcClassicLinkDnsSupportNextToken')
    DescribeVpcClassicLinkDnsSupportRequest = Shapes::StructureShape.new(name: 'DescribeVpcClassicLinkDnsSupportRequest')
    DescribeVpcClassicLinkDnsSupportResult = Shapes::StructureShape.new(name: 'DescribeVpcClassicLinkDnsSupportResult')
    DescribeVpcClassicLinkRequest = Shapes::StructureShape.new(name: 'DescribeVpcClassicLinkRequest')
    DescribeVpcClassicLinkResult = Shapes::StructureShape.new(name: 'DescribeVpcClassicLinkResult')
    DescribeVpcEndpointAssociationsRequest = Shapes::StructureShape.new(name: 'DescribeVpcEndpointAssociationsRequest')
    DescribeVpcEndpointAssociationsResult = Shapes::StructureShape.new(name: 'DescribeVpcEndpointAssociationsResult')
    DescribeVpcEndpointConnectionNotificationsRequest = Shapes::StructureShape.new(name: 'DescribeVpcEndpointConnectionNotificationsRequest')
    DescribeVpcEndpointConnectionNotificationsResult = Shapes::StructureShape.new(name: 'DescribeVpcEndpointConnectionNotificationsResult')
    DescribeVpcEndpointConnectionsRequest = Shapes::StructureShape.new(name: 'DescribeVpcEndpointConnectionsRequest')
    DescribeVpcEndpointConnectionsResult = Shapes::StructureShape.new(name: 'DescribeVpcEndpointConnectionsResult')
    DescribeVpcEndpointServiceConfigurationsRequest = Shapes::StructureShape.new(name: 'DescribeVpcEndpointServiceConfigurationsRequest')
    DescribeVpcEndpointServiceConfigurationsResult = Shapes::StructureShape.new(name: 'DescribeVpcEndpointServiceConfigurationsResult')
    DescribeVpcEndpointServicePermissionsRequest = Shapes::StructureShape.new(name: 'DescribeVpcEndpointServicePermissionsRequest')
    DescribeVpcEndpointServicePermissionsResult = Shapes::StructureShape.new(name: 'DescribeVpcEndpointServicePermissionsResult')
    DescribeVpcEndpointServicesRequest = Shapes::StructureShape.new(name: 'DescribeVpcEndpointServicesRequest')
    DescribeVpcEndpointServicesResult = Shapes::StructureShape.new(name: 'DescribeVpcEndpointServicesResult')
    DescribeVpcEndpointsRequest = Shapes::StructureShape.new(name: 'DescribeVpcEndpointsRequest')
    DescribeVpcEndpointsResult = Shapes::StructureShape.new(name: 'DescribeVpcEndpointsResult')
    DescribeVpcPeeringConnectionsMaxResults = Shapes::IntegerShape.new(name: 'DescribeVpcPeeringConnectionsMaxResults')
    DescribeVpcPeeringConnectionsRequest = Shapes::StructureShape.new(name: 'DescribeVpcPeeringConnectionsRequest')
    DescribeVpcPeeringConnectionsResult = Shapes::StructureShape.new(name: 'DescribeVpcPeeringConnectionsResult')
    DescribeVpcsMaxResults = Shapes::IntegerShape.new(name: 'DescribeVpcsMaxResults')
    DescribeVpcsRequest = Shapes::StructureShape.new(name: 'DescribeVpcsRequest')
    DescribeVpcsResult = Shapes::StructureShape.new(name: 'DescribeVpcsResult')
    DescribeVpnConnectionsRequest = Shapes::StructureShape.new(name: 'DescribeVpnConnectionsRequest')
    DescribeVpnConnectionsResult = Shapes::StructureShape.new(name: 'DescribeVpnConnectionsResult')
    DescribeVpnGatewaysRequest = Shapes::StructureShape.new(name: 'DescribeVpnGatewaysRequest')
    DescribeVpnGatewaysResult = Shapes::StructureShape.new(name: 'DescribeVpnGatewaysResult')
    DestinationFileFormat = Shapes::StringShape.new(name: 'DestinationFileFormat')
    DestinationOptionsRequest = Shapes::StructureShape.new(name: 'DestinationOptionsRequest')
    DestinationOptionsResponse = Shapes::StructureShape.new(name: 'DestinationOptionsResponse')
    DetachClassicLinkVpcRequest = Shapes::StructureShape.new(name: 'DetachClassicLinkVpcRequest')
    DetachClassicLinkVpcResult = Shapes::StructureShape.new(name: 'DetachClassicLinkVpcResult')
    DetachInternetGatewayRequest = Shapes::StructureShape.new(name: 'DetachInternetGatewayRequest')
    DetachNetworkInterfaceRequest = Shapes::StructureShape.new(name: 'DetachNetworkInterfaceRequest')
    DetachVerifiedAccessTrustProviderRequest = Shapes::StructureShape.new(name: 'DetachVerifiedAccessTrustProviderRequest')
    DetachVerifiedAccessTrustProviderResult = Shapes::StructureShape.new(name: 'DetachVerifiedAccessTrustProviderResult')
    DetachVolumeRequest = Shapes::StructureShape.new(name: 'DetachVolumeRequest')
    DetachVpnGatewayRequest = Shapes::StructureShape.new(name: 'DetachVpnGatewayRequest')
    DeviceOptions = Shapes::StructureShape.new(name: 'DeviceOptions')
    DeviceTrustProviderType = Shapes::StringShape.new(name: 'DeviceTrustProviderType')
    DeviceTrustProviderTypeList = Shapes::ListShape.new(name: 'DeviceTrustProviderTypeList')
    DeviceType = Shapes::StringShape.new(name: 'DeviceType')
    DhcpConfiguration = Shapes::StructureShape.new(name: 'DhcpConfiguration')
    DhcpConfigurationList = Shapes::ListShape.new(name: 'DhcpConfigurationList')
    DhcpConfigurationValueList = Shapes::ListShape.new(name: 'DhcpConfigurationValueList')
    DhcpOptions = Shapes::StructureShape.new(name: 'DhcpOptions')
    DhcpOptionsId = Shapes::StringShape.new(name: 'DhcpOptionsId')
    DhcpOptionsIdStringList = Shapes::ListShape.new(name: 'DhcpOptionsIdStringList')
    DhcpOptionsList = Shapes::ListShape.new(name: 'DhcpOptionsList')
    DirectoryServiceAuthentication = Shapes::StructureShape.new(name: 'DirectoryServiceAuthentication')
    DirectoryServiceAuthenticationRequest = Shapes::StructureShape.new(name: 'DirectoryServiceAuthenticationRequest')
    DisableAddressTransferRequest = Shapes::StructureShape.new(name: 'DisableAddressTransferRequest')
    DisableAddressTransferResult = Shapes::StructureShape.new(name: 'DisableAddressTransferResult')
    DisableAllowedImagesSettingsRequest = Shapes::StructureShape.new(name: 'DisableAllowedImagesSettingsRequest')
    DisableAllowedImagesSettingsResult = Shapes::StructureShape.new(name: 'DisableAllowedImagesSettingsResult')
    DisableAwsNetworkPerformanceMetricSubscriptionRequest = Shapes::StructureShape.new(name: 'DisableAwsNetworkPerformanceMetricSubscriptionRequest')
    DisableAwsNetworkPerformanceMetricSubscriptionResult = Shapes::StructureShape.new(name: 'DisableAwsNetworkPerformanceMetricSubscriptionResult')
    DisableEbsEncryptionByDefaultRequest = Shapes::StructureShape.new(name: 'DisableEbsEncryptionByDefaultRequest')
    DisableEbsEncryptionByDefaultResult = Shapes::StructureShape.new(name: 'DisableEbsEncryptionByDefaultResult')
    DisableFastLaunchRequest = Shapes::StructureShape.new(name: 'DisableFastLaunchRequest')
    DisableFastLaunchResult = Shapes::StructureShape.new(name: 'DisableFastLaunchResult')
    DisableFastSnapshotRestoreErrorItem = Shapes::StructureShape.new(name: 'DisableFastSnapshotRestoreErrorItem')
    DisableFastSnapshotRestoreErrorSet = Shapes::ListShape.new(name: 'DisableFastSnapshotRestoreErrorSet')
    DisableFastSnapshotRestoreStateError = Shapes::StructureShape.new(name: 'DisableFastSnapshotRestoreStateError')
    DisableFastSnapshotRestoreStateErrorItem = Shapes::StructureShape.new(name: 'DisableFastSnapshotRestoreStateErrorItem')
    DisableFastSnapshotRestoreStateErrorSet = Shapes::ListShape.new(name: 'DisableFastSnapshotRestoreStateErrorSet')
    DisableFastSnapshotRestoreSuccessItem = Shapes::StructureShape.new(name: 'DisableFastSnapshotRestoreSuccessItem')
    DisableFastSnapshotRestoreSuccessSet = Shapes::ListShape.new(name: 'DisableFastSnapshotRestoreSuccessSet')
    DisableFastSnapshotRestoresRequest = Shapes::StructureShape.new(name: 'DisableFastSnapshotRestoresRequest')
    DisableFastSnapshotRestoresResult = Shapes::StructureShape.new(name: 'DisableFastSnapshotRestoresResult')
    DisableImageBlockPublicAccessRequest = Shapes::StructureShape.new(name: 'DisableImageBlockPublicAccessRequest')
    DisableImageBlockPublicAccessResult = Shapes::StructureShape.new(name: 'DisableImageBlockPublicAccessResult')
    DisableImageDeprecationRequest = Shapes::StructureShape.new(name: 'DisableImageDeprecationRequest')
    DisableImageDeprecationResult = Shapes::StructureShape.new(name: 'DisableImageDeprecationResult')
    DisableImageDeregistrationProtectionRequest = Shapes::StructureShape.new(name: 'DisableImageDeregistrationProtectionRequest')
    DisableImageDeregistrationProtectionResult = Shapes::StructureShape.new(name: 'DisableImageDeregistrationProtectionResult')
    DisableImageRequest = Shapes::StructureShape.new(name: 'DisableImageRequest')
    DisableImageResult = Shapes::StructureShape.new(name: 'DisableImageResult')
    DisableIpamOrganizationAdminAccountRequest = Shapes::StructureShape.new(name: 'DisableIpamOrganizationAdminAccountRequest')
    DisableIpamOrganizationAdminAccountResult = Shapes::StructureShape.new(name: 'DisableIpamOrganizationAdminAccountResult')
    DisableSerialConsoleAccessRequest = Shapes::StructureShape.new(name: 'DisableSerialConsoleAccessRequest')
    DisableSerialConsoleAccessResult = Shapes::StructureShape.new(name: 'DisableSerialConsoleAccessResult')
    DisableSnapshotBlockPublicAccessRequest = Shapes::StructureShape.new(name: 'DisableSnapshotBlockPublicAccessRequest')
    DisableSnapshotBlockPublicAccessResult = Shapes::StructureShape.new(name: 'DisableSnapshotBlockPublicAccessResult')
    DisableTransitGatewayRouteTablePropagationRequest = Shapes::StructureShape.new(name: 'DisableTransitGatewayRouteTablePropagationRequest')
    DisableTransitGatewayRouteTablePropagationResult = Shapes::StructureShape.new(name: 'DisableTransitGatewayRouteTablePropagationResult')
    DisableVgwRoutePropagationRequest = Shapes::StructureShape.new(name: 'DisableVgwRoutePropagationRequest')
    DisableVpcClassicLinkDnsSupportRequest = Shapes::StructureShape.new(name: 'DisableVpcClassicLinkDnsSupportRequest')
    DisableVpcClassicLinkDnsSupportResult = Shapes::StructureShape.new(name: 'DisableVpcClassicLinkDnsSupportResult')
    DisableVpcClassicLinkRequest = Shapes::StructureShape.new(name: 'DisableVpcClassicLinkRequest')
    DisableVpcClassicLinkResult = Shapes::StructureShape.new(name: 'DisableVpcClassicLinkResult')
    DisassociateAddressRequest = Shapes::StructureShape.new(name: 'DisassociateAddressRequest')
    DisassociateCapacityReservationBillingOwnerRequest = Shapes::StructureShape.new(name: 'DisassociateCapacityReservationBillingOwnerRequest')
    DisassociateCapacityReservationBillingOwnerResult = Shapes::StructureShape.new(name: 'DisassociateCapacityReservationBillingOwnerResult')
    DisassociateClientVpnTargetNetworkRequest = Shapes::StructureShape.new(name: 'DisassociateClientVpnTargetNetworkRequest')
    DisassociateClientVpnTargetNetworkResult = Shapes::StructureShape.new(name: 'DisassociateClientVpnTargetNetworkResult')
    DisassociateEnclaveCertificateIamRoleRequest = Shapes::StructureShape.new(name: 'DisassociateEnclaveCertificateIamRoleRequest')
    DisassociateEnclaveCertificateIamRoleResult = Shapes::StructureShape.new(name: 'DisassociateEnclaveCertificateIamRoleResult')
    DisassociateIamInstanceProfileRequest = Shapes::StructureShape.new(name: 'DisassociateIamInstanceProfileRequest')
    DisassociateIamInstanceProfileResult = Shapes::StructureShape.new(name: 'DisassociateIamInstanceProfileResult')
    DisassociateInstanceEventWindowRequest = Shapes::StructureShape.new(name: 'DisassociateInstanceEventWindowRequest')
    DisassociateInstanceEventWindowResult = Shapes::StructureShape.new(name: 'DisassociateInstanceEventWindowResult')
    DisassociateIpamByoasnRequest = Shapes::StructureShape.new(name: 'DisassociateIpamByoasnRequest')
    DisassociateIpamByoasnResult = Shapes::StructureShape.new(name: 'DisassociateIpamByoasnResult')
    DisassociateIpamResourceDiscoveryRequest = Shapes::StructureShape.new(name: 'DisassociateIpamResourceDiscoveryRequest')
    DisassociateIpamResourceDiscoveryResult = Shapes::StructureShape.new(name: 'DisassociateIpamResourceDiscoveryResult')
    DisassociateNatGatewayAddressRequest = Shapes::StructureShape.new(name: 'DisassociateNatGatewayAddressRequest')
    DisassociateNatGatewayAddressResult = Shapes::StructureShape.new(name: 'DisassociateNatGatewayAddressResult')
    DisassociateRouteTableRequest = Shapes::StructureShape.new(name: 'DisassociateRouteTableRequest')
    DisassociateSecurityGroupVpcRequest = Shapes::StructureShape.new(name: 'DisassociateSecurityGroupVpcRequest')
    DisassociateSecurityGroupVpcResult = Shapes::StructureShape.new(name: 'DisassociateSecurityGroupVpcResult')
    DisassociateSecurityGroupVpcSecurityGroupId = Shapes::StringShape.new(name: 'DisassociateSecurityGroupVpcSecurityGroupId')
    DisassociateSubnetCidrBlockRequest = Shapes::StructureShape.new(name: 'DisassociateSubnetCidrBlockRequest')
    DisassociateSubnetCidrBlockResult = Shapes::StructureShape.new(name: 'DisassociateSubnetCidrBlockResult')
    DisassociateTransitGatewayMulticastDomainRequest = Shapes::StructureShape.new(name: 'DisassociateTransitGatewayMulticastDomainRequest')
    DisassociateTransitGatewayMulticastDomainResult = Shapes::StructureShape.new(name: 'DisassociateTransitGatewayMulticastDomainResult')
    DisassociateTransitGatewayPolicyTableRequest = Shapes::StructureShape.new(name: 'DisassociateTransitGatewayPolicyTableRequest')
    DisassociateTransitGatewayPolicyTableResult = Shapes::StructureShape.new(name: 'DisassociateTransitGatewayPolicyTableResult')
    DisassociateTransitGatewayRouteTableRequest = Shapes::StructureShape.new(name: 'DisassociateTransitGatewayRouteTableRequest')
    DisassociateTransitGatewayRouteTableResult = Shapes::StructureShape.new(name: 'DisassociateTransitGatewayRouteTableResult')
    DisassociateTrunkInterfaceRequest = Shapes::StructureShape.new(name: 'DisassociateTrunkInterfaceRequest')
    DisassociateTrunkInterfaceResult = Shapes::StructureShape.new(name: 'DisassociateTrunkInterfaceResult')
    DisassociateVpcCidrBlockRequest = Shapes::StructureShape.new(name: 'DisassociateVpcCidrBlockRequest')
    DisassociateVpcCidrBlockResult = Shapes::StructureShape.new(name: 'DisassociateVpcCidrBlockResult')
    DiskCount = Shapes::IntegerShape.new(name: 'DiskCount')
    DiskImage = Shapes::StructureShape.new(name: 'DiskImage')
    DiskImageDescription = Shapes::StructureShape.new(name: 'DiskImageDescription')
    DiskImageDetail = Shapes::StructureShape.new(name: 'DiskImageDetail')
    DiskImageFormat = Shapes::StringShape.new(name: 'DiskImageFormat')
    DiskImageList = Shapes::ListShape.new(name: 'DiskImageList')
    DiskImageVolumeDescription = Shapes::StructureShape.new(name: 'DiskImageVolumeDescription')
    DiskInfo = Shapes::StructureShape.new(name: 'DiskInfo')
    DiskInfoList = Shapes::ListShape.new(name: 'DiskInfoList')
    DiskSize = Shapes::IntegerShape.new(name: 'DiskSize')
    DiskType = Shapes::StringShape.new(name: 'DiskType')
    DnsEntry = Shapes::StructureShape.new(name: 'DnsEntry')
    DnsEntrySet = Shapes::ListShape.new(name: 'DnsEntrySet')
    DnsNameState = Shapes::StringShape.new(name: 'DnsNameState')
    DnsOptions = Shapes::StructureShape.new(name: 'DnsOptions')
    DnsOptionsSpecification = Shapes::StructureShape.new(name: 'DnsOptionsSpecification')
    DnsRecordIpType = Shapes::StringShape.new(name: 'DnsRecordIpType')
    DnsServersOptionsModifyStructure = Shapes::StructureShape.new(name: 'DnsServersOptionsModifyStructure')
    DnsSupportValue = Shapes::StringShape.new(name: 'DnsSupportValue')
    DomainType = Shapes::StringShape.new(name: 'DomainType')
    Double = Shapes::FloatShape.new(name: 'Double')
    DoubleWithConstraints = Shapes::FloatShape.new(name: 'DoubleWithConstraints')
    DrainSeconds = Shapes::IntegerShape.new(name: 'DrainSeconds')
    DynamicRoutingValue = Shapes::StringShape.new(name: 'DynamicRoutingValue')
    EbsBlockDevice = Shapes::StructureShape.new(name: 'EbsBlockDevice')
    EbsBlockDeviceResponse = Shapes::StructureShape.new(name: 'EbsBlockDeviceResponse')
    EbsEncryptionSupport = Shapes::StringShape.new(name: 'EbsEncryptionSupport')
    EbsInfo = Shapes::StructureShape.new(name: 'EbsInfo')
    EbsInstanceBlockDevice = Shapes::StructureShape.new(name: 'EbsInstanceBlockDevice')
    EbsInstanceBlockDeviceSpecification = Shapes::StructureShape.new(name: 'EbsInstanceBlockDeviceSpecification')
    EbsNvmeSupport = Shapes::StringShape.new(name: 'EbsNvmeSupport')
    EbsOptimizedInfo = Shapes::StructureShape.new(name: 'EbsOptimizedInfo')
    EbsOptimizedSupport = Shapes::StringShape.new(name: 'EbsOptimizedSupport')
    EbsStatusDetails = Shapes::StructureShape.new(name: 'EbsStatusDetails')
    EbsStatusDetailsList = Shapes::ListShape.new(name: 'EbsStatusDetailsList')
    EbsStatusSummary = Shapes::StructureShape.new(name: 'EbsStatusSummary')
    Ec2InstanceConnectEndpoint = Shapes::StructureShape.new(name: 'Ec2InstanceConnectEndpoint')
    Ec2InstanceConnectEndpointState = Shapes::StringShape.new(name: 'Ec2InstanceConnectEndpointState')
    EfaInfo = Shapes::StructureShape.new(name: 'EfaInfo')
    EfaSupportedFlag = Shapes::BooleanShape.new(name: 'EfaSupportedFlag')
    EgressOnlyInternetGateway = Shapes::StructureShape.new(name: 'EgressOnlyInternetGateway')
    EgressOnlyInternetGatewayId = Shapes::StringShape.new(name: 'EgressOnlyInternetGatewayId')
    EgressOnlyInternetGatewayIdList = Shapes::ListShape.new(name: 'EgressOnlyInternetGatewayIdList')
    EgressOnlyInternetGatewayList = Shapes::ListShape.new(name: 'EgressOnlyInternetGatewayList')
    EipAllocationPublicIp = Shapes::StringShape.new(name: 'EipAllocationPublicIp')
    EipAssociationIdList = Shapes::ListShape.new(name: 'EipAssociationIdList')
    EkPubKeyFormat = Shapes::StringShape.new(name: 'EkPubKeyFormat')
    EkPubKeyType = Shapes::StringShape.new(name: 'EkPubKeyType')
    EkPubKeyValue = Shapes::StringShape.new(name: 'EkPubKeyValue')
    ElasticGpuAssociation = Shapes::StructureShape.new(name: 'ElasticGpuAssociation')
    ElasticGpuAssociationList = Shapes::ListShape.new(name: 'ElasticGpuAssociationList')
    ElasticGpuHealth = Shapes::StructureShape.new(name: 'ElasticGpuHealth')
    ElasticGpuId = Shapes::StringShape.new(name: 'ElasticGpuId')
    ElasticGpuIdSet = Shapes::ListShape.new(name: 'ElasticGpuIdSet')
    ElasticGpuSet = Shapes::ListShape.new(name: 'ElasticGpuSet')
    ElasticGpuSpecification = Shapes::StructureShape.new(name: 'ElasticGpuSpecification')
    ElasticGpuSpecificationList = Shapes::ListShape.new(name: 'ElasticGpuSpecificationList')
    ElasticGpuSpecificationResponse = Shapes::StructureShape.new(name: 'ElasticGpuSpecificationResponse')
    ElasticGpuSpecificationResponseList = Shapes::ListShape.new(name: 'ElasticGpuSpecificationResponseList')
    ElasticGpuSpecifications = Shapes::ListShape.new(name: 'ElasticGpuSpecifications')
    ElasticGpuState = Shapes::StringShape.new(name: 'ElasticGpuState')
    ElasticGpuStatus = Shapes::StringShape.new(name: 'ElasticGpuStatus')
    ElasticGpus = Shapes::StructureShape.new(name: 'ElasticGpus')
    ElasticInferenceAccelerator = Shapes::StructureShape.new(name: 'ElasticInferenceAccelerator')
    ElasticInferenceAcceleratorAssociation = Shapes::StructureShape.new(name: 'ElasticInferenceAcceleratorAssociation')
    ElasticInferenceAcceleratorAssociationList = Shapes::ListShape.new(name: 'ElasticInferenceAcceleratorAssociationList')
    ElasticInferenceAcceleratorCount = Shapes::IntegerShape.new(name: 'ElasticInferenceAcceleratorCount')
    ElasticInferenceAccelerators = Shapes::ListShape.new(name: 'ElasticInferenceAccelerators')
    ElasticIpAssociationId = Shapes::StringShape.new(name: 'ElasticIpAssociationId')
    EnaSrdSpecification = Shapes::StructureShape.new(name: 'EnaSrdSpecification')
    EnaSrdSpecificationRequest = Shapes::StructureShape.new(name: 'EnaSrdSpecificationRequest')
    EnaSrdSupported = Shapes::BooleanShape.new(name: 'EnaSrdSupported')
    EnaSrdUdpSpecification = Shapes::StructureShape.new(name: 'EnaSrdUdpSpecification')
    EnaSrdUdpSpecificationRequest = Shapes::StructureShape.new(name: 'EnaSrdUdpSpecificationRequest')
    EnaSupport = Shapes::StringShape.new(name: 'EnaSupport')
    EnableAddressTransferRequest = Shapes::StructureShape.new(name: 'EnableAddressTransferRequest')
    EnableAddressTransferResult = Shapes::StructureShape.new(name: 'EnableAddressTransferResult')
    EnableAllowedImagesSettingsRequest = Shapes::StructureShape.new(name: 'EnableAllowedImagesSettingsRequest')
    EnableAllowedImagesSettingsResult = Shapes::StructureShape.new(name: 'EnableAllowedImagesSettingsResult')
    EnableAwsNetworkPerformanceMetricSubscriptionRequest = Shapes::StructureShape.new(name: 'EnableAwsNetworkPerformanceMetricSubscriptionRequest')
    EnableAwsNetworkPerformanceMetricSubscriptionResult = Shapes::StructureShape.new(name: 'EnableAwsNetworkPerformanceMetricSubscriptionResult')
    EnableEbsEncryptionByDefaultRequest = Shapes::StructureShape.new(name: 'EnableEbsEncryptionByDefaultRequest')
    EnableEbsEncryptionByDefaultResult = Shapes::StructureShape.new(name: 'EnableEbsEncryptionByDefaultResult')
    EnableFastLaunchRequest = Shapes::StructureShape.new(name: 'EnableFastLaunchRequest')
    EnableFastLaunchResult = Shapes::StructureShape.new(name: 'EnableFastLaunchResult')
    EnableFastSnapshotRestoreErrorItem = Shapes::StructureShape.new(name: 'EnableFastSnapshotRestoreErrorItem')
    EnableFastSnapshotRestoreErrorSet = Shapes::ListShape.new(name: 'EnableFastSnapshotRestoreErrorSet')
    EnableFastSnapshotRestoreStateError = Shapes::StructureShape.new(name: 'EnableFastSnapshotRestoreStateError')
    EnableFastSnapshotRestoreStateErrorItem = Shapes::StructureShape.new(name: 'EnableFastSnapshotRestoreStateErrorItem')
    EnableFastSnapshotRestoreStateErrorSet = Shapes::ListShape.new(name: 'EnableFastSnapshotRestoreStateErrorSet')
    EnableFastSnapshotRestoreSuccessItem = Shapes::StructureShape.new(name: 'EnableFastSnapshotRestoreSuccessItem')
    EnableFastSnapshotRestoreSuccessSet = Shapes::ListShape.new(name: 'EnableFastSnapshotRestoreSuccessSet')
    EnableFastSnapshotRestoresRequest = Shapes::StructureShape.new(name: 'EnableFastSnapshotRestoresRequest')
    EnableFastSnapshotRestoresResult = Shapes::StructureShape.new(name: 'EnableFastSnapshotRestoresResult')
    EnableImageBlockPublicAccessRequest = Shapes::StructureShape.new(name: 'EnableImageBlockPublicAccessRequest')
    EnableImageBlockPublicAccessResult = Shapes::StructureShape.new(name: 'EnableImageBlockPublicAccessResult')
    EnableImageDeprecationRequest = Shapes::StructureShape.new(name: 'EnableImageDeprecationRequest')
    EnableImageDeprecationResult = Shapes::StructureShape.new(name: 'EnableImageDeprecationResult')
    EnableImageDeregistrationProtectionRequest = Shapes::StructureShape.new(name: 'EnableImageDeregistrationProtectionRequest')
    EnableImageDeregistrationProtectionResult = Shapes::StructureShape.new(name: 'EnableImageDeregistrationProtectionResult')
    EnableImageRequest = Shapes::StructureShape.new(name: 'EnableImageRequest')
    EnableImageResult = Shapes::StructureShape.new(name: 'EnableImageResult')
    EnableIpamOrganizationAdminAccountRequest = Shapes::StructureShape.new(name: 'EnableIpamOrganizationAdminAccountRequest')
    EnableIpamOrganizationAdminAccountResult = Shapes::StructureShape.new(name: 'EnableIpamOrganizationAdminAccountResult')
    EnableReachabilityAnalyzerOrganizationSharingRequest = Shapes::StructureShape.new(name: 'EnableReachabilityAnalyzerOrganizationSharingRequest')
    EnableReachabilityAnalyzerOrganizationSharingResult = Shapes::StructureShape.new(name: 'EnableReachabilityAnalyzerOrganizationSharingResult')
    EnableSerialConsoleAccessRequest = Shapes::StructureShape.new(name: 'EnableSerialConsoleAccessRequest')
    EnableSerialConsoleAccessResult = Shapes::StructureShape.new(name: 'EnableSerialConsoleAccessResult')
    EnableSnapshotBlockPublicAccessRequest = Shapes::StructureShape.new(name: 'EnableSnapshotBlockPublicAccessRequest')
    EnableSnapshotBlockPublicAccessResult = Shapes::StructureShape.new(name: 'EnableSnapshotBlockPublicAccessResult')
    EnableTransitGatewayRouteTablePropagationRequest = Shapes::StructureShape.new(name: 'EnableTransitGatewayRouteTablePropagationRequest')
    EnableTransitGatewayRouteTablePropagationResult = Shapes::StructureShape.new(name: 'EnableTransitGatewayRouteTablePropagationResult')
    EnableVgwRoutePropagationRequest = Shapes::StructureShape.new(name: 'EnableVgwRoutePropagationRequest')
    EnableVolumeIORequest = Shapes::StructureShape.new(name: 'EnableVolumeIORequest')
    EnableVpcClassicLinkDnsSupportRequest = Shapes::StructureShape.new(name: 'EnableVpcClassicLinkDnsSupportRequest')
    EnableVpcClassicLinkDnsSupportResult = Shapes::StructureShape.new(name: 'EnableVpcClassicLinkDnsSupportResult')
    EnableVpcClassicLinkRequest = Shapes::StructureShape.new(name: 'EnableVpcClassicLinkRequest')
    EnableVpcClassicLinkResult = Shapes::StructureShape.new(name: 'EnableVpcClassicLinkResult')
    EnclaveOptions = Shapes::StructureShape.new(name: 'EnclaveOptions')
    EnclaveOptionsRequest = Shapes::StructureShape.new(name: 'EnclaveOptionsRequest')
    EncryptionInTransitSupported = Shapes::BooleanShape.new(name: 'EncryptionInTransitSupported')
    EndDateType = Shapes::StringShape.new(name: 'EndDateType')
    EndpointSet = Shapes::ListShape.new(name: 'EndpointSet')
    EphemeralNvmeSupport = Shapes::StringShape.new(name: 'EphemeralNvmeSupport')
    ErrorSet = Shapes::ListShape.new(name: 'ErrorSet')
    EventCode = Shapes::StringShape.new(name: 'EventCode')
    EventInformation = Shapes::StructureShape.new(name: 'EventInformation')
    EventType = Shapes::StringShape.new(name: 'EventType')
    ExcessCapacityTerminationPolicy = Shapes::StringShape.new(name: 'ExcessCapacityTerminationPolicy')
    ExcludedInstanceType = Shapes::StringShape.new(name: 'ExcludedInstanceType')
    ExcludedInstanceTypeSet = Shapes::ListShape.new(name: 'ExcludedInstanceTypeSet')
    ExecutableByStringList = Shapes::ListShape.new(name: 'ExecutableByStringList')
    Explanation = Shapes::StructureShape.new(name: 'Explanation')
    ExplanationList = Shapes::ListShape.new(name: 'ExplanationList')
    ExportClientVpnClientCertificateRevocationListRequest = Shapes::StructureShape.new(name: 'ExportClientVpnClientCertificateRevocationListRequest')
    ExportClientVpnClientCertificateRevocationListResult = Shapes::StructureShape.new(name: 'ExportClientVpnClientCertificateRevocationListResult')
    ExportClientVpnClientConfigurationRequest = Shapes::StructureShape.new(name: 'ExportClientVpnClientConfigurationRequest')
    ExportClientVpnClientConfigurationResult = Shapes::StructureShape.new(name: 'ExportClientVpnClientConfigurationResult')
    ExportEnvironment = Shapes::StringShape.new(name: 'ExportEnvironment')
    ExportImageRequest = Shapes::StructureShape.new(name: 'ExportImageRequest')
    ExportImageResult = Shapes::StructureShape.new(name: 'ExportImageResult')
    ExportImageTask = Shapes::StructureShape.new(name: 'ExportImageTask')
    ExportImageTaskId = Shapes::StringShape.new(name: 'ExportImageTaskId')
    ExportImageTaskIdList = Shapes::ListShape.new(name: 'ExportImageTaskIdList')
    ExportImageTaskList = Shapes::ListShape.new(name: 'ExportImageTaskList')
    ExportTask = Shapes::StructureShape.new(name: 'ExportTask')
    ExportTaskId = Shapes::StringShape.new(name: 'ExportTaskId')
    ExportTaskIdStringList = Shapes::ListShape.new(name: 'ExportTaskIdStringList')
    ExportTaskList = Shapes::ListShape.new(name: 'ExportTaskList')
    ExportTaskS3Location = Shapes::StructureShape.new(name: 'ExportTaskS3Location')
    ExportTaskS3LocationRequest = Shapes::StructureShape.new(name: 'ExportTaskS3LocationRequest')
    ExportTaskState = Shapes::StringShape.new(name: 'ExportTaskState')
    ExportToS3Task = Shapes::StructureShape.new(name: 'ExportToS3Task')
    ExportToS3TaskSpecification = Shapes::StructureShape.new(name: 'ExportToS3TaskSpecification')
    ExportTransitGatewayRoutesRequest = Shapes::StructureShape.new(name: 'ExportTransitGatewayRoutesRequest')
    ExportTransitGatewayRoutesResult = Shapes::StructureShape.new(name: 'ExportTransitGatewayRoutesResult')
    ExportVerifiedAccessInstanceClientConfigurationRequest = Shapes::StructureShape.new(name: 'ExportVerifiedAccessInstanceClientConfigurationRequest')
    ExportVerifiedAccessInstanceClientConfigurationResult = Shapes::StructureShape.new(name: 'ExportVerifiedAccessInstanceClientConfigurationResult')
    ExportVmTaskId = Shapes::StringShape.new(name: 'ExportVmTaskId')
    FailedCapacityReservationFleetCancellationResult = Shapes::StructureShape.new(name: 'FailedCapacityReservationFleetCancellationResult')
    FailedCapacityReservationFleetCancellationResultSet = Shapes::ListShape.new(name: 'FailedCapacityReservationFleetCancellationResultSet')
    FailedQueuedPurchaseDeletion = Shapes::StructureShape.new(name: 'FailedQueuedPurchaseDeletion')
    FailedQueuedPurchaseDeletionSet = Shapes::ListShape.new(name: 'FailedQueuedPurchaseDeletionSet')
    FastLaunchImageIdList = Shapes::ListShape.new(name: 'FastLaunchImageIdList')
    FastLaunchLaunchTemplateSpecificationRequest = Shapes::StructureShape.new(name: 'FastLaunchLaunchTemplateSpecificationRequest')
    FastLaunchLaunchTemplateSpecificationResponse = Shapes::StructureShape.new(name: 'FastLaunchLaunchTemplateSpecificationResponse')
    FastLaunchResourceType = Shapes::StringShape.new(name: 'FastLaunchResourceType')
    FastLaunchSnapshotConfigurationRequest = Shapes::StructureShape.new(name: 'FastLaunchSnapshotConfigurationRequest')
    FastLaunchSnapshotConfigurationResponse = Shapes::StructureShape.new(name: 'FastLaunchSnapshotConfigurationResponse')
    FastLaunchStateCode = Shapes::StringShape.new(name: 'FastLaunchStateCode')
    FastSnapshotRestoreStateCode = Shapes::StringShape.new(name: 'FastSnapshotRestoreStateCode')
    FederatedAuthentication = Shapes::StructureShape.new(name: 'FederatedAuthentication')
    FederatedAuthenticationRequest = Shapes::StructureShape.new(name: 'FederatedAuthenticationRequest')
    Filter = Shapes::StructureShape.new(name: 'Filter')
    FilterList = Shapes::ListShape.new(name: 'FilterList')
    FilterPortRange = Shapes::StructureShape.new(name: 'FilterPortRange')
    FindingsFound = Shapes::StringShape.new(name: 'FindingsFound')
    FirewallStatefulRule = Shapes::StructureShape.new(name: 'FirewallStatefulRule')
    FirewallStatelessRule = Shapes::StructureShape.new(name: 'FirewallStatelessRule')
    FleetActivityStatus = Shapes::StringShape.new(name: 'FleetActivityStatus')
    FleetBlockDeviceMappingRequest = Shapes::StructureShape.new(name: 'FleetBlockDeviceMappingRequest')
    FleetBlockDeviceMappingRequestList = Shapes::ListShape.new(name: 'FleetBlockDeviceMappingRequestList')
    FleetCapacityReservation = Shapes::StructureShape.new(name: 'FleetCapacityReservation')
    FleetCapacityReservationSet = Shapes::ListShape.new(name: 'FleetCapacityReservationSet')
    FleetCapacityReservationTenancy = Shapes::StringShape.new(name: 'FleetCapacityReservationTenancy')
    FleetCapacityReservationUsageStrategy = Shapes::StringShape.new(name: 'FleetCapacityReservationUsageStrategy')
    FleetData = Shapes::StructureShape.new(name: 'FleetData')
    FleetEbsBlockDeviceRequest = Shapes::StructureShape.new(name: 'FleetEbsBlockDeviceRequest')
    FleetEventType = Shapes::StringShape.new(name: 'FleetEventType')
    FleetExcessCapacityTerminationPolicy = Shapes::StringShape.new(name: 'FleetExcessCapacityTerminationPolicy')
    FleetId = Shapes::StringShape.new(name: 'FleetId')
    FleetIdSet = Shapes::ListShape.new(name: 'FleetIdSet')
    FleetInstanceMatchCriteria = Shapes::StringShape.new(name: 'FleetInstanceMatchCriteria')
    FleetLaunchTemplateConfig = Shapes::StructureShape.new(name: 'FleetLaunchTemplateConfig')
    FleetLaunchTemplateConfigList = Shapes::ListShape.new(name: 'FleetLaunchTemplateConfigList')
    FleetLaunchTemplateConfigListRequest = Shapes::ListShape.new(name: 'FleetLaunchTemplateConfigListRequest')
    FleetLaunchTemplateConfigRequest = Shapes::StructureShape.new(name: 'FleetLaunchTemplateConfigRequest')
    FleetLaunchTemplateOverrides = Shapes::StructureShape.new(name: 'FleetLaunchTemplateOverrides')
    FleetLaunchTemplateOverridesList = Shapes::ListShape.new(name: 'FleetLaunchTemplateOverridesList')
    FleetLaunchTemplateOverridesListRequest = Shapes::ListShape.new(name: 'FleetLaunchTemplateOverridesListRequest')
    FleetLaunchTemplateOverridesRequest = Shapes::StructureShape.new(name: 'FleetLaunchTemplateOverridesRequest')
    FleetLaunchTemplateSpecification = Shapes::StructureShape.new(name: 'FleetLaunchTemplateSpecification')
    FleetLaunchTemplateSpecificationRequest = Shapes::StructureShape.new(name: 'FleetLaunchTemplateSpecificationRequest')
    FleetOnDemandAllocationStrategy = Shapes::StringShape.new(name: 'FleetOnDemandAllocationStrategy')
    FleetReplacementStrategy = Shapes::StringShape.new(name: 'FleetReplacementStrategy')
    FleetSet = Shapes::ListShape.new(name: 'FleetSet')
    FleetSpotCapacityRebalance = Shapes::StructureShape.new(name: 'FleetSpotCapacityRebalance')
    FleetSpotCapacityRebalanceRequest = Shapes::StructureShape.new(name: 'FleetSpotCapacityRebalanceRequest')
    FleetSpotMaintenanceStrategies = Shapes::StructureShape.new(name: 'FleetSpotMaintenanceStrategies')
    FleetSpotMaintenanceStrategiesRequest = Shapes::StructureShape.new(name: 'FleetSpotMaintenanceStrategiesRequest')
    FleetStateCode = Shapes::StringShape.new(name: 'FleetStateCode')
    FleetType = Shapes::StringShape.new(name: 'FleetType')
    Float = Shapes::FloatShape.new(name: 'Float')
    FlowLog = Shapes::StructureShape.new(name: 'FlowLog')
    FlowLogIdList = Shapes::ListShape.new(name: 'FlowLogIdList')
    FlowLogResourceId = Shapes::StringShape.new(name: 'FlowLogResourceId')
    FlowLogResourceIds = Shapes::ListShape.new(name: 'FlowLogResourceIds')
    FlowLogSet = Shapes::ListShape.new(name: 'FlowLogSet')
    FlowLogsResourceType = Shapes::StringShape.new(name: 'FlowLogsResourceType')
    FpgaDeviceCount = Shapes::IntegerShape.new(name: 'FpgaDeviceCount')
    FpgaDeviceInfo = Shapes::StructureShape.new(name: 'FpgaDeviceInfo')
    FpgaDeviceInfoList = Shapes::ListShape.new(name: 'FpgaDeviceInfoList')
    FpgaDeviceManufacturerName = Shapes::StringShape.new(name: 'FpgaDeviceManufacturerName')
    FpgaDeviceMemoryInfo = Shapes::StructureShape.new(name: 'FpgaDeviceMemoryInfo')
    FpgaDeviceMemorySize = Shapes::IntegerShape.new(name: 'FpgaDeviceMemorySize')
    FpgaDeviceName = Shapes::StringShape.new(name: 'FpgaDeviceName')
    FpgaImage = Shapes::StructureShape.new(name: 'FpgaImage')
    FpgaImageAttribute = Shapes::StructureShape.new(name: 'FpgaImageAttribute')
    FpgaImageAttributeName = Shapes::StringShape.new(name: 'FpgaImageAttributeName')
    FpgaImageId = Shapes::StringShape.new(name: 'FpgaImageId')
    FpgaImageIdList = Shapes::ListShape.new(name: 'FpgaImageIdList')
    FpgaImageList = Shapes::ListShape.new(name: 'FpgaImageList')
    FpgaImageState = Shapes::StructureShape.new(name: 'FpgaImageState')
    FpgaImageStateCode = Shapes::StringShape.new(name: 'FpgaImageStateCode')
    FpgaInfo = Shapes::StructureShape.new(name: 'FpgaInfo')
    FreeTierEligibleFlag = Shapes::BooleanShape.new(name: 'FreeTierEligibleFlag')
    GVCDMaxResults = Shapes::IntegerShape.new(name: 'GVCDMaxResults')
    GatewayAssociationState = Shapes::StringShape.new(name: 'GatewayAssociationState')
    GatewayType = Shapes::StringShape.new(name: 'GatewayType')
    GetAllowedImagesSettingsRequest = Shapes::StructureShape.new(name: 'GetAllowedImagesSettingsRequest')
    GetAllowedImagesSettingsResult = Shapes::StructureShape.new(name: 'GetAllowedImagesSettingsResult')
    GetAssociatedEnclaveCertificateIamRolesRequest = Shapes::StructureShape.new(name: 'GetAssociatedEnclaveCertificateIamRolesRequest')
    GetAssociatedEnclaveCertificateIamRolesResult = Shapes::StructureShape.new(name: 'GetAssociatedEnclaveCertificateIamRolesResult')
    GetAssociatedIpv6PoolCidrsRequest = Shapes::StructureShape.new(name: 'GetAssociatedIpv6PoolCidrsRequest')
    GetAssociatedIpv6PoolCidrsResult = Shapes::StructureShape.new(name: 'GetAssociatedIpv6PoolCidrsResult')
    GetAwsNetworkPerformanceDataRequest = Shapes::StructureShape.new(name: 'GetAwsNetworkPerformanceDataRequest')
    GetAwsNetworkPerformanceDataResult = Shapes::StructureShape.new(name: 'GetAwsNetworkPerformanceDataResult')
    GetCapacityReservationUsageRequest = Shapes::StructureShape.new(name: 'GetCapacityReservationUsageRequest')
    GetCapacityReservationUsageRequestMaxResults = Shapes::IntegerShape.new(name: 'GetCapacityReservationUsageRequestMaxResults')
    GetCapacityReservationUsageResult = Shapes::StructureShape.new(name: 'GetCapacityReservationUsageResult')
    GetCoipPoolUsageRequest = Shapes::StructureShape.new(name: 'GetCoipPoolUsageRequest')
    GetCoipPoolUsageResult = Shapes::StructureShape.new(name: 'GetCoipPoolUsageResult')
    GetConsoleOutputRequest = Shapes::StructureShape.new(name: 'GetConsoleOutputRequest')
    GetConsoleOutputResult = Shapes::StructureShape.new(name: 'GetConsoleOutputResult')
    GetConsoleScreenshotRequest = Shapes::StructureShape.new(name: 'GetConsoleScreenshotRequest')
    GetConsoleScreenshotResult = Shapes::StructureShape.new(name: 'GetConsoleScreenshotResult')
    GetDeclarativePoliciesReportSummaryRequest = Shapes::StructureShape.new(name: 'GetDeclarativePoliciesReportSummaryRequest')
    GetDeclarativePoliciesReportSummaryResult = Shapes::StructureShape.new(name: 'GetDeclarativePoliciesReportSummaryResult')
    GetDefaultCreditSpecificationRequest = Shapes::StructureShape.new(name: 'GetDefaultCreditSpecificationRequest')
    GetDefaultCreditSpecificationResult = Shapes::StructureShape.new(name: 'GetDefaultCreditSpecificationResult')
    GetEbsDefaultKmsKeyIdRequest = Shapes::StructureShape.new(name: 'GetEbsDefaultKmsKeyIdRequest')
    GetEbsDefaultKmsKeyIdResult = Shapes::StructureShape.new(name: 'GetEbsDefaultKmsKeyIdResult')
    GetEbsEncryptionByDefaultRequest = Shapes::StructureShape.new(name: 'GetEbsEncryptionByDefaultRequest')
    GetEbsEncryptionByDefaultResult = Shapes::StructureShape.new(name: 'GetEbsEncryptionByDefaultResult')
    GetFlowLogsIntegrationTemplateRequest = Shapes::StructureShape.new(name: 'GetFlowLogsIntegrationTemplateRequest')
    GetFlowLogsIntegrationTemplateResult = Shapes::StructureShape.new(name: 'GetFlowLogsIntegrationTemplateResult')
    GetGroupsForCapacityReservationRequest = Shapes::StructureShape.new(name: 'GetGroupsForCapacityReservationRequest')
    GetGroupsForCapacityReservationRequestMaxResults = Shapes::IntegerShape.new(name: 'GetGroupsForCapacityReservationRequestMaxResults')
    GetGroupsForCapacityReservationResult = Shapes::StructureShape.new(name: 'GetGroupsForCapacityReservationResult')
    GetHostReservationPurchasePreviewRequest = Shapes::StructureShape.new(name: 'GetHostReservationPurchasePreviewRequest')
    GetHostReservationPurchasePreviewResult = Shapes::StructureShape.new(name: 'GetHostReservationPurchasePreviewResult')
    GetImageBlockPublicAccessStateRequest = Shapes::StructureShape.new(name: 'GetImageBlockPublicAccessStateRequest')
    GetImageBlockPublicAccessStateResult = Shapes::StructureShape.new(name: 'GetImageBlockPublicAccessStateResult')
    GetInstanceMetadataDefaultsRequest = Shapes::StructureShape.new(name: 'GetInstanceMetadataDefaultsRequest')
    GetInstanceMetadataDefaultsResult = Shapes::StructureShape.new(name: 'GetInstanceMetadataDefaultsResult')
    GetInstanceTpmEkPubRequest = Shapes::StructureShape.new(name: 'GetInstanceTpmEkPubRequest')
    GetInstanceTpmEkPubResult = Shapes::StructureShape.new(name: 'GetInstanceTpmEkPubResult')
    GetInstanceTypesFromInstanceRequirementsRequest = Shapes::StructureShape.new(name: 'GetInstanceTypesFromInstanceRequirementsRequest')
    GetInstanceTypesFromInstanceRequirementsResult = Shapes::StructureShape.new(name: 'GetInstanceTypesFromInstanceRequirementsResult')
    GetInstanceUefiDataRequest = Shapes::StructureShape.new(name: 'GetInstanceUefiDataRequest')
    GetInstanceUefiDataResult = Shapes::StructureShape.new(name: 'GetInstanceUefiDataResult')
    GetIpamAddressHistoryRequest = Shapes::StructureShape.new(name: 'GetIpamAddressHistoryRequest')
    GetIpamAddressHistoryResult = Shapes::StructureShape.new(name: 'GetIpamAddressHistoryResult')
    GetIpamDiscoveredAccountsRequest = Shapes::StructureShape.new(name: 'GetIpamDiscoveredAccountsRequest')
    GetIpamDiscoveredAccountsResult = Shapes::StructureShape.new(name: 'GetIpamDiscoveredAccountsResult')
    GetIpamDiscoveredPublicAddressesRequest = Shapes::StructureShape.new(name: 'GetIpamDiscoveredPublicAddressesRequest')
    GetIpamDiscoveredPublicAddressesResult = Shapes::StructureShape.new(name: 'GetIpamDiscoveredPublicAddressesResult')
    GetIpamDiscoveredResourceCidrsRequest = Shapes::StructureShape.new(name: 'GetIpamDiscoveredResourceCidrsRequest')
    GetIpamDiscoveredResourceCidrsResult = Shapes::StructureShape.new(name: 'GetIpamDiscoveredResourceCidrsResult')
    GetIpamPoolAllocationsMaxResults = Shapes::IntegerShape.new(name: 'GetIpamPoolAllocationsMaxResults')
    GetIpamPoolAllocationsRequest = Shapes::StructureShape.new(name: 'GetIpamPoolAllocationsRequest')
    GetIpamPoolAllocationsResult = Shapes::StructureShape.new(name: 'GetIpamPoolAllocationsResult')
    GetIpamPoolCidrsRequest = Shapes::StructureShape.new(name: 'GetIpamPoolCidrsRequest')
    GetIpamPoolCidrsResult = Shapes::StructureShape.new(name: 'GetIpamPoolCidrsResult')
    GetIpamResourceCidrsRequest = Shapes::StructureShape.new(name: 'GetIpamResourceCidrsRequest')
    GetIpamResourceCidrsResult = Shapes::StructureShape.new(name: 'GetIpamResourceCidrsResult')
    GetLaunchTemplateDataRequest = Shapes::StructureShape.new(name: 'GetLaunchTemplateDataRequest')
    GetLaunchTemplateDataResult = Shapes::StructureShape.new(name: 'GetLaunchTemplateDataResult')
    GetManagedPrefixListAssociationsMaxResults = Shapes::IntegerShape.new(name: 'GetManagedPrefixListAssociationsMaxResults')
    GetManagedPrefixListAssociationsRequest = Shapes::StructureShape.new(name: 'GetManagedPrefixListAssociationsRequest')
    GetManagedPrefixListAssociationsResult = Shapes::StructureShape.new(name: 'GetManagedPrefixListAssociationsResult')
    GetManagedPrefixListEntriesRequest = Shapes::StructureShape.new(name: 'GetManagedPrefixListEntriesRequest')
    GetManagedPrefixListEntriesResult = Shapes::StructureShape.new(name: 'GetManagedPrefixListEntriesResult')
    GetNetworkInsightsAccessScopeAnalysisFindingsMaxResults = Shapes::IntegerShape.new(name: 'GetNetworkInsightsAccessScopeAnalysisFindingsMaxResults')
    GetNetworkInsightsAccessScopeAnalysisFindingsRequest = Shapes::StructureShape.new(name: 'GetNetworkInsightsAccessScopeAnalysisFindingsRequest')
    GetNetworkInsightsAccessScopeAnalysisFindingsResult = Shapes::StructureShape.new(name: 'GetNetworkInsightsAccessScopeAnalysisFindingsResult')
    GetNetworkInsightsAccessScopeContentRequest = Shapes::StructureShape.new(name: 'GetNetworkInsightsAccessScopeContentRequest')
    GetNetworkInsightsAccessScopeContentResult = Shapes::StructureShape.new(name: 'GetNetworkInsightsAccessScopeContentResult')
    GetPasswordDataRequest = Shapes::StructureShape.new(name: 'GetPasswordDataRequest')
    GetPasswordDataResult = Shapes::StructureShape.new(name: 'GetPasswordDataResult')
    GetReservedInstancesExchangeQuoteRequest = Shapes::StructureShape.new(name: 'GetReservedInstancesExchangeQuoteRequest')
    GetReservedInstancesExchangeQuoteResult = Shapes::StructureShape.new(name: 'GetReservedInstancesExchangeQuoteResult')
    GetSecurityGroupsForVpcRequest = Shapes::StructureShape.new(name: 'GetSecurityGroupsForVpcRequest')
    GetSecurityGroupsForVpcRequestMaxResults = Shapes::IntegerShape.new(name: 'GetSecurityGroupsForVpcRequestMaxResults')
    GetSecurityGroupsForVpcResult = Shapes::StructureShape.new(name: 'GetSecurityGroupsForVpcResult')
    GetSerialConsoleAccessStatusRequest = Shapes::StructureShape.new(name: 'GetSerialConsoleAccessStatusRequest')
    GetSerialConsoleAccessStatusResult = Shapes::StructureShape.new(name: 'GetSerialConsoleAccessStatusResult')
    GetSnapshotBlockPublicAccessStateRequest = Shapes::StructureShape.new(name: 'GetSnapshotBlockPublicAccessStateRequest')
    GetSnapshotBlockPublicAccessStateResult = Shapes::StructureShape.new(name: 'GetSnapshotBlockPublicAccessStateResult')
    GetSpotPlacementScoresRequest = Shapes::StructureShape.new(name: 'GetSpotPlacementScoresRequest')
    GetSpotPlacementScoresResult = Shapes::StructureShape.new(name: 'GetSpotPlacementScoresResult')
    GetSubnetCidrReservationsMaxResults = Shapes::IntegerShape.new(name: 'GetSubnetCidrReservationsMaxResults')
    GetSubnetCidrReservationsRequest = Shapes::StructureShape.new(name: 'GetSubnetCidrReservationsRequest')
    GetSubnetCidrReservationsResult = Shapes::StructureShape.new(name: 'GetSubnetCidrReservationsResult')
    GetTransitGatewayAttachmentPropagationsRequest = Shapes::StructureShape.new(name: 'GetTransitGatewayAttachmentPropagationsRequest')
    GetTransitGatewayAttachmentPropagationsResult = Shapes::StructureShape.new(name: 'GetTransitGatewayAttachmentPropagationsResult')
    GetTransitGatewayMulticastDomainAssociationsRequest = Shapes::StructureShape.new(name: 'GetTransitGatewayMulticastDomainAssociationsRequest')
    GetTransitGatewayMulticastDomainAssociationsResult = Shapes::StructureShape.new(name: 'GetTransitGatewayMulticastDomainAssociationsResult')
    GetTransitGatewayPolicyTableAssociationsRequest = Shapes::StructureShape.new(name: 'GetTransitGatewayPolicyTableAssociationsRequest')
    GetTransitGatewayPolicyTableAssociationsResult = Shapes::StructureShape.new(name: 'GetTransitGatewayPolicyTableAssociationsResult')
    GetTransitGatewayPolicyTableEntriesRequest = Shapes::StructureShape.new(name: 'GetTransitGatewayPolicyTableEntriesRequest')
    GetTransitGatewayPolicyTableEntriesResult = Shapes::StructureShape.new(name: 'GetTransitGatewayPolicyTableEntriesResult')
    GetTransitGatewayPrefixListReferencesRequest = Shapes::StructureShape.new(name: 'GetTransitGatewayPrefixListReferencesRequest')
    GetTransitGatewayPrefixListReferencesResult = Shapes::StructureShape.new(name: 'GetTransitGatewayPrefixListReferencesResult')
    GetTransitGatewayRouteTableAssociationsRequest = Shapes::StructureShape.new(name: 'GetTransitGatewayRouteTableAssociationsRequest')
    GetTransitGatewayRouteTableAssociationsResult = Shapes::StructureShape.new(name: 'GetTransitGatewayRouteTableAssociationsResult')
    GetTransitGatewayRouteTablePropagationsRequest = Shapes::StructureShape.new(name: 'GetTransitGatewayRouteTablePropagationsRequest')
    GetTransitGatewayRouteTablePropagationsResult = Shapes::StructureShape.new(name: 'GetTransitGatewayRouteTablePropagationsResult')
    GetVerifiedAccessEndpointPolicyRequest = Shapes::StructureShape.new(name: 'GetVerifiedAccessEndpointPolicyRequest')
    GetVerifiedAccessEndpointPolicyResult = Shapes::StructureShape.new(name: 'GetVerifiedAccessEndpointPolicyResult')
    GetVerifiedAccessEndpointTargetsMaxResults = Shapes::IntegerShape.new(name: 'GetVerifiedAccessEndpointTargetsMaxResults')
    GetVerifiedAccessEndpointTargetsRequest = Shapes::StructureShape.new(name: 'GetVerifiedAccessEndpointTargetsRequest')
    GetVerifiedAccessEndpointTargetsResult = Shapes::StructureShape.new(name: 'GetVerifiedAccessEndpointTargetsResult')
    GetVerifiedAccessGroupPolicyRequest = Shapes::StructureShape.new(name: 'GetVerifiedAccessGroupPolicyRequest')
    GetVerifiedAccessGroupPolicyResult = Shapes::StructureShape.new(name: 'GetVerifiedAccessGroupPolicyResult')
    GetVpnConnectionDeviceSampleConfigurationRequest = Shapes::StructureShape.new(name: 'GetVpnConnectionDeviceSampleConfigurationRequest')
    GetVpnConnectionDeviceSampleConfigurationResult = Shapes::StructureShape.new(name: 'GetVpnConnectionDeviceSampleConfigurationResult')
    GetVpnConnectionDeviceTypesRequest = Shapes::StructureShape.new(name: 'GetVpnConnectionDeviceTypesRequest')
    GetVpnConnectionDeviceTypesResult = Shapes::StructureShape.new(name: 'GetVpnConnectionDeviceTypesResult')
    GetVpnTunnelReplacementStatusRequest = Shapes::StructureShape.new(name: 'GetVpnTunnelReplacementStatusRequest')
    GetVpnTunnelReplacementStatusResult = Shapes::StructureShape.new(name: 'GetVpnTunnelReplacementStatusResult')
    GpuDeviceCount = Shapes::IntegerShape.new(name: 'GpuDeviceCount')
    GpuDeviceInfo = Shapes::StructureShape.new(name: 'GpuDeviceInfo')
    GpuDeviceInfoList = Shapes::ListShape.new(name: 'GpuDeviceInfoList')
    GpuDeviceManufacturerName = Shapes::StringShape.new(name: 'GpuDeviceManufacturerName')
    GpuDeviceMemoryInfo = Shapes::StructureShape.new(name: 'GpuDeviceMemoryInfo')
    GpuDeviceMemorySize = Shapes::IntegerShape.new(name: 'GpuDeviceMemorySize')
    GpuDeviceName = Shapes::StringShape.new(name: 'GpuDeviceName')
    GpuInfo = Shapes::StructureShape.new(name: 'GpuInfo')
    GroupIdStringList = Shapes::ListShape.new(name: 'GroupIdStringList')
    GroupIdentifier = Shapes::StructureShape.new(name: 'GroupIdentifier')
    GroupIdentifierList = Shapes::ListShape.new(name: 'GroupIdentifierList')
    GroupIdentifierSet = Shapes::ListShape.new(name: 'GroupIdentifierSet')
    GroupIds = Shapes::ListShape.new(name: 'GroupIds')
    GroupNameStringList = Shapes::ListShape.new(name: 'GroupNameStringList')
    HibernationFlag = Shapes::BooleanShape.new(name: 'HibernationFlag')
    HibernationOptions = Shapes::StructureShape.new(name: 'HibernationOptions')
    HibernationOptionsRequest = Shapes::StructureShape.new(name: 'HibernationOptionsRequest')
    HistoryRecord = Shapes::StructureShape.new(name: 'HistoryRecord')
    HistoryRecordEntry = Shapes::StructureShape.new(name: 'HistoryRecordEntry')
    HistoryRecordSet = Shapes::ListShape.new(name: 'HistoryRecordSet')
    HistoryRecords = Shapes::ListShape.new(name: 'HistoryRecords')
    Host = Shapes::StructureShape.new(name: 'Host')
    HostInstance = Shapes::StructureShape.new(name: 'HostInstance')
    HostInstanceList = Shapes::ListShape.new(name: 'HostInstanceList')
    HostList = Shapes::ListShape.new(name: 'HostList')
    HostMaintenance = Shapes::StringShape.new(name: 'HostMaintenance')
    HostOffering = Shapes::StructureShape.new(name: 'HostOffering')
    HostOfferingSet = Shapes::ListShape.new(name: 'HostOfferingSet')
    HostProperties = Shapes::StructureShape.new(name: 'HostProperties')
    HostRecovery = Shapes::StringShape.new(name: 'HostRecovery')
    HostReservation = Shapes::StructureShape.new(name: 'HostReservation')
    HostReservationId = Shapes::StringShape.new(name: 'HostReservationId')
    HostReservationIdSet = Shapes::ListShape.new(name: 'HostReservationIdSet')
    HostReservationSet = Shapes::ListShape.new(name: 'HostReservationSet')
    HostTenancy = Shapes::StringShape.new(name: 'HostTenancy')
    HostnameType = Shapes::StringShape.new(name: 'HostnameType')
    Hour = Shapes::IntegerShape.new(name: 'Hour')
    HttpTokensState = Shapes::StringShape.new(name: 'HttpTokensState')
    HypervisorType = Shapes::StringShape.new(name: 'HypervisorType')
    IKEVersionsList = Shapes::ListShape.new(name: 'IKEVersionsList')
    IKEVersionsListValue = Shapes::StructureShape.new(name: 'IKEVersionsListValue')
    IKEVersionsRequestList = Shapes::ListShape.new(name: 'IKEVersionsRequestList')
    IKEVersionsRequestListValue = Shapes::StructureShape.new(name: 'IKEVersionsRequestListValue')
    IamInstanceProfile = Shapes::StructureShape.new(name: 'IamInstanceProfile')
    IamInstanceProfileAssociation = Shapes::StructureShape.new(name: 'IamInstanceProfileAssociation')
    IamInstanceProfileAssociationId = Shapes::StringShape.new(name: 'IamInstanceProfileAssociationId')
    IamInstanceProfileAssociationSet = Shapes::ListShape.new(name: 'IamInstanceProfileAssociationSet')
    IamInstanceProfileAssociationState = Shapes::StringShape.new(name: 'IamInstanceProfileAssociationState')
    IamInstanceProfileSpecification = Shapes::StructureShape.new(name: 'IamInstanceProfileSpecification')
    IcmpTypeCode = Shapes::StructureShape.new(name: 'IcmpTypeCode')
    IdFormat = Shapes::StructureShape.new(name: 'IdFormat')
    IdFormatList = Shapes::ListShape.new(name: 'IdFormatList')
    Igmpv2SupportValue = Shapes::StringShape.new(name: 'Igmpv2SupportValue')
    Image = Shapes::StructureShape.new(name: 'Image')
    ImageAttribute = Shapes::StructureShape.new(name: 'ImageAttribute')
    ImageAttributeName = Shapes::StringShape.new(name: 'ImageAttributeName')
    ImageBlockPublicAccessDisabledState = Shapes::StringShape.new(name: 'ImageBlockPublicAccessDisabledState')
    ImageBlockPublicAccessEnabledState = Shapes::StringShape.new(name: 'ImageBlockPublicAccessEnabledState')
    ImageCriterion = Shapes::StructureShape.new(name: 'ImageCriterion')
    ImageCriterionList = Shapes::ListShape.new(name: 'ImageCriterionList')
    ImageCriterionRequest = Shapes::StructureShape.new(name: 'ImageCriterionRequest')
    ImageCriterionRequestList = Shapes::ListShape.new(name: 'ImageCriterionRequestList')
    ImageDiskContainer = Shapes::StructureShape.new(name: 'ImageDiskContainer')
    ImageDiskContainerList = Shapes::ListShape.new(name: 'ImageDiskContainerList')
    ImageId = Shapes::StringShape.new(name: 'ImageId')
    ImageIdList = Shapes::ListShape.new(name: 'ImageIdList')
    ImageIdStringList = Shapes::ListShape.new(name: 'ImageIdStringList')
    ImageList = Shapes::ListShape.new(name: 'ImageList')
    ImageMetadata = Shapes::StructureShape.new(name: 'ImageMetadata')
    ImageProvider = Shapes::StringShape.new(name: 'ImageProvider')
    ImageProviderList = Shapes::ListShape.new(name: 'ImageProviderList')
    ImageProviderRequest = Shapes::StringShape.new(name: 'ImageProviderRequest')
    ImageProviderRequestList = Shapes::ListShape.new(name: 'ImageProviderRequestList')
    ImageRecycleBinInfo = Shapes::StructureShape.new(name: 'ImageRecycleBinInfo')
    ImageRecycleBinInfoList = Shapes::ListShape.new(name: 'ImageRecycleBinInfoList')
    ImageState = Shapes::StringShape.new(name: 'ImageState')
    ImageTypeValues = Shapes::StringShape.new(name: 'ImageTypeValues')
    ImdsSupportValues = Shapes::StringShape.new(name: 'ImdsSupportValues')
    ImportClientVpnClientCertificateRevocationListRequest = Shapes::StructureShape.new(name: 'ImportClientVpnClientCertificateRevocationListRequest')
    ImportClientVpnClientCertificateRevocationListResult = Shapes::StructureShape.new(name: 'ImportClientVpnClientCertificateRevocationListResult')
    ImportImageLicenseConfigurationRequest = Shapes::StructureShape.new(name: 'ImportImageLicenseConfigurationRequest')
    ImportImageLicenseConfigurationResponse = Shapes::StructureShape.new(name: 'ImportImageLicenseConfigurationResponse')
    ImportImageLicenseSpecificationListRequest = Shapes::ListShape.new(name: 'ImportImageLicenseSpecificationListRequest')
    ImportImageLicenseSpecificationListResponse = Shapes::ListShape.new(name: 'ImportImageLicenseSpecificationListResponse')
    ImportImageRequest = Shapes::StructureShape.new(name: 'ImportImageRequest')
    ImportImageResult = Shapes::StructureShape.new(name: 'ImportImageResult')
    ImportImageTask = Shapes::StructureShape.new(name: 'ImportImageTask')
    ImportImageTaskId = Shapes::StringShape.new(name: 'ImportImageTaskId')
    ImportImageTaskList = Shapes::ListShape.new(name: 'ImportImageTaskList')
    ImportInstanceLaunchSpecification = Shapes::StructureShape.new(name: 'ImportInstanceLaunchSpecification')
    ImportInstanceRequest = Shapes::StructureShape.new(name: 'ImportInstanceRequest')
    ImportInstanceResult = Shapes::StructureShape.new(name: 'ImportInstanceResult')
    ImportInstanceTaskDetails = Shapes::StructureShape.new(name: 'ImportInstanceTaskDetails')
    ImportInstanceVolumeDetailItem = Shapes::StructureShape.new(name: 'ImportInstanceVolumeDetailItem')
    ImportInstanceVolumeDetailSet = Shapes::ListShape.new(name: 'ImportInstanceVolumeDetailSet')
    ImportKeyPairRequest = Shapes::StructureShape.new(name: 'ImportKeyPairRequest')
    ImportKeyPairResult = Shapes::StructureShape.new(name: 'ImportKeyPairResult')
    ImportManifestUrl = Shapes::StringShape.new(name: 'ImportManifestUrl')
    ImportSnapshotRequest = Shapes::StructureShape.new(name: 'ImportSnapshotRequest')
    ImportSnapshotResult = Shapes::StructureShape.new(name: 'ImportSnapshotResult')
    ImportSnapshotTask = Shapes::StructureShape.new(name: 'ImportSnapshotTask')
    ImportSnapshotTaskId = Shapes::StringShape.new(name: 'ImportSnapshotTaskId')
    ImportSnapshotTaskIdList = Shapes::ListShape.new(name: 'ImportSnapshotTaskIdList')
    ImportSnapshotTaskList = Shapes::ListShape.new(name: 'ImportSnapshotTaskList')
    ImportTaskId = Shapes::StringShape.new(name: 'ImportTaskId')
    ImportTaskIdList = Shapes::ListShape.new(name: 'ImportTaskIdList')
    ImportVolumeRequest = Shapes::StructureShape.new(name: 'ImportVolumeRequest')
    ImportVolumeResult = Shapes::StructureShape.new(name: 'ImportVolumeResult')
    ImportVolumeTaskDetails = Shapes::StructureShape.new(name: 'ImportVolumeTaskDetails')
    InferenceAcceleratorInfo = Shapes::StructureShape.new(name: 'InferenceAcceleratorInfo')
    InferenceDeviceCount = Shapes::IntegerShape.new(name: 'InferenceDeviceCount')
    InferenceDeviceInfo = Shapes::StructureShape.new(name: 'InferenceDeviceInfo')
    InferenceDeviceInfoList = Shapes::ListShape.new(name: 'InferenceDeviceInfoList', locationName: "item")
    InferenceDeviceManufacturerName = Shapes::StringShape.new(name: 'InferenceDeviceManufacturerName')
    InferenceDeviceMemoryInfo = Shapes::StructureShape.new(name: 'InferenceDeviceMemoryInfo')
    InferenceDeviceMemorySize = Shapes::IntegerShape.new(name: 'InferenceDeviceMemorySize')
    InferenceDeviceName = Shapes::StringShape.new(name: 'InferenceDeviceName')
    InsideCidrBlocksStringList = Shapes::ListShape.new(name: 'InsideCidrBlocksStringList')
    Instance = Shapes::StructureShape.new(name: 'Instance')
    InstanceAttachmentEnaSrdSpecification = Shapes::StructureShape.new(name: 'InstanceAttachmentEnaSrdSpecification')
    InstanceAttachmentEnaSrdUdpSpecification = Shapes::StructureShape.new(name: 'InstanceAttachmentEnaSrdUdpSpecification')
    InstanceAttribute = Shapes::StructureShape.new(name: 'InstanceAttribute')
    InstanceAttributeName = Shapes::StringShape.new(name: 'InstanceAttributeName')
    InstanceAutoRecoveryState = Shapes::StringShape.new(name: 'InstanceAutoRecoveryState')
    InstanceBandwidthWeighting = Shapes::StringShape.new(name: 'InstanceBandwidthWeighting')
    InstanceBlockDeviceMapping = Shapes::StructureShape.new(name: 'InstanceBlockDeviceMapping')
    InstanceBlockDeviceMappingList = Shapes::ListShape.new(name: 'InstanceBlockDeviceMappingList')
    InstanceBlockDeviceMappingSpecification = Shapes::StructureShape.new(name: 'InstanceBlockDeviceMappingSpecification')
    InstanceBlockDeviceMappingSpecificationList = Shapes::ListShape.new(name: 'InstanceBlockDeviceMappingSpecificationList')
    InstanceBootModeValues = Shapes::StringShape.new(name: 'InstanceBootModeValues')
    InstanceCapacity = Shapes::StructureShape.new(name: 'InstanceCapacity')
    InstanceConnectEndpointId = Shapes::StringShape.new(name: 'InstanceConnectEndpointId')
    InstanceConnectEndpointMaxResults = Shapes::IntegerShape.new(name: 'InstanceConnectEndpointMaxResults')
    InstanceConnectEndpointSet = Shapes::ListShape.new(name: 'InstanceConnectEndpointSet')
    InstanceCount = Shapes::StructureShape.new(name: 'InstanceCount')
    InstanceCountList = Shapes::ListShape.new(name: 'InstanceCountList')
    InstanceCreditSpecification = Shapes::StructureShape.new(name: 'InstanceCreditSpecification')
    InstanceCreditSpecificationList = Shapes::ListShape.new(name: 'InstanceCreditSpecificationList')
    InstanceCreditSpecificationListRequest = Shapes::ListShape.new(name: 'InstanceCreditSpecificationListRequest')
    InstanceCreditSpecificationRequest = Shapes::StructureShape.new(name: 'InstanceCreditSpecificationRequest')
    InstanceEventId = Shapes::StringShape.new(name: 'InstanceEventId')
    InstanceEventWindow = Shapes::StructureShape.new(name: 'InstanceEventWindow')
    InstanceEventWindowAssociationRequest = Shapes::StructureShape.new(name: 'InstanceEventWindowAssociationRequest')
    InstanceEventWindowAssociationTarget = Shapes::StructureShape.new(name: 'InstanceEventWindowAssociationTarget')
    InstanceEventWindowCronExpression = Shapes::StringShape.new(name: 'InstanceEventWindowCronExpression')
    InstanceEventWindowDisassociationRequest = Shapes::StructureShape.new(name: 'InstanceEventWindowDisassociationRequest')
    InstanceEventWindowId = Shapes::StringShape.new(name: 'InstanceEventWindowId')
    InstanceEventWindowIdSet = Shapes::ListShape.new(name: 'InstanceEventWindowIdSet')
    InstanceEventWindowSet = Shapes::ListShape.new(name: 'InstanceEventWindowSet')
    InstanceEventWindowState = Shapes::StringShape.new(name: 'InstanceEventWindowState')
    InstanceEventWindowStateChange = Shapes::StructureShape.new(name: 'InstanceEventWindowStateChange')
    InstanceEventWindowTimeRange = Shapes::StructureShape.new(name: 'InstanceEventWindowTimeRange')
    InstanceEventWindowTimeRangeList = Shapes::ListShape.new(name: 'InstanceEventWindowTimeRangeList')
    InstanceEventWindowTimeRangeRequest = Shapes::StructureShape.new(name: 'InstanceEventWindowTimeRangeRequest')
    InstanceEventWindowTimeRangeRequestSet = Shapes::ListShape.new(name: 'InstanceEventWindowTimeRangeRequestSet')
    InstanceExportDetails = Shapes::StructureShape.new(name: 'InstanceExportDetails')
    InstanceFamilyCreditSpecification = Shapes::StructureShape.new(name: 'InstanceFamilyCreditSpecification')
    InstanceGeneration = Shapes::StringShape.new(name: 'InstanceGeneration')
    InstanceGenerationSet = Shapes::ListShape.new(name: 'InstanceGenerationSet')
    InstanceHealthStatus = Shapes::StringShape.new(name: 'InstanceHealthStatus')
    InstanceId = Shapes::StringShape.new(name: 'InstanceId')
    InstanceIdForResolver = Shapes::StringShape.new(name: 'InstanceIdForResolver')
    InstanceIdList = Shapes::ListShape.new(name: 'InstanceIdList')
    InstanceIdSet = Shapes::ListShape.new(name: 'InstanceIdSet')
    InstanceIdStringList = Shapes::ListShape.new(name: 'InstanceIdStringList')
    InstanceIdWithVolumeResolver = Shapes::StringShape.new(name: 'InstanceIdWithVolumeResolver')
    InstanceIdsSet = Shapes::ListShape.new(name: 'InstanceIdsSet')
    InstanceImageMetadata = Shapes::StructureShape.new(name: 'InstanceImageMetadata')
    InstanceImageMetadataList = Shapes::ListShape.new(name: 'InstanceImageMetadataList')
    InstanceInterruptionBehavior = Shapes::StringShape.new(name: 'InstanceInterruptionBehavior')
    InstanceIpv4Prefix = Shapes::StructureShape.new(name: 'InstanceIpv4Prefix')
    InstanceIpv4PrefixList = Shapes::ListShape.new(name: 'InstanceIpv4PrefixList')
    InstanceIpv6Address = Shapes::StructureShape.new(name: 'InstanceIpv6Address')
    InstanceIpv6AddressList = Shapes::ListShape.new(name: 'InstanceIpv6AddressList')
    InstanceIpv6AddressListRequest = Shapes::ListShape.new(name: 'InstanceIpv6AddressListRequest')
    InstanceIpv6AddressRequest = Shapes::StructureShape.new(name: 'InstanceIpv6AddressRequest')
    InstanceIpv6Prefix = Shapes::StructureShape.new(name: 'InstanceIpv6Prefix')
    InstanceIpv6PrefixList = Shapes::ListShape.new(name: 'InstanceIpv6PrefixList')
    InstanceLifecycle = Shapes::StringShape.new(name: 'InstanceLifecycle')
    InstanceLifecycleType = Shapes::StringShape.new(name: 'InstanceLifecycleType')
    InstanceList = Shapes::ListShape.new(name: 'InstanceList')
    InstanceMaintenanceOptions = Shapes::StructureShape.new(name: 'InstanceMaintenanceOptions')
    InstanceMaintenanceOptionsRequest = Shapes::StructureShape.new(name: 'InstanceMaintenanceOptionsRequest')
    InstanceMarketOptionsRequest = Shapes::StructureShape.new(name: 'InstanceMarketOptionsRequest')
    InstanceMatchCriteria = Shapes::StringShape.new(name: 'InstanceMatchCriteria')
    InstanceMetadataDefaultsResponse = Shapes::StructureShape.new(name: 'InstanceMetadataDefaultsResponse')
    InstanceMetadataEndpointState = Shapes::StringShape.new(name: 'InstanceMetadataEndpointState')
    InstanceMetadataOptionsRequest = Shapes::StructureShape.new(name: 'InstanceMetadataOptionsRequest')
    InstanceMetadataOptionsResponse = Shapes::StructureShape.new(name: 'InstanceMetadataOptionsResponse')
    InstanceMetadataOptionsState = Shapes::StringShape.new(name: 'InstanceMetadataOptionsState')
    InstanceMetadataProtocolState = Shapes::StringShape.new(name: 'InstanceMetadataProtocolState')
    InstanceMetadataTagsState = Shapes::StringShape.new(name: 'InstanceMetadataTagsState')
    InstanceMonitoring = Shapes::StructureShape.new(name: 'InstanceMonitoring')
    InstanceMonitoringList = Shapes::ListShape.new(name: 'InstanceMonitoringList')
    InstanceNetworkInterface = Shapes::StructureShape.new(name: 'InstanceNetworkInterface')
    InstanceNetworkInterfaceAssociation = Shapes::StructureShape.new(name: 'InstanceNetworkInterfaceAssociation')
    InstanceNetworkInterfaceAttachment = Shapes::StructureShape.new(name: 'InstanceNetworkInterfaceAttachment')
    InstanceNetworkInterfaceList = Shapes::ListShape.new(name: 'InstanceNetworkInterfaceList')
    InstanceNetworkInterfaceSpecification = Shapes::StructureShape.new(name: 'InstanceNetworkInterfaceSpecification')
    InstanceNetworkInterfaceSpecificationList = Shapes::ListShape.new(name: 'InstanceNetworkInterfaceSpecificationList')
    InstanceNetworkPerformanceOptions = Shapes::StructureShape.new(name: 'InstanceNetworkPerformanceOptions')
    InstanceNetworkPerformanceOptionsRequest = Shapes::StructureShape.new(name: 'InstanceNetworkPerformanceOptionsRequest')
    InstancePrivateIpAddress = Shapes::StructureShape.new(name: 'InstancePrivateIpAddress')
    InstancePrivateIpAddressList = Shapes::ListShape.new(name: 'InstancePrivateIpAddressList')
    InstanceRequirements = Shapes::StructureShape.new(name: 'InstanceRequirements')
    InstanceRequirementsRequest = Shapes::StructureShape.new(name: 'InstanceRequirementsRequest')
    InstanceRequirementsWithMetadataRequest = Shapes::StructureShape.new(name: 'InstanceRequirementsWithMetadataRequest')
    InstanceSet = Shapes::ListShape.new(name: 'InstanceSet')
    InstanceSpecification = Shapes::StructureShape.new(name: 'InstanceSpecification')
    InstanceState = Shapes::StructureShape.new(name: 'InstanceState')
    InstanceStateChange = Shapes::StructureShape.new(name: 'InstanceStateChange')
    InstanceStateChangeList = Shapes::ListShape.new(name: 'InstanceStateChangeList')
    InstanceStateName = Shapes::StringShape.new(name: 'InstanceStateName')
    InstanceStatus = Shapes::StructureShape.new(name: 'InstanceStatus')
    InstanceStatusDetails = Shapes::StructureShape.new(name: 'InstanceStatusDetails')
    InstanceStatusDetailsList = Shapes::ListShape.new(name: 'InstanceStatusDetailsList')
    InstanceStatusEvent = Shapes::StructureShape.new(name: 'InstanceStatusEvent')
    InstanceStatusEventList = Shapes::ListShape.new(name: 'InstanceStatusEventList')
    InstanceStatusList = Shapes::ListShape.new(name: 'InstanceStatusList')
    InstanceStatusSummary = Shapes::StructureShape.new(name: 'InstanceStatusSummary')
    InstanceStorageEncryptionSupport = Shapes::StringShape.new(name: 'InstanceStorageEncryptionSupport')
    InstanceStorageFlag = Shapes::BooleanShape.new(name: 'InstanceStorageFlag')
    InstanceStorageInfo = Shapes::StructureShape.new(name: 'InstanceStorageInfo')
    InstanceTagKeySet = Shapes::ListShape.new(name: 'InstanceTagKeySet')
    InstanceTagNotificationAttribute = Shapes::StructureShape.new(name: 'InstanceTagNotificationAttribute')
    InstanceTopology = Shapes::StructureShape.new(name: 'InstanceTopology')
    InstanceType = Shapes::StringShape.new(name: 'InstanceType')
    InstanceTypeHypervisor = Shapes::StringShape.new(name: 'InstanceTypeHypervisor')
    InstanceTypeInfo = Shapes::StructureShape.new(name: 'InstanceTypeInfo')
    InstanceTypeInfoFromInstanceRequirements = Shapes::StructureShape.new(name: 'InstanceTypeInfoFromInstanceRequirements')
    InstanceTypeInfoFromInstanceRequirementsSet = Shapes::ListShape.new(name: 'InstanceTypeInfoFromInstanceRequirementsSet')
    InstanceTypeInfoList = Shapes::ListShape.new(name: 'InstanceTypeInfoList')
    InstanceTypeList = Shapes::ListShape.new(name: 'InstanceTypeList')
    InstanceTypeOffering = Shapes::StructureShape.new(name: 'InstanceTypeOffering')
    InstanceTypeOfferingsList = Shapes::ListShape.new(name: 'InstanceTypeOfferingsList')
    InstanceTypes = Shapes::ListShape.new(name: 'InstanceTypes')
    InstanceTypesList = Shapes::ListShape.new(name: 'InstanceTypesList')
    InstanceUsage = Shapes::StructureShape.new(name: 'InstanceUsage')
    InstanceUsageSet = Shapes::ListShape.new(name: 'InstanceUsageSet')
    Integer = Shapes::IntegerShape.new(name: 'Integer')
    IntegerWithConstraints = Shapes::IntegerShape.new(name: 'IntegerWithConstraints')
    IntegrateServices = Shapes::StructureShape.new(name: 'IntegrateServices')
    InterfacePermissionType = Shapes::StringShape.new(name: 'InterfacePermissionType')
    InterfaceProtocolType = Shapes::StringShape.new(name: 'InterfaceProtocolType')
    InternetGateway = Shapes::StructureShape.new(name: 'InternetGateway')
    InternetGatewayAttachment = Shapes::StructureShape.new(name: 'InternetGatewayAttachment')
    InternetGatewayAttachmentList = Shapes::ListShape.new(name: 'InternetGatewayAttachmentList')
    InternetGatewayBlockMode = Shapes::StringShape.new(name: 'InternetGatewayBlockMode')
    InternetGatewayExclusionMode = Shapes::StringShape.new(name: 'InternetGatewayExclusionMode')
    InternetGatewayId = Shapes::StringShape.new(name: 'InternetGatewayId')
    InternetGatewayIdList = Shapes::ListShape.new(name: 'InternetGatewayIdList')
    InternetGatewayList = Shapes::ListShape.new(name: 'InternetGatewayList')
    IpAddress = Shapes::StringShape.new(name: 'IpAddress')
    IpAddressList = Shapes::ListShape.new(name: 'IpAddressList')
    IpAddressType = Shapes::StringShape.new(name: 'IpAddressType')
    IpList = Shapes::ListShape.new(name: 'IpList')
    IpPermission = Shapes::StructureShape.new(name: 'IpPermission')
    IpPermissionList = Shapes::ListShape.new(name: 'IpPermissionList')
    IpPrefixList = Shapes::ListShape.new(name: 'IpPrefixList')
    IpRange = Shapes::StructureShape.new(name: 'IpRange')
    IpRangeList = Shapes::ListShape.new(name: 'IpRangeList')
    IpRanges = Shapes::ListShape.new(name: 'IpRanges')
    IpSource = Shapes::StringShape.new(name: 'IpSource')
    Ipam = Shapes::StructureShape.new(name: 'Ipam')
    IpamAddressHistoryMaxResults = Shapes::IntegerShape.new(name: 'IpamAddressHistoryMaxResults')
    IpamAddressHistoryRecord = Shapes::StructureShape.new(name: 'IpamAddressHistoryRecord')
    IpamAddressHistoryRecordSet = Shapes::ListShape.new(name: 'IpamAddressHistoryRecordSet')
    IpamAddressHistoryResourceType = Shapes::StringShape.new(name: 'IpamAddressHistoryResourceType')
    IpamAssociatedResourceDiscoveryStatus = Shapes::StringShape.new(name: 'IpamAssociatedResourceDiscoveryStatus')
    IpamCidrAuthorizationContext = Shapes::StructureShape.new(name: 'IpamCidrAuthorizationContext')
    IpamComplianceStatus = Shapes::StringShape.new(name: 'IpamComplianceStatus')
    IpamDiscoveredAccount = Shapes::StructureShape.new(name: 'IpamDiscoveredAccount')
    IpamDiscoveredAccountSet = Shapes::ListShape.new(name: 'IpamDiscoveredAccountSet')
    IpamDiscoveredPublicAddress = Shapes::StructureShape.new(name: 'IpamDiscoveredPublicAddress')
    IpamDiscoveredPublicAddressSet = Shapes::ListShape.new(name: 'IpamDiscoveredPublicAddressSet')
    IpamDiscoveredResourceCidr = Shapes::StructureShape.new(name: 'IpamDiscoveredResourceCidr')
    IpamDiscoveredResourceCidrSet = Shapes::ListShape.new(name: 'IpamDiscoveredResourceCidrSet')
    IpamDiscoveryFailureCode = Shapes::StringShape.new(name: 'IpamDiscoveryFailureCode')
    IpamDiscoveryFailureReason = Shapes::StructureShape.new(name: 'IpamDiscoveryFailureReason')
    IpamExternalResourceVerificationToken = Shapes::StructureShape.new(name: 'IpamExternalResourceVerificationToken')
    IpamExternalResourceVerificationTokenId = Shapes::StringShape.new(name: 'IpamExternalResourceVerificationTokenId')
    IpamExternalResourceVerificationTokenSet = Shapes::ListShape.new(name: 'IpamExternalResourceVerificationTokenSet')
    IpamExternalResourceVerificationTokenState = Shapes::StringShape.new(name: 'IpamExternalResourceVerificationTokenState')
    IpamId = Shapes::StringShape.new(name: 'IpamId')
    IpamManagementState = Shapes::StringShape.new(name: 'IpamManagementState')
    IpamMaxResults = Shapes::IntegerShape.new(name: 'IpamMaxResults')
    IpamNetmaskLength = Shapes::IntegerShape.new(name: 'IpamNetmaskLength')
    IpamNetworkInterfaceAttachmentStatus = Shapes::StringShape.new(name: 'IpamNetworkInterfaceAttachmentStatus')
    IpamOperatingRegion = Shapes::StructureShape.new(name: 'IpamOperatingRegion')
    IpamOperatingRegionSet = Shapes::ListShape.new(name: 'IpamOperatingRegionSet')
    IpamOrganizationalUnitExclusion = Shapes::StructureShape.new(name: 'IpamOrganizationalUnitExclusion')
    IpamOrganizationalUnitExclusionSet = Shapes::ListShape.new(name: 'IpamOrganizationalUnitExclusionSet')
    IpamOverlapStatus = Shapes::StringShape.new(name: 'IpamOverlapStatus')
    IpamPool = Shapes::StructureShape.new(name: 'IpamPool')
    IpamPoolAllocation = Shapes::StructureShape.new(name: 'IpamPoolAllocation')
    IpamPoolAllocationAllowedCidrs = Shapes::ListShape.new(name: 'IpamPoolAllocationAllowedCidrs')
    IpamPoolAllocationDisallowedCidrs = Shapes::ListShape.new(name: 'IpamPoolAllocationDisallowedCidrs')
    IpamPoolAllocationId = Shapes::StringShape.new(name: 'IpamPoolAllocationId')
    IpamPoolAllocationResourceType = Shapes::StringShape.new(name: 'IpamPoolAllocationResourceType')
    IpamPoolAllocationSet = Shapes::ListShape.new(name: 'IpamPoolAllocationSet')
    IpamPoolAwsService = Shapes::StringShape.new(name: 'IpamPoolAwsService')
    IpamPoolCidr = Shapes::StructureShape.new(name: 'IpamPoolCidr')
    IpamPoolCidrFailureCode = Shapes::StringShape.new(name: 'IpamPoolCidrFailureCode')
    IpamPoolCidrFailureReason = Shapes::StructureShape.new(name: 'IpamPoolCidrFailureReason')
    IpamPoolCidrId = Shapes::StringShape.new(name: 'IpamPoolCidrId')
    IpamPoolCidrSet = Shapes::ListShape.new(name: 'IpamPoolCidrSet')
    IpamPoolCidrState = Shapes::StringShape.new(name: 'IpamPoolCidrState')
    IpamPoolId = Shapes::StringShape.new(name: 'IpamPoolId')
    IpamPoolPublicIpSource = Shapes::StringShape.new(name: 'IpamPoolPublicIpSource')
    IpamPoolSet = Shapes::ListShape.new(name: 'IpamPoolSet')
    IpamPoolSourceResource = Shapes::StructureShape.new(name: 'IpamPoolSourceResource')
    IpamPoolSourceResourceRequest = Shapes::StructureShape.new(name: 'IpamPoolSourceResourceRequest')
    IpamPoolSourceResourceType = Shapes::StringShape.new(name: 'IpamPoolSourceResourceType')
    IpamPoolState = Shapes::StringShape.new(name: 'IpamPoolState')
    IpamPublicAddressAssociationStatus = Shapes::StringShape.new(name: 'IpamPublicAddressAssociationStatus')
    IpamPublicAddressAwsService = Shapes::StringShape.new(name: 'IpamPublicAddressAwsService')
    IpamPublicAddressSecurityGroup = Shapes::StructureShape.new(name: 'IpamPublicAddressSecurityGroup')
    IpamPublicAddressSecurityGroupList = Shapes::ListShape.new(name: 'IpamPublicAddressSecurityGroupList')
    IpamPublicAddressTag = Shapes::StructureShape.new(name: 'IpamPublicAddressTag')
    IpamPublicAddressTagList = Shapes::ListShape.new(name: 'IpamPublicAddressTagList')
    IpamPublicAddressTags = Shapes::StructureShape.new(name: 'IpamPublicAddressTags')
    IpamPublicAddressType = Shapes::StringShape.new(name: 'IpamPublicAddressType')
    IpamResourceCidr = Shapes::StructureShape.new(name: 'IpamResourceCidr')
    IpamResourceCidrIpSource = Shapes::StringShape.new(name: 'IpamResourceCidrIpSource')
    IpamResourceCidrSet = Shapes::ListShape.new(name: 'IpamResourceCidrSet')
    IpamResourceDiscovery = Shapes::StructureShape.new(name: 'IpamResourceDiscovery')
    IpamResourceDiscoveryAssociation = Shapes::StructureShape.new(name: 'IpamResourceDiscoveryAssociation')
    IpamResourceDiscoveryAssociationId = Shapes::StringShape.new(name: 'IpamResourceDiscoveryAssociationId')
    IpamResourceDiscoveryAssociationSet = Shapes::ListShape.new(name: 'IpamResourceDiscoveryAssociationSet')
    IpamResourceDiscoveryAssociationState = Shapes::StringShape.new(name: 'IpamResourceDiscoveryAssociationState')
    IpamResourceDiscoveryId = Shapes::StringShape.new(name: 'IpamResourceDiscoveryId')
    IpamResourceDiscoverySet = Shapes::ListShape.new(name: 'IpamResourceDiscoverySet')
    IpamResourceDiscoveryState = Shapes::StringShape.new(name: 'IpamResourceDiscoveryState')
    IpamResourceTag = Shapes::StructureShape.new(name: 'IpamResourceTag')
    IpamResourceTagList = Shapes::ListShape.new(name: 'IpamResourceTagList')
    IpamResourceType = Shapes::StringShape.new(name: 'IpamResourceType')
    IpamScope = Shapes::StructureShape.new(name: 'IpamScope')
    IpamScopeId = Shapes::StringShape.new(name: 'IpamScopeId')
    IpamScopeSet = Shapes::ListShape.new(name: 'IpamScopeSet')
    IpamScopeState = Shapes::StringShape.new(name: 'IpamScopeState')
    IpamScopeType = Shapes::StringShape.new(name: 'IpamScopeType')
    IpamSet = Shapes::ListShape.new(name: 'IpamSet')
    IpamState = Shapes::StringShape.new(name: 'IpamState')
    IpamTier = Shapes::StringShape.new(name: 'IpamTier')
    Ipv4PoolCoipId = Shapes::StringShape.new(name: 'Ipv4PoolCoipId')
    Ipv4PoolEc2Id = Shapes::StringShape.new(name: 'Ipv4PoolEc2Id')
    Ipv4PrefixList = Shapes::ListShape.new(name: 'Ipv4PrefixList')
    Ipv4PrefixListResponse = Shapes::ListShape.new(name: 'Ipv4PrefixListResponse')
    Ipv4PrefixSpecification = Shapes::StructureShape.new(name: 'Ipv4PrefixSpecification')
    Ipv4PrefixSpecificationRequest = Shapes::StructureShape.new(name: 'Ipv4PrefixSpecificationRequest')
    Ipv4PrefixSpecificationResponse = Shapes::StructureShape.new(name: 'Ipv4PrefixSpecificationResponse')
    Ipv4PrefixesList = Shapes::ListShape.new(name: 'Ipv4PrefixesList')
    Ipv6Address = Shapes::StringShape.new(name: 'Ipv6Address')
    Ipv6AddressAttribute = Shapes::StringShape.new(name: 'Ipv6AddressAttribute')
    Ipv6AddressList = Shapes::ListShape.new(name: 'Ipv6AddressList')
    Ipv6CidrAssociation = Shapes::StructureShape.new(name: 'Ipv6CidrAssociation')
    Ipv6CidrAssociationSet = Shapes::ListShape.new(name: 'Ipv6CidrAssociationSet')
    Ipv6CidrBlock = Shapes::StructureShape.new(name: 'Ipv6CidrBlock')
    Ipv6CidrBlockSet = Shapes::ListShape.new(name: 'Ipv6CidrBlockSet')
    Ipv6Flag = Shapes::BooleanShape.new(name: 'Ipv6Flag')
    Ipv6Pool = Shapes::StructureShape.new(name: 'Ipv6Pool')
    Ipv6PoolEc2Id = Shapes::StringShape.new(name: 'Ipv6PoolEc2Id')
    Ipv6PoolIdList = Shapes::ListShape.new(name: 'Ipv6PoolIdList')
    Ipv6PoolMaxResults = Shapes::IntegerShape.new(name: 'Ipv6PoolMaxResults')
    Ipv6PoolSet = Shapes::ListShape.new(name: 'Ipv6PoolSet')
    Ipv6PrefixList = Shapes::ListShape.new(name: 'Ipv6PrefixList')
    Ipv6PrefixListResponse = Shapes::ListShape.new(name: 'Ipv6PrefixListResponse')
    Ipv6PrefixSpecification = Shapes::StructureShape.new(name: 'Ipv6PrefixSpecification')
    Ipv6PrefixSpecificationRequest = Shapes::StructureShape.new(name: 'Ipv6PrefixSpecificationRequest')
    Ipv6PrefixSpecificationResponse = Shapes::StructureShape.new(name: 'Ipv6PrefixSpecificationResponse')
    Ipv6PrefixesList = Shapes::ListShape.new(name: 'Ipv6PrefixesList')
    Ipv6Range = Shapes::StructureShape.new(name: 'Ipv6Range')
    Ipv6RangeList = Shapes::ListShape.new(name: 'Ipv6RangeList')
    Ipv6SupportValue = Shapes::StringShape.new(name: 'Ipv6SupportValue')
    KernelId = Shapes::StringShape.new(name: 'KernelId')
    KeyFormat = Shapes::StringShape.new(name: 'KeyFormat')
    KeyNameStringList = Shapes::ListShape.new(name: 'KeyNameStringList')
    KeyPair = Shapes::StructureShape.new(name: 'KeyPair')
    KeyPairId = Shapes::StringShape.new(name: 'KeyPairId')
    KeyPairIdStringList = Shapes::ListShape.new(name: 'KeyPairIdStringList')
    KeyPairInfo = Shapes::StructureShape.new(name: 'KeyPairInfo')
    KeyPairList = Shapes::ListShape.new(name: 'KeyPairList')
    KeyPairName = Shapes::StringShape.new(name: 'KeyPairName')
    KeyPairNameWithResolver = Shapes::StringShape.new(name: 'KeyPairNameWithResolver')
    KeyType = Shapes::StringShape.new(name: 'KeyType')
    KmsKeyArn = Shapes::StringShape.new(name: 'KmsKeyArn')
    KmsKeyId = Shapes::StringShape.new(name: 'KmsKeyId')
    LastError = Shapes::StructureShape.new(name: 'LastError')
    LaunchPermission = Shapes::StructureShape.new(name: 'LaunchPermission')
    LaunchPermissionList = Shapes::ListShape.new(name: 'LaunchPermissionList')
    LaunchPermissionModifications = Shapes::StructureShape.new(name: 'LaunchPermissionModifications')
    LaunchSpecification = Shapes::StructureShape.new(name: 'LaunchSpecification')
    LaunchSpecsList = Shapes::ListShape.new(name: 'LaunchSpecsList')
    LaunchTemplate = Shapes::StructureShape.new(name: 'LaunchTemplate')
    LaunchTemplateAndOverridesResponse = Shapes::StructureShape.new(name: 'LaunchTemplateAndOverridesResponse')
    LaunchTemplateAutoRecoveryState = Shapes::StringShape.new(name: 'LaunchTemplateAutoRecoveryState')
    LaunchTemplateBlockDeviceMapping = Shapes::StructureShape.new(name: 'LaunchTemplateBlockDeviceMapping')
    LaunchTemplateBlockDeviceMappingList = Shapes::ListShape.new(name: 'LaunchTemplateBlockDeviceMappingList')
    LaunchTemplateBlockDeviceMappingRequest = Shapes::StructureShape.new(name: 'LaunchTemplateBlockDeviceMappingRequest')
    LaunchTemplateBlockDeviceMappingRequestList = Shapes::ListShape.new(name: 'LaunchTemplateBlockDeviceMappingRequestList')
    LaunchTemplateCapacityReservationSpecificationRequest = Shapes::StructureShape.new(name: 'LaunchTemplateCapacityReservationSpecificationRequest')
    LaunchTemplateCapacityReservationSpecificationResponse = Shapes::StructureShape.new(name: 'LaunchTemplateCapacityReservationSpecificationResponse')
    LaunchTemplateConfig = Shapes::StructureShape.new(name: 'LaunchTemplateConfig')
    LaunchTemplateConfigList = Shapes::ListShape.new(name: 'LaunchTemplateConfigList')
    LaunchTemplateCpuOptions = Shapes::StructureShape.new(name: 'LaunchTemplateCpuOptions')
    LaunchTemplateCpuOptionsRequest = Shapes::StructureShape.new(name: 'LaunchTemplateCpuOptionsRequest')
    LaunchTemplateEbsBlockDevice = Shapes::StructureShape.new(name: 'LaunchTemplateEbsBlockDevice')
    LaunchTemplateEbsBlockDeviceRequest = Shapes::StructureShape.new(name: 'LaunchTemplateEbsBlockDeviceRequest')
    LaunchTemplateElasticInferenceAccelerator = Shapes::StructureShape.new(name: 'LaunchTemplateElasticInferenceAccelerator')
    LaunchTemplateElasticInferenceAcceleratorCount = Shapes::IntegerShape.new(name: 'LaunchTemplateElasticInferenceAcceleratorCount')
    LaunchTemplateElasticInferenceAcceleratorList = Shapes::ListShape.new(name: 'LaunchTemplateElasticInferenceAcceleratorList')
    LaunchTemplateElasticInferenceAcceleratorResponse = Shapes::StructureShape.new(name: 'LaunchTemplateElasticInferenceAcceleratorResponse')
    LaunchTemplateElasticInferenceAcceleratorResponseList = Shapes::ListShape.new(name: 'LaunchTemplateElasticInferenceAcceleratorResponseList')
    LaunchTemplateEnaSrdSpecification = Shapes::StructureShape.new(name: 'LaunchTemplateEnaSrdSpecification')
    LaunchTemplateEnaSrdUdpSpecification = Shapes::StructureShape.new(name: 'LaunchTemplateEnaSrdUdpSpecification')
    LaunchTemplateEnclaveOptions = Shapes::StructureShape.new(name: 'LaunchTemplateEnclaveOptions')
    LaunchTemplateEnclaveOptionsRequest = Shapes::StructureShape.new(name: 'LaunchTemplateEnclaveOptionsRequest')
    LaunchTemplateErrorCode = Shapes::StringShape.new(name: 'LaunchTemplateErrorCode')
    LaunchTemplateHibernationOptions = Shapes::StructureShape.new(name: 'LaunchTemplateHibernationOptions')
    LaunchTemplateHibernationOptionsRequest = Shapes::StructureShape.new(name: 'LaunchTemplateHibernationOptionsRequest')
    LaunchTemplateHttpTokensState = Shapes::StringShape.new(name: 'LaunchTemplateHttpTokensState')
    LaunchTemplateIamInstanceProfileSpecification = Shapes::StructureShape.new(name: 'LaunchTemplateIamInstanceProfileSpecification')
    LaunchTemplateIamInstanceProfileSpecificationRequest = Shapes::StructureShape.new(name: 'LaunchTemplateIamInstanceProfileSpecificationRequest')
    LaunchTemplateId = Shapes::StringShape.new(name: 'LaunchTemplateId')
    LaunchTemplateIdStringList = Shapes::ListShape.new(name: 'LaunchTemplateIdStringList')
    LaunchTemplateInstanceMaintenanceOptions = Shapes::StructureShape.new(name: 'LaunchTemplateInstanceMaintenanceOptions')
    LaunchTemplateInstanceMaintenanceOptionsRequest = Shapes::StructureShape.new(name: 'LaunchTemplateInstanceMaintenanceOptionsRequest')
    LaunchTemplateInstanceMarketOptions = Shapes::StructureShape.new(name: 'LaunchTemplateInstanceMarketOptions')
    LaunchTemplateInstanceMarketOptionsRequest = Shapes::StructureShape.new(name: 'LaunchTemplateInstanceMarketOptionsRequest')
    LaunchTemplateInstanceMetadataEndpointState = Shapes::StringShape.new(name: 'LaunchTemplateInstanceMetadataEndpointState')
    LaunchTemplateInstanceMetadataOptions = Shapes::StructureShape.new(name: 'LaunchTemplateInstanceMetadataOptions')
    LaunchTemplateInstanceMetadataOptionsRequest = Shapes::StructureShape.new(name: 'LaunchTemplateInstanceMetadataOptionsRequest')
    LaunchTemplateInstanceMetadataOptionsState = Shapes::StringShape.new(name: 'LaunchTemplateInstanceMetadataOptionsState')
    LaunchTemplateInstanceMetadataProtocolIpv6 = Shapes::StringShape.new(name: 'LaunchTemplateInstanceMetadataProtocolIpv6')
    LaunchTemplateInstanceMetadataTagsState = Shapes::StringShape.new(name: 'LaunchTemplateInstanceMetadataTagsState')
    LaunchTemplateInstanceNetworkInterfaceSpecification = Shapes::StructureShape.new(name: 'LaunchTemplateInstanceNetworkInterfaceSpecification')
    LaunchTemplateInstanceNetworkInterfaceSpecificationList = Shapes::ListShape.new(name: 'LaunchTemplateInstanceNetworkInterfaceSpecificationList')
    LaunchTemplateInstanceNetworkInterfaceSpecificationRequest = Shapes::StructureShape.new(name: 'LaunchTemplateInstanceNetworkInterfaceSpecificationRequest')
    LaunchTemplateInstanceNetworkInterfaceSpecificationRequestList = Shapes::ListShape.new(name: 'LaunchTemplateInstanceNetworkInterfaceSpecificationRequestList')
    LaunchTemplateLicenseConfiguration = Shapes::StructureShape.new(name: 'LaunchTemplateLicenseConfiguration')
    LaunchTemplateLicenseConfigurationRequest = Shapes::StructureShape.new(name: 'LaunchTemplateLicenseConfigurationRequest')
    LaunchTemplateLicenseList = Shapes::ListShape.new(name: 'LaunchTemplateLicenseList')
    LaunchTemplateLicenseSpecificationListRequest = Shapes::ListShape.new(name: 'LaunchTemplateLicenseSpecificationListRequest')
    LaunchTemplateName = Shapes::StringShape.new(name: 'LaunchTemplateName')
    LaunchTemplateNameStringList = Shapes::ListShape.new(name: 'LaunchTemplateNameStringList')
    LaunchTemplateNetworkPerformanceOptions = Shapes::StructureShape.new(name: 'LaunchTemplateNetworkPerformanceOptions')
    LaunchTemplateNetworkPerformanceOptionsRequest = Shapes::StructureShape.new(name: 'LaunchTemplateNetworkPerformanceOptionsRequest')
    LaunchTemplateOverrides = Shapes::StructureShape.new(name: 'LaunchTemplateOverrides')
    LaunchTemplateOverridesList = Shapes::ListShape.new(name: 'LaunchTemplateOverridesList')
    LaunchTemplatePlacement = Shapes::StructureShape.new(name: 'LaunchTemplatePlacement')
    LaunchTemplatePlacementRequest = Shapes::StructureShape.new(name: 'LaunchTemplatePlacementRequest')
    LaunchTemplatePrivateDnsNameOptions = Shapes::StructureShape.new(name: 'LaunchTemplatePrivateDnsNameOptions')
    LaunchTemplatePrivateDnsNameOptionsRequest = Shapes::StructureShape.new(name: 'LaunchTemplatePrivateDnsNameOptionsRequest')
    LaunchTemplateSet = Shapes::ListShape.new(name: 'LaunchTemplateSet')
    LaunchTemplateSpecification = Shapes::StructureShape.new(name: 'LaunchTemplateSpecification')
    LaunchTemplateSpotMarketOptions = Shapes::StructureShape.new(name: 'LaunchTemplateSpotMarketOptions')
    LaunchTemplateSpotMarketOptionsRequest = Shapes::StructureShape.new(name: 'LaunchTemplateSpotMarketOptionsRequest')
    LaunchTemplateTagSpecification = Shapes::StructureShape.new(name: 'LaunchTemplateTagSpecification')
    LaunchTemplateTagSpecificationList = Shapes::ListShape.new(name: 'LaunchTemplateTagSpecificationList')
    LaunchTemplateTagSpecificationRequest = Shapes::StructureShape.new(name: 'LaunchTemplateTagSpecificationRequest')
    LaunchTemplateTagSpecificationRequestList = Shapes::ListShape.new(name: 'LaunchTemplateTagSpecificationRequestList')
    LaunchTemplateVersion = Shapes::StructureShape.new(name: 'LaunchTemplateVersion')
    LaunchTemplateVersionSet = Shapes::ListShape.new(name: 'LaunchTemplateVersionSet')
    LaunchTemplatesMonitoring = Shapes::StructureShape.new(name: 'LaunchTemplatesMonitoring')
    LaunchTemplatesMonitoringRequest = Shapes::StructureShape.new(name: 'LaunchTemplatesMonitoringRequest')
    LicenseConfiguration = Shapes::StructureShape.new(name: 'LicenseConfiguration')
    LicenseConfigurationRequest = Shapes::StructureShape.new(name: 'LicenseConfigurationRequest')
    LicenseList = Shapes::ListShape.new(name: 'LicenseList')
    LicenseSpecificationListRequest = Shapes::ListShape.new(name: 'LicenseSpecificationListRequest')
    ListImagesInRecycleBinMaxResults = Shapes::IntegerShape.new(name: 'ListImagesInRecycleBinMaxResults')
    ListImagesInRecycleBinRequest = Shapes::StructureShape.new(name: 'ListImagesInRecycleBinRequest')
    ListImagesInRecycleBinResult = Shapes::StructureShape.new(name: 'ListImagesInRecycleBinResult')
    ListSnapshotsInRecycleBinMaxResults = Shapes::IntegerShape.new(name: 'ListSnapshotsInRecycleBinMaxResults')
    ListSnapshotsInRecycleBinRequest = Shapes::StructureShape.new(name: 'ListSnapshotsInRecycleBinRequest')
    ListSnapshotsInRecycleBinResult = Shapes::StructureShape.new(name: 'ListSnapshotsInRecycleBinResult')
    ListingState = Shapes::StringShape.new(name: 'ListingState')
    ListingStatus = Shapes::StringShape.new(name: 'ListingStatus')
    LoadBalancerArn = Shapes::StringShape.new(name: 'LoadBalancerArn')
    LoadBalancersConfig = Shapes::StructureShape.new(name: 'LoadBalancersConfig')
    LoadPermission = Shapes::StructureShape.new(name: 'LoadPermission')
    LoadPermissionList = Shapes::ListShape.new(name: 'LoadPermissionList')
    LoadPermissionListRequest = Shapes::ListShape.new(name: 'LoadPermissionListRequest')
    LoadPermissionModifications = Shapes::StructureShape.new(name: 'LoadPermissionModifications')
    LoadPermissionRequest = Shapes::StructureShape.new(name: 'LoadPermissionRequest')
    LocalGateway = Shapes::StructureShape.new(name: 'LocalGateway')
    LocalGatewayId = Shapes::StringShape.new(name: 'LocalGatewayId')
    LocalGatewayIdSet = Shapes::ListShape.new(name: 'LocalGatewayIdSet')
    LocalGatewayMaxResults = Shapes::IntegerShape.new(name: 'LocalGatewayMaxResults')
    LocalGatewayRoute = Shapes::StructureShape.new(name: 'LocalGatewayRoute')
    LocalGatewayRouteList = Shapes::ListShape.new(name: 'LocalGatewayRouteList')
    LocalGatewayRouteState = Shapes::StringShape.new(name: 'LocalGatewayRouteState')
    LocalGatewayRouteTable = Shapes::StructureShape.new(name: 'LocalGatewayRouteTable')
    LocalGatewayRouteTableIdSet = Shapes::ListShape.new(name: 'LocalGatewayRouteTableIdSet')
    LocalGatewayRouteTableMode = Shapes::StringShape.new(name: 'LocalGatewayRouteTableMode')
    LocalGatewayRouteTableSet = Shapes::ListShape.new(name: 'LocalGatewayRouteTableSet')
    LocalGatewayRouteTableVirtualInterfaceGroupAssociation = Shapes::StructureShape.new(name: 'LocalGatewayRouteTableVirtualInterfaceGroupAssociation')
    LocalGatewayRouteTableVirtualInterfaceGroupAssociationId = Shapes::StringShape.new(name: 'LocalGatewayRouteTableVirtualInterfaceGroupAssociationId')
    LocalGatewayRouteTableVirtualInterfaceGroupAssociationIdSet = Shapes::ListShape.new(name: 'LocalGatewayRouteTableVirtualInterfaceGroupAssociationIdSet')
    LocalGatewayRouteTableVirtualInterfaceGroupAssociationSet = Shapes::ListShape.new(name: 'LocalGatewayRouteTableVirtualInterfaceGroupAssociationSet')
    LocalGatewayRouteTableVpcAssociation = Shapes::StructureShape.new(name: 'LocalGatewayRouteTableVpcAssociation')
    LocalGatewayRouteTableVpcAssociationId = Shapes::StringShape.new(name: 'LocalGatewayRouteTableVpcAssociationId')
    LocalGatewayRouteTableVpcAssociationIdSet = Shapes::ListShape.new(name: 'LocalGatewayRouteTableVpcAssociationIdSet')
    LocalGatewayRouteTableVpcAssociationSet = Shapes::ListShape.new(name: 'LocalGatewayRouteTableVpcAssociationSet')
    LocalGatewayRouteType = Shapes::StringShape.new(name: 'LocalGatewayRouteType')
    LocalGatewayRoutetableId = Shapes::StringShape.new(name: 'LocalGatewayRoutetableId')
    LocalGatewaySet = Shapes::ListShape.new(name: 'LocalGatewaySet')
    LocalGatewayVirtualInterface = Shapes::StructureShape.new(name: 'LocalGatewayVirtualInterface')
    LocalGatewayVirtualInterfaceGroup = Shapes::StructureShape.new(name: 'LocalGatewayVirtualInterfaceGroup')
    LocalGatewayVirtualInterfaceGroupId = Shapes::StringShape.new(name: 'LocalGatewayVirtualInterfaceGroupId')
    LocalGatewayVirtualInterfaceGroupIdSet = Shapes::ListShape.new(name: 'LocalGatewayVirtualInterfaceGroupIdSet')
    LocalGatewayVirtualInterfaceGroupSet = Shapes::ListShape.new(name: 'LocalGatewayVirtualInterfaceGroupSet')
    LocalGatewayVirtualInterfaceId = Shapes::StringShape.new(name: 'LocalGatewayVirtualInterfaceId')
    LocalGatewayVirtualInterfaceIdSet = Shapes::ListShape.new(name: 'LocalGatewayVirtualInterfaceIdSet')
    LocalGatewayVirtualInterfaceSet = Shapes::ListShape.new(name: 'LocalGatewayVirtualInterfaceSet')
    LocalStorage = Shapes::StringShape.new(name: 'LocalStorage')
    LocalStorageType = Shapes::StringShape.new(name: 'LocalStorageType')
    LocalStorageTypeSet = Shapes::ListShape.new(name: 'LocalStorageTypeSet')
    Location = Shapes::StringShape.new(name: 'Location')
    LocationType = Shapes::StringShape.new(name: 'LocationType')
    LockMode = Shapes::StringShape.new(name: 'LockMode')
    LockSnapshotRequest = Shapes::StructureShape.new(name: 'LockSnapshotRequest')
    LockSnapshotResult = Shapes::StructureShape.new(name: 'LockSnapshotResult')
    LockState = Shapes::StringShape.new(name: 'LockState')
    LockedSnapshotsInfo = Shapes::StructureShape.new(name: 'LockedSnapshotsInfo')
    LockedSnapshotsInfoList = Shapes::ListShape.new(name: 'LockedSnapshotsInfoList')
    LogDestinationType = Shapes::StringShape.new(name: 'LogDestinationType')
    Long = Shapes::IntegerShape.new(name: 'Long')
    MacHost = Shapes::StructureShape.new(name: 'MacHost')
    MacHostList = Shapes::ListShape.new(name: 'MacHostList')
    MacOSVersionStringList = Shapes::ListShape.new(name: 'MacOSVersionStringList')
    MaintenanceDetails = Shapes::StructureShape.new(name: 'MaintenanceDetails')
    ManagedBy = Shapes::StringShape.new(name: 'ManagedBy')
    ManagedPrefixList = Shapes::StructureShape.new(name: 'ManagedPrefixList')
    ManagedPrefixListSet = Shapes::ListShape.new(name: 'ManagedPrefixListSet')
    MarketType = Shapes::StringShape.new(name: 'MarketType')
    MaxIpv4AddrPerInterface = Shapes::IntegerShape.new(name: 'MaxIpv4AddrPerInterface')
    MaxIpv6AddrPerInterface = Shapes::IntegerShape.new(name: 'MaxIpv6AddrPerInterface')
    MaxNetworkInterfaces = Shapes::IntegerShape.new(name: 'MaxNetworkInterfaces')
    MaxResults = Shapes::IntegerShape.new(name: 'MaxResults')
    MaxResultsParam = Shapes::IntegerShape.new(name: 'MaxResultsParam')
    MaximumBandwidthInMbps = Shapes::IntegerShape.new(name: 'MaximumBandwidthInMbps')
    MaximumEfaInterfaces = Shapes::IntegerShape.new(name: 'MaximumEfaInterfaces')
    MaximumIops = Shapes::IntegerShape.new(name: 'MaximumIops')
    MaximumNetworkCards = Shapes::IntegerShape.new(name: 'MaximumNetworkCards')
    MaximumThroughputInMBps = Shapes::FloatShape.new(name: 'MaximumThroughputInMBps')
    MediaAcceleratorInfo = Shapes::StructureShape.new(name: 'MediaAcceleratorInfo')
    MediaDeviceCount = Shapes::IntegerShape.new(name: 'MediaDeviceCount')
    MediaDeviceInfo = Shapes::StructureShape.new(name: 'MediaDeviceInfo')
    MediaDeviceInfoList = Shapes::ListShape.new(name: 'MediaDeviceInfoList')
    MediaDeviceManufacturerName = Shapes::StringShape.new(name: 'MediaDeviceManufacturerName')
    MediaDeviceMemoryInfo = Shapes::StructureShape.new(name: 'MediaDeviceMemoryInfo')
    MediaDeviceMemorySize = Shapes::IntegerShape.new(name: 'MediaDeviceMemorySize')
    MediaDeviceName = Shapes::StringShape.new(name: 'MediaDeviceName')
    MembershipType = Shapes::StringShape.new(name: 'MembershipType')
    MemoryGiBPerVCpu = Shapes::StructureShape.new(name: 'MemoryGiBPerVCpu')
    MemoryGiBPerVCpuRequest = Shapes::StructureShape.new(name: 'MemoryGiBPerVCpuRequest')
    MemoryInfo = Shapes::StructureShape.new(name: 'MemoryInfo')
    MemoryMiB = Shapes::StructureShape.new(name: 'MemoryMiB')
    MemoryMiBRequest = Shapes::StructureShape.new(name: 'MemoryMiBRequest')
    MemorySize = Shapes::IntegerShape.new(name: 'MemorySize')
    MetadataDefaultHttpTokensState = Shapes::StringShape.new(name: 'MetadataDefaultHttpTokensState')
    MetricPoint = Shapes::StructureShape.new(name: 'MetricPoint')
    MetricPoints = Shapes::ListShape.new(name: 'MetricPoints')
    MetricType = Shapes::StringShape.new(name: 'MetricType')
    MillisecondDateTime = Shapes::TimestampShape.new(name: 'MillisecondDateTime')
    ModifyAddressAttributeRequest = Shapes::StructureShape.new(name: 'ModifyAddressAttributeRequest')
    ModifyAddressAttributeResult = Shapes::StructureShape.new(name: 'ModifyAddressAttributeResult')
    ModifyAvailabilityZoneGroupRequest = Shapes::StructureShape.new(name: 'ModifyAvailabilityZoneGroupRequest')
    ModifyAvailabilityZoneGroupResult = Shapes::StructureShape.new(name: 'ModifyAvailabilityZoneGroupResult')
    ModifyAvailabilityZoneOptInStatus = Shapes::StringShape.new(name: 'ModifyAvailabilityZoneOptInStatus')
    ModifyCapacityReservationFleetRequest = Shapes::StructureShape.new(name: 'ModifyCapacityReservationFleetRequest')
    ModifyCapacityReservationFleetResult = Shapes::StructureShape.new(name: 'ModifyCapacityReservationFleetResult')
    ModifyCapacityReservationRequest = Shapes::StructureShape.new(name: 'ModifyCapacityReservationRequest')
    ModifyCapacityReservationResult = Shapes::StructureShape.new(name: 'ModifyCapacityReservationResult')
    ModifyClientVpnEndpointRequest = Shapes::StructureShape.new(name: 'ModifyClientVpnEndpointRequest')
    ModifyClientVpnEndpointResult = Shapes::StructureShape.new(name: 'ModifyClientVpnEndpointResult')
    ModifyDefaultCreditSpecificationRequest = Shapes::StructureShape.new(name: 'ModifyDefaultCreditSpecificationRequest')
    ModifyDefaultCreditSpecificationResult = Shapes::StructureShape.new(name: 'ModifyDefaultCreditSpecificationResult')
    ModifyEbsDefaultKmsKeyIdRequest = Shapes::StructureShape.new(name: 'ModifyEbsDefaultKmsKeyIdRequest')
    ModifyEbsDefaultKmsKeyIdResult = Shapes::StructureShape.new(name: 'ModifyEbsDefaultKmsKeyIdResult')
    ModifyFleetRequest = Shapes::StructureShape.new(name: 'ModifyFleetRequest')
    ModifyFleetResult = Shapes::StructureShape.new(name: 'ModifyFleetResult')
    ModifyFpgaImageAttributeRequest = Shapes::StructureShape.new(name: 'ModifyFpgaImageAttributeRequest')
    ModifyFpgaImageAttributeResult = Shapes::StructureShape.new(name: 'ModifyFpgaImageAttributeResult')
    ModifyHostsRequest = Shapes::StructureShape.new(name: 'ModifyHostsRequest')
    ModifyHostsResult = Shapes::StructureShape.new(name: 'ModifyHostsResult')
    ModifyIdFormatRequest = Shapes::StructureShape.new(name: 'ModifyIdFormatRequest')
    ModifyIdentityIdFormatRequest = Shapes::StructureShape.new(name: 'ModifyIdentityIdFormatRequest')
    ModifyImageAttributeRequest = Shapes::StructureShape.new(name: 'ModifyImageAttributeRequest')
    ModifyInstanceAttributeRequest = Shapes::StructureShape.new(name: 'ModifyInstanceAttributeRequest')
    ModifyInstanceCapacityReservationAttributesRequest = Shapes::StructureShape.new(name: 'ModifyInstanceCapacityReservationAttributesRequest')
    ModifyInstanceCapacityReservationAttributesResult = Shapes::StructureShape.new(name: 'ModifyInstanceCapacityReservationAttributesResult')
    ModifyInstanceCpuOptionsRequest = Shapes::StructureShape.new(name: 'ModifyInstanceCpuOptionsRequest')
    ModifyInstanceCpuOptionsResult = Shapes::StructureShape.new(name: 'ModifyInstanceCpuOptionsResult')
    ModifyInstanceCreditSpecificationRequest = Shapes::StructureShape.new(name: 'ModifyInstanceCreditSpecificationRequest')
    ModifyInstanceCreditSpecificationResult = Shapes::StructureShape.new(name: 'ModifyInstanceCreditSpecificationResult')
    ModifyInstanceEventStartTimeRequest = Shapes::StructureShape.new(name: 'ModifyInstanceEventStartTimeRequest')
    ModifyInstanceEventStartTimeResult = Shapes::StructureShape.new(name: 'ModifyInstanceEventStartTimeResult')
    ModifyInstanceEventWindowRequest = Shapes::StructureShape.new(name: 'ModifyInstanceEventWindowRequest')
    ModifyInstanceEventWindowResult = Shapes::StructureShape.new(name: 'ModifyInstanceEventWindowResult')
    ModifyInstanceMaintenanceOptionsRequest = Shapes::StructureShape.new(name: 'ModifyInstanceMaintenanceOptionsRequest')
    ModifyInstanceMaintenanceOptionsResult = Shapes::StructureShape.new(name: 'ModifyInstanceMaintenanceOptionsResult')
    ModifyInstanceMetadataDefaultsRequest = Shapes::StructureShape.new(name: 'ModifyInstanceMetadataDefaultsRequest')
    ModifyInstanceMetadataDefaultsResult = Shapes::StructureShape.new(name: 'ModifyInstanceMetadataDefaultsResult')
    ModifyInstanceMetadataOptionsRequest = Shapes::StructureShape.new(name: 'ModifyInstanceMetadataOptionsRequest')
    ModifyInstanceMetadataOptionsResult = Shapes::StructureShape.new(name: 'ModifyInstanceMetadataOptionsResult')
    ModifyInstanceNetworkPerformanceRequest = Shapes::StructureShape.new(name: 'ModifyInstanceNetworkPerformanceRequest')
    ModifyInstanceNetworkPerformanceResult = Shapes::StructureShape.new(name: 'ModifyInstanceNetworkPerformanceResult')
    ModifyInstancePlacementRequest = Shapes::StructureShape.new(name: 'ModifyInstancePlacementRequest')
    ModifyInstancePlacementResult = Shapes::StructureShape.new(name: 'ModifyInstancePlacementResult')
    ModifyIpamPoolRequest = Shapes::StructureShape.new(name: 'ModifyIpamPoolRequest')
    ModifyIpamPoolResult = Shapes::StructureShape.new(name: 'ModifyIpamPoolResult')
    ModifyIpamRequest = Shapes::StructureShape.new(name: 'ModifyIpamRequest')
    ModifyIpamResourceCidrRequest = Shapes::StructureShape.new(name: 'ModifyIpamResourceCidrRequest')
    ModifyIpamResourceCidrResult = Shapes::StructureShape.new(name: 'ModifyIpamResourceCidrResult')
    ModifyIpamResourceDiscoveryRequest = Shapes::StructureShape.new(name: 'ModifyIpamResourceDiscoveryRequest')
    ModifyIpamResourceDiscoveryResult = Shapes::StructureShape.new(name: 'ModifyIpamResourceDiscoveryResult')
    ModifyIpamResult = Shapes::StructureShape.new(name: 'ModifyIpamResult')
    ModifyIpamScopeRequest = Shapes::StructureShape.new(name: 'ModifyIpamScopeRequest')
    ModifyIpamScopeResult = Shapes::StructureShape.new(name: 'ModifyIpamScopeResult')
    ModifyLaunchTemplateRequest = Shapes::StructureShape.new(name: 'ModifyLaunchTemplateRequest')
    ModifyLaunchTemplateResult = Shapes::StructureShape.new(name: 'ModifyLaunchTemplateResult')
    ModifyLocalGatewayRouteRequest = Shapes::StructureShape.new(name: 'ModifyLocalGatewayRouteRequest')
    ModifyLocalGatewayRouteResult = Shapes::StructureShape.new(name: 'ModifyLocalGatewayRouteResult')
    ModifyManagedPrefixListRequest = Shapes::StructureShape.new(name: 'ModifyManagedPrefixListRequest')
    ModifyManagedPrefixListResult = Shapes::StructureShape.new(name: 'ModifyManagedPrefixListResult')
    ModifyNetworkInterfaceAttributeRequest = Shapes::StructureShape.new(name: 'ModifyNetworkInterfaceAttributeRequest')
    ModifyPrivateDnsNameOptionsRequest = Shapes::StructureShape.new(name: 'ModifyPrivateDnsNameOptionsRequest')
    ModifyPrivateDnsNameOptionsResult = Shapes::StructureShape.new(name: 'ModifyPrivateDnsNameOptionsResult')
    ModifyReservedInstancesRequest = Shapes::StructureShape.new(name: 'ModifyReservedInstancesRequest')
    ModifyReservedInstancesResult = Shapes::StructureShape.new(name: 'ModifyReservedInstancesResult')
    ModifySecurityGroupRulesRequest = Shapes::StructureShape.new(name: 'ModifySecurityGroupRulesRequest')
    ModifySecurityGroupRulesResult = Shapes::StructureShape.new(name: 'ModifySecurityGroupRulesResult')
    ModifySnapshotAttributeRequest = Shapes::StructureShape.new(name: 'ModifySnapshotAttributeRequest')
    ModifySnapshotTierRequest = Shapes::StructureShape.new(name: 'ModifySnapshotTierRequest')
    ModifySnapshotTierResult = Shapes::StructureShape.new(name: 'ModifySnapshotTierResult')
    ModifySpotFleetRequestRequest = Shapes::StructureShape.new(name: 'ModifySpotFleetRequestRequest')
    ModifySpotFleetRequestResponse = Shapes::StructureShape.new(name: 'ModifySpotFleetRequestResponse')
    ModifySubnetAttributeRequest = Shapes::StructureShape.new(name: 'ModifySubnetAttributeRequest')
    ModifyTrafficMirrorFilterNetworkServicesRequest = Shapes::StructureShape.new(name: 'ModifyTrafficMirrorFilterNetworkServicesRequest')
    ModifyTrafficMirrorFilterNetworkServicesResult = Shapes::StructureShape.new(name: 'ModifyTrafficMirrorFilterNetworkServicesResult')
    ModifyTrafficMirrorFilterRuleRequest = Shapes::StructureShape.new(name: 'ModifyTrafficMirrorFilterRuleRequest')
    ModifyTrafficMirrorFilterRuleResult = Shapes::StructureShape.new(name: 'ModifyTrafficMirrorFilterRuleResult')
    ModifyTrafficMirrorSessionRequest = Shapes::StructureShape.new(name: 'ModifyTrafficMirrorSessionRequest')
    ModifyTrafficMirrorSessionResult = Shapes::StructureShape.new(name: 'ModifyTrafficMirrorSessionResult')
    ModifyTransitGatewayOptions = Shapes::StructureShape.new(name: 'ModifyTransitGatewayOptions')
    ModifyTransitGatewayPrefixListReferenceRequest = Shapes::StructureShape.new(name: 'ModifyTransitGatewayPrefixListReferenceRequest')
    ModifyTransitGatewayPrefixListReferenceResult = Shapes::StructureShape.new(name: 'ModifyTransitGatewayPrefixListReferenceResult')
    ModifyTransitGatewayRequest = Shapes::StructureShape.new(name: 'ModifyTransitGatewayRequest')
    ModifyTransitGatewayResult = Shapes::StructureShape.new(name: 'ModifyTransitGatewayResult')
    ModifyTransitGatewayVpcAttachmentRequest = Shapes::StructureShape.new(name: 'ModifyTransitGatewayVpcAttachmentRequest')
    ModifyTransitGatewayVpcAttachmentRequestOptions = Shapes::StructureShape.new(name: 'ModifyTransitGatewayVpcAttachmentRequestOptions')
    ModifyTransitGatewayVpcAttachmentResult = Shapes::StructureShape.new(name: 'ModifyTransitGatewayVpcAttachmentResult')
    ModifyVerifiedAccessEndpointCidrOptions = Shapes::StructureShape.new(name: 'ModifyVerifiedAccessEndpointCidrOptions')
    ModifyVerifiedAccessEndpointEniOptions = Shapes::StructureShape.new(name: 'ModifyVerifiedAccessEndpointEniOptions')
    ModifyVerifiedAccessEndpointLoadBalancerOptions = Shapes::StructureShape.new(name: 'ModifyVerifiedAccessEndpointLoadBalancerOptions')
    ModifyVerifiedAccessEndpointPolicyRequest = Shapes::StructureShape.new(name: 'ModifyVerifiedAccessEndpointPolicyRequest')
    ModifyVerifiedAccessEndpointPolicyResult = Shapes::StructureShape.new(name: 'ModifyVerifiedAccessEndpointPolicyResult')
    ModifyVerifiedAccessEndpointPortRange = Shapes::StructureShape.new(name: 'ModifyVerifiedAccessEndpointPortRange')
    ModifyVerifiedAccessEndpointPortRangeList = Shapes::ListShape.new(name: 'ModifyVerifiedAccessEndpointPortRangeList')
    ModifyVerifiedAccessEndpointRdsOptions = Shapes::StructureShape.new(name: 'ModifyVerifiedAccessEndpointRdsOptions')
    ModifyVerifiedAccessEndpointRequest = Shapes::StructureShape.new(name: 'ModifyVerifiedAccessEndpointRequest')
    ModifyVerifiedAccessEndpointResult = Shapes::StructureShape.new(name: 'ModifyVerifiedAccessEndpointResult')
    ModifyVerifiedAccessEndpointSubnetIdList = Shapes::ListShape.new(name: 'ModifyVerifiedAccessEndpointSubnetIdList')
    ModifyVerifiedAccessGroupPolicyRequest = Shapes::StructureShape.new(name: 'ModifyVerifiedAccessGroupPolicyRequest')
    ModifyVerifiedAccessGroupPolicyResult = Shapes::StructureShape.new(name: 'ModifyVerifiedAccessGroupPolicyResult')
    ModifyVerifiedAccessGroupRequest = Shapes::StructureShape.new(name: 'ModifyVerifiedAccessGroupRequest')
    ModifyVerifiedAccessGroupResult = Shapes::StructureShape.new(name: 'ModifyVerifiedAccessGroupResult')
    ModifyVerifiedAccessInstanceLoggingConfigurationRequest = Shapes::StructureShape.new(name: 'ModifyVerifiedAccessInstanceLoggingConfigurationRequest')
    ModifyVerifiedAccessInstanceLoggingConfigurationResult = Shapes::StructureShape.new(name: 'ModifyVerifiedAccessInstanceLoggingConfigurationResult')
    ModifyVerifiedAccessInstanceRequest = Shapes::StructureShape.new(name: 'ModifyVerifiedAccessInstanceRequest')
    ModifyVerifiedAccessInstanceResult = Shapes::StructureShape.new(name: 'ModifyVerifiedAccessInstanceResult')
    ModifyVerifiedAccessNativeApplicationOidcOptions = Shapes::StructureShape.new(name: 'ModifyVerifiedAccessNativeApplicationOidcOptions')
    ModifyVerifiedAccessTrustProviderDeviceOptions = Shapes::StructureShape.new(name: 'ModifyVerifiedAccessTrustProviderDeviceOptions')
    ModifyVerifiedAccessTrustProviderOidcOptions = Shapes::StructureShape.new(name: 'ModifyVerifiedAccessTrustProviderOidcOptions')
    ModifyVerifiedAccessTrustProviderRequest = Shapes::StructureShape.new(name: 'ModifyVerifiedAccessTrustProviderRequest')
    ModifyVerifiedAccessTrustProviderResult = Shapes::StructureShape.new(name: 'ModifyVerifiedAccessTrustProviderResult')
    ModifyVolumeAttributeRequest = Shapes::StructureShape.new(name: 'ModifyVolumeAttributeRequest')
    ModifyVolumeRequest = Shapes::StructureShape.new(name: 'ModifyVolumeRequest')
    ModifyVolumeResult = Shapes::StructureShape.new(name: 'ModifyVolumeResult')
    ModifyVpcAttributeRequest = Shapes::StructureShape.new(name: 'ModifyVpcAttributeRequest')
    ModifyVpcBlockPublicAccessExclusionRequest = Shapes::StructureShape.new(name: 'ModifyVpcBlockPublicAccessExclusionRequest')
    ModifyVpcBlockPublicAccessExclusionResult = Shapes::StructureShape.new(name: 'ModifyVpcBlockPublicAccessExclusionResult')
    ModifyVpcBlockPublicAccessOptionsRequest = Shapes::StructureShape.new(name: 'ModifyVpcBlockPublicAccessOptionsRequest')
    ModifyVpcBlockPublicAccessOptionsResult = Shapes::StructureShape.new(name: 'ModifyVpcBlockPublicAccessOptionsResult')
    ModifyVpcEndpointConnectionNotificationRequest = Shapes::StructureShape.new(name: 'ModifyVpcEndpointConnectionNotificationRequest')
    ModifyVpcEndpointConnectionNotificationResult = Shapes::StructureShape.new(name: 'ModifyVpcEndpointConnectionNotificationResult')
    ModifyVpcEndpointRequest = Shapes::StructureShape.new(name: 'ModifyVpcEndpointRequest')
    ModifyVpcEndpointResult = Shapes::StructureShape.new(name: 'ModifyVpcEndpointResult')
    ModifyVpcEndpointServiceConfigurationRequest = Shapes::StructureShape.new(name: 'ModifyVpcEndpointServiceConfigurationRequest')
    ModifyVpcEndpointServiceConfigurationResult = Shapes::StructureShape.new(name: 'ModifyVpcEndpointServiceConfigurationResult')
    ModifyVpcEndpointServicePayerResponsibilityRequest = Shapes::StructureShape.new(name: 'ModifyVpcEndpointServicePayerResponsibilityRequest')
    ModifyVpcEndpointServicePayerResponsibilityResult = Shapes::StructureShape.new(name: 'ModifyVpcEndpointServicePayerResponsibilityResult')
    ModifyVpcEndpointServicePermissionsRequest = Shapes::StructureShape.new(name: 'ModifyVpcEndpointServicePermissionsRequest')
    ModifyVpcEndpointServicePermissionsResult = Shapes::StructureShape.new(name: 'ModifyVpcEndpointServicePermissionsResult')
    ModifyVpcPeeringConnectionOptionsRequest = Shapes::StructureShape.new(name: 'ModifyVpcPeeringConnectionOptionsRequest')
    ModifyVpcPeeringConnectionOptionsResult = Shapes::StructureShape.new(name: 'ModifyVpcPeeringConnectionOptionsResult')
    ModifyVpcTenancyRequest = Shapes::StructureShape.new(name: 'ModifyVpcTenancyRequest')
    ModifyVpcTenancyResult = Shapes::StructureShape.new(name: 'ModifyVpcTenancyResult')
    ModifyVpnConnectionOptionsRequest = Shapes::StructureShape.new(name: 'ModifyVpnConnectionOptionsRequest')
    ModifyVpnConnectionOptionsResult = Shapes::StructureShape.new(name: 'ModifyVpnConnectionOptionsResult')
    ModifyVpnConnectionRequest = Shapes::StructureShape.new(name: 'ModifyVpnConnectionRequest')
    ModifyVpnConnectionResult = Shapes::StructureShape.new(name: 'ModifyVpnConnectionResult')
    ModifyVpnTunnelCertificateRequest = Shapes::StructureShape.new(name: 'ModifyVpnTunnelCertificateRequest')
    ModifyVpnTunnelCertificateResult = Shapes::StructureShape.new(name: 'ModifyVpnTunnelCertificateResult')
    ModifyVpnTunnelOptionsRequest = Shapes::StructureShape.new(name: 'ModifyVpnTunnelOptionsRequest')
    ModifyVpnTunnelOptionsResult = Shapes::StructureShape.new(name: 'ModifyVpnTunnelOptionsResult')
    ModifyVpnTunnelOptionsSpecification = Shapes::StructureShape.new(name: 'ModifyVpnTunnelOptionsSpecification')
    MonitorInstancesRequest = Shapes::StructureShape.new(name: 'MonitorInstancesRequest')
    MonitorInstancesResult = Shapes::StructureShape.new(name: 'MonitorInstancesResult')
    Monitoring = Shapes::StructureShape.new(name: 'Monitoring')
    MonitoringState = Shapes::StringShape.new(name: 'MonitoringState')
    MoveAddressToVpcRequest = Shapes::StructureShape.new(name: 'MoveAddressToVpcRequest')
    MoveAddressToVpcResult = Shapes::StructureShape.new(name: 'MoveAddressToVpcResult')
    MoveByoipCidrToIpamRequest = Shapes::StructureShape.new(name: 'MoveByoipCidrToIpamRequest')
    MoveByoipCidrToIpamResult = Shapes::StructureShape.new(name: 'MoveByoipCidrToIpamResult')
    MoveCapacityReservationInstancesRequest = Shapes::StructureShape.new(name: 'MoveCapacityReservationInstancesRequest')
    MoveCapacityReservationInstancesResult = Shapes::StructureShape.new(name: 'MoveCapacityReservationInstancesResult')
    MoveStatus = Shapes::StringShape.new(name: 'MoveStatus')
    MovingAddressStatus = Shapes::StructureShape.new(name: 'MovingAddressStatus')
    MovingAddressStatusSet = Shapes::ListShape.new(name: 'MovingAddressStatusSet')
    MulticastSupportValue = Shapes::StringShape.new(name: 'MulticastSupportValue')
    NatGateway = Shapes::StructureShape.new(name: 'NatGateway')
    NatGatewayAddress = Shapes::StructureShape.new(name: 'NatGatewayAddress')
    NatGatewayAddressList = Shapes::ListShape.new(name: 'NatGatewayAddressList')
    NatGatewayAddressStatus = Shapes::StringShape.new(name: 'NatGatewayAddressStatus')
    NatGatewayId = Shapes::StringShape.new(name: 'NatGatewayId')
    NatGatewayIdStringList = Shapes::ListShape.new(name: 'NatGatewayIdStringList')
    NatGatewayList = Shapes::ListShape.new(name: 'NatGatewayList')
    NatGatewayState = Shapes::StringShape.new(name: 'NatGatewayState')
    NativeApplicationOidcOptions = Shapes::StructureShape.new(name: 'NativeApplicationOidcOptions')
    NetmaskLength = Shapes::IntegerShape.new(name: 'NetmaskLength')
    NetworkAcl = Shapes::StructureShape.new(name: 'NetworkAcl')
    NetworkAclAssociation = Shapes::StructureShape.new(name: 'NetworkAclAssociation')
    NetworkAclAssociationId = Shapes::StringShape.new(name: 'NetworkAclAssociationId')
    NetworkAclAssociationList = Shapes::ListShape.new(name: 'NetworkAclAssociationList')
    NetworkAclEntry = Shapes::StructureShape.new(name: 'NetworkAclEntry')
    NetworkAclEntryList = Shapes::ListShape.new(name: 'NetworkAclEntryList')
    NetworkAclId = Shapes::StringShape.new(name: 'NetworkAclId')
    NetworkAclIdStringList = Shapes::ListShape.new(name: 'NetworkAclIdStringList')
    NetworkAclList = Shapes::ListShape.new(name: 'NetworkAclList')
    NetworkBandwidthGbps = Shapes::StructureShape.new(name: 'NetworkBandwidthGbps')
    NetworkBandwidthGbpsRequest = Shapes::StructureShape.new(name: 'NetworkBandwidthGbpsRequest')
    NetworkCardIndex = Shapes::IntegerShape.new(name: 'NetworkCardIndex')
    NetworkCardInfo = Shapes::StructureShape.new(name: 'NetworkCardInfo')
    NetworkCardInfoList = Shapes::ListShape.new(name: 'NetworkCardInfoList')
    NetworkInfo = Shapes::StructureShape.new(name: 'NetworkInfo')
    NetworkInsightsAccessScope = Shapes::StructureShape.new(name: 'NetworkInsightsAccessScope')
    NetworkInsightsAccessScopeAnalysis = Shapes::StructureShape.new(name: 'NetworkInsightsAccessScopeAnalysis')
    NetworkInsightsAccessScopeAnalysisId = Shapes::StringShape.new(name: 'NetworkInsightsAccessScopeAnalysisId')
    NetworkInsightsAccessScopeAnalysisIdList = Shapes::ListShape.new(name: 'NetworkInsightsAccessScopeAnalysisIdList')
    NetworkInsightsAccessScopeAnalysisList = Shapes::ListShape.new(name: 'NetworkInsightsAccessScopeAnalysisList')
    NetworkInsightsAccessScopeContent = Shapes::StructureShape.new(name: 'NetworkInsightsAccessScopeContent')
    NetworkInsightsAccessScopeId = Shapes::StringShape.new(name: 'NetworkInsightsAccessScopeId')
    NetworkInsightsAccessScopeIdList = Shapes::ListShape.new(name: 'NetworkInsightsAccessScopeIdList')
    NetworkInsightsAccessScopeList = Shapes::ListShape.new(name: 'NetworkInsightsAccessScopeList')
    NetworkInsightsAnalysis = Shapes::StructureShape.new(name: 'NetworkInsightsAnalysis')
    NetworkInsightsAnalysisId = Shapes::StringShape.new(name: 'NetworkInsightsAnalysisId')
    NetworkInsightsAnalysisIdList = Shapes::ListShape.new(name: 'NetworkInsightsAnalysisIdList')
    NetworkInsightsAnalysisList = Shapes::ListShape.new(name: 'NetworkInsightsAnalysisList')
    NetworkInsightsMaxResults = Shapes::IntegerShape.new(name: 'NetworkInsightsMaxResults')
    NetworkInsightsPath = Shapes::StructureShape.new(name: 'NetworkInsightsPath')
    NetworkInsightsPathId = Shapes::StringShape.new(name: 'NetworkInsightsPathId')
    NetworkInsightsPathIdList = Shapes::ListShape.new(name: 'NetworkInsightsPathIdList')
    NetworkInsightsPathList = Shapes::ListShape.new(name: 'NetworkInsightsPathList')
    NetworkInsightsResourceId = Shapes::StringShape.new(name: 'NetworkInsightsResourceId')
    NetworkInterface = Shapes::StructureShape.new(name: 'NetworkInterface')
    NetworkInterfaceAssociation = Shapes::StructureShape.new(name: 'NetworkInterfaceAssociation')
    NetworkInterfaceAttachment = Shapes::StructureShape.new(name: 'NetworkInterfaceAttachment')
    NetworkInterfaceAttachmentChanges = Shapes::StructureShape.new(name: 'NetworkInterfaceAttachmentChanges')
    NetworkInterfaceAttachmentId = Shapes::StringShape.new(name: 'NetworkInterfaceAttachmentId')
    NetworkInterfaceAttribute = Shapes::StringShape.new(name: 'NetworkInterfaceAttribute')
    NetworkInterfaceCount = Shapes::StructureShape.new(name: 'NetworkInterfaceCount')
    NetworkInterfaceCountRequest = Shapes::StructureShape.new(name: 'NetworkInterfaceCountRequest')
    NetworkInterfaceCreationType = Shapes::StringShape.new(name: 'NetworkInterfaceCreationType')
    NetworkInterfaceId = Shapes::StringShape.new(name: 'NetworkInterfaceId')
    NetworkInterfaceIdList = Shapes::ListShape.new(name: 'NetworkInterfaceIdList')
    NetworkInterfaceIdSet = Shapes::ListShape.new(name: 'NetworkInterfaceIdSet')
    NetworkInterfaceIpv6Address = Shapes::StructureShape.new(name: 'NetworkInterfaceIpv6Address')
    NetworkInterfaceIpv6AddressesList = Shapes::ListShape.new(name: 'NetworkInterfaceIpv6AddressesList')
    NetworkInterfaceList = Shapes::ListShape.new(name: 'NetworkInterfaceList')
    NetworkInterfacePermission = Shapes::StructureShape.new(name: 'NetworkInterfacePermission')
    NetworkInterfacePermissionId = Shapes::StringShape.new(name: 'NetworkInterfacePermissionId')
    NetworkInterfacePermissionIdList = Shapes::ListShape.new(name: 'NetworkInterfacePermissionIdList')
    NetworkInterfacePermissionList = Shapes::ListShape.new(name: 'NetworkInterfacePermissionList')
    NetworkInterfacePermissionState = Shapes::StructureShape.new(name: 'NetworkInterfacePermissionState')
    NetworkInterfacePermissionStateCode = Shapes::StringShape.new(name: 'NetworkInterfacePermissionStateCode')
    NetworkInterfacePrivateIpAddress = Shapes::StructureShape.new(name: 'NetworkInterfacePrivateIpAddress')
    NetworkInterfacePrivateIpAddressList = Shapes::ListShape.new(name: 'NetworkInterfacePrivateIpAddressList')
    NetworkInterfaceStatus = Shapes::StringShape.new(name: 'NetworkInterfaceStatus')
    NetworkInterfaceType = Shapes::StringShape.new(name: 'NetworkInterfaceType')
    NetworkNodesList = Shapes::ListShape.new(name: 'NetworkNodesList')
    NetworkPerformance = Shapes::StringShape.new(name: 'NetworkPerformance')
    NeuronDeviceCoreCount = Shapes::IntegerShape.new(name: 'NeuronDeviceCoreCount')
    NeuronDeviceCoreInfo = Shapes::StructureShape.new(name: 'NeuronDeviceCoreInfo')
    NeuronDeviceCoreVersion = Shapes::IntegerShape.new(name: 'NeuronDeviceCoreVersion')
    NeuronDeviceCount = Shapes::IntegerShape.new(name: 'NeuronDeviceCount')
    NeuronDeviceInfo = Shapes::StructureShape.new(name: 'NeuronDeviceInfo')
    NeuronDeviceInfoList = Shapes::ListShape.new(name: 'NeuronDeviceInfoList')
    NeuronDeviceMemoryInfo = Shapes::StructureShape.new(name: 'NeuronDeviceMemoryInfo')
    NeuronDeviceMemorySize = Shapes::IntegerShape.new(name: 'NeuronDeviceMemorySize')
    NeuronDeviceName = Shapes::StringShape.new(name: 'NeuronDeviceName')
    NeuronInfo = Shapes::StructureShape.new(name: 'NeuronInfo')
    NewDhcpConfiguration = Shapes::StructureShape.new(name: 'NewDhcpConfiguration')
    NewDhcpConfigurationList = Shapes::ListShape.new(name: 'NewDhcpConfigurationList')
    NextToken = Shapes::StringShape.new(name: 'NextToken')
    NitroEnclavesSupport = Shapes::StringShape.new(name: 'NitroEnclavesSupport')
    NitroTpmInfo = Shapes::StructureShape.new(name: 'NitroTpmInfo')
    NitroTpmSupport = Shapes::StringShape.new(name: 'NitroTpmSupport')
    NitroTpmSupportedVersionType = Shapes::StringShape.new(name: 'NitroTpmSupportedVersionType')
    NitroTpmSupportedVersionsList = Shapes::ListShape.new(name: 'NitroTpmSupportedVersionsList')
    OccurrenceDayRequestSet = Shapes::ListShape.new(name: 'OccurrenceDayRequestSet')
    OccurrenceDaySet = Shapes::ListShape.new(name: 'OccurrenceDaySet')
    OfferingClassType = Shapes::StringShape.new(name: 'OfferingClassType')
    OfferingId = Shapes::StringShape.new(name: 'OfferingId')
    OfferingTypeValues = Shapes::StringShape.new(name: 'OfferingTypeValues')
    OidcOptions = Shapes::StructureShape.new(name: 'OidcOptions')
    OnDemandAllocationStrategy = Shapes::StringShape.new(name: 'OnDemandAllocationStrategy')
    OnDemandOptions = Shapes::StructureShape.new(name: 'OnDemandOptions')
    OnDemandOptionsRequest = Shapes::StructureShape.new(name: 'OnDemandOptionsRequest')
    OperationType = Shapes::StringShape.new(name: 'OperationType')
    OperatorRequest = Shapes::StructureShape.new(name: 'OperatorRequest')
    OperatorResponse = Shapes::StructureShape.new(name: 'OperatorResponse')
    OrganizationArnStringList = Shapes::ListShape.new(name: 'OrganizationArnStringList')
    OrganizationalUnitArnStringList = Shapes::ListShape.new(name: 'OrganizationalUnitArnStringList')
    OutpostArn = Shapes::StringShape.new(name: 'OutpostArn')
    OwnerStringList = Shapes::ListShape.new(name: 'OwnerStringList')
    PacketHeaderStatement = Shapes::StructureShape.new(name: 'PacketHeaderStatement')
    PacketHeaderStatementRequest = Shapes::StructureShape.new(name: 'PacketHeaderStatementRequest')
    PartitionLoadFrequency = Shapes::StringShape.new(name: 'PartitionLoadFrequency')
    PasswordData = Shapes::StringShape.new(name: 'PasswordData')
    PathComponent = Shapes::StructureShape.new(name: 'PathComponent')
    PathComponentList = Shapes::ListShape.new(name: 'PathComponentList')
    PathFilter = Shapes::StructureShape.new(name: 'PathFilter')
    PathRequestFilter = Shapes::StructureShape.new(name: 'PathRequestFilter')
    PathStatement = Shapes::StructureShape.new(name: 'PathStatement')
    PathStatementRequest = Shapes::StructureShape.new(name: 'PathStatementRequest')
    PayerResponsibility = Shapes::StringShape.new(name: 'PayerResponsibility')
    PaymentOption = Shapes::StringShape.new(name: 'PaymentOption')
    PciId = Shapes::StructureShape.new(name: 'PciId')
    PeakBandwidthInGbps = Shapes::FloatShape.new(name: 'PeakBandwidthInGbps')
    PeeringAttachmentStatus = Shapes::StructureShape.new(name: 'PeeringAttachmentStatus')
    PeeringConnectionOptions = Shapes::StructureShape.new(name: 'PeeringConnectionOptions')
    PeeringConnectionOptionsRequest = Shapes::StructureShape.new(name: 'PeeringConnectionOptionsRequest')
    PeeringTgwInfo = Shapes::StructureShape.new(name: 'PeeringTgwInfo')
    PerformanceFactorReference = Shapes::StructureShape.new(name: 'PerformanceFactorReference')
    PerformanceFactorReferenceRequest = Shapes::StructureShape.new(name: 'PerformanceFactorReferenceRequest')
    PerformanceFactorReferenceSet = Shapes::ListShape.new(name: 'PerformanceFactorReferenceSet')
    PerformanceFactorReferenceSetRequest = Shapes::ListShape.new(name: 'PerformanceFactorReferenceSetRequest')
    PeriodType = Shapes::StringShape.new(name: 'PeriodType')
    PermissionGroup = Shapes::StringShape.new(name: 'PermissionGroup')
    Phase1DHGroupNumbersList = Shapes::ListShape.new(name: 'Phase1DHGroupNumbersList')
    Phase1DHGroupNumbersListValue = Shapes::StructureShape.new(name: 'Phase1DHGroupNumbersListValue')
    Phase1DHGroupNumbersRequestList = Shapes::ListShape.new(name: 'Phase1DHGroupNumbersRequestList')
    Phase1DHGroupNumbersRequestListValue = Shapes::StructureShape.new(name: 'Phase1DHGroupNumbersRequestListValue')
    Phase1EncryptionAlgorithmsList = Shapes::ListShape.new(name: 'Phase1EncryptionAlgorithmsList')
    Phase1EncryptionAlgorithmsListValue = Shapes::StructureShape.new(name: 'Phase1EncryptionAlgorithmsListValue')
    Phase1EncryptionAlgorithmsRequestList = Shapes::ListShape.new(name: 'Phase1EncryptionAlgorithmsRequestList')
    Phase1EncryptionAlgorithmsRequestListValue = Shapes::StructureShape.new(name: 'Phase1EncryptionAlgorithmsRequestListValue')
    Phase1IntegrityAlgorithmsList = Shapes::ListShape.new(name: 'Phase1IntegrityAlgorithmsList')
    Phase1IntegrityAlgorithmsListValue = Shapes::StructureShape.new(name: 'Phase1IntegrityAlgorithmsListValue')
    Phase1IntegrityAlgorithmsRequestList = Shapes::ListShape.new(name: 'Phase1IntegrityAlgorithmsRequestList')
    Phase1IntegrityAlgorithmsRequestListValue = Shapes::StructureShape.new(name: 'Phase1IntegrityAlgorithmsRequestListValue')
    Phase2DHGroupNumbersList = Shapes::ListShape.new(name: 'Phase2DHGroupNumbersList')
    Phase2DHGroupNumbersListValue = Shapes::StructureShape.new(name: 'Phase2DHGroupNumbersListValue')
    Phase2DHGroupNumbersRequestList = Shapes::ListShape.new(name: 'Phase2DHGroupNumbersRequestList')
    Phase2DHGroupNumbersRequestListValue = Shapes::StructureShape.new(name: 'Phase2DHGroupNumbersRequestListValue')
    Phase2EncryptionAlgorithmsList = Shapes::ListShape.new(name: 'Phase2EncryptionAlgorithmsList')
    Phase2EncryptionAlgorithmsListValue = Shapes::StructureShape.new(name: 'Phase2EncryptionAlgorithmsListValue')
    Phase2EncryptionAlgorithmsRequestList = Shapes::ListShape.new(name: 'Phase2EncryptionAlgorithmsRequestList')
    Phase2EncryptionAlgorithmsRequestListValue = Shapes::StructureShape.new(name: 'Phase2EncryptionAlgorithmsRequestListValue')
    Phase2IntegrityAlgorithmsList = Shapes::ListShape.new(name: 'Phase2IntegrityAlgorithmsList')
    Phase2IntegrityAlgorithmsListValue = Shapes::StructureShape.new(name: 'Phase2IntegrityAlgorithmsListValue')
    Phase2IntegrityAlgorithmsRequestList = Shapes::ListShape.new(name: 'Phase2IntegrityAlgorithmsRequestList')
    Phase2IntegrityAlgorithmsRequestListValue = Shapes::StructureShape.new(name: 'Phase2IntegrityAlgorithmsRequestListValue')
    PhcSupport = Shapes::StringShape.new(name: 'PhcSupport')
    Placement = Shapes::StructureShape.new(name: 'Placement')
    PlacementGroup = Shapes::StructureShape.new(name: 'PlacementGroup')
    PlacementGroupArn = Shapes::StringShape.new(name: 'PlacementGroupArn')
    PlacementGroupId = Shapes::StringShape.new(name: 'PlacementGroupId')
    PlacementGroupIdStringList = Shapes::ListShape.new(name: 'PlacementGroupIdStringList')
    PlacementGroupInfo = Shapes::StructureShape.new(name: 'PlacementGroupInfo')
    PlacementGroupList = Shapes::ListShape.new(name: 'PlacementGroupList')
    PlacementGroupName = Shapes::StringShape.new(name: 'PlacementGroupName')
    PlacementGroupState = Shapes::StringShape.new(name: 'PlacementGroupState')
    PlacementGroupStrategy = Shapes::StringShape.new(name: 'PlacementGroupStrategy')
    PlacementGroupStrategyList = Shapes::ListShape.new(name: 'PlacementGroupStrategyList')
    PlacementGroupStringList = Shapes::ListShape.new(name: 'PlacementGroupStringList')
    PlacementResponse = Shapes::StructureShape.new(name: 'PlacementResponse')
    PlacementStrategy = Shapes::StringShape.new(name: 'PlacementStrategy')
    PlatformValues = Shapes::StringShape.new(name: 'PlatformValues')
    PoolCidrBlock = Shapes::StructureShape.new(name: 'PoolCidrBlock')
    PoolCidrBlocksSet = Shapes::ListShape.new(name: 'PoolCidrBlocksSet')
    PoolMaxResults = Shapes::IntegerShape.new(name: 'PoolMaxResults')
    Port = Shapes::IntegerShape.new(name: 'Port')
    PortRange = Shapes::StructureShape.new(name: 'PortRange')
    PortRangeList = Shapes::ListShape.new(name: 'PortRangeList')
    PrefixList = Shapes::StructureShape.new(name: 'PrefixList')
    PrefixListAssociation = Shapes::StructureShape.new(name: 'PrefixListAssociation')
    PrefixListAssociationSet = Shapes::ListShape.new(name: 'PrefixListAssociationSet')
    PrefixListEntry = Shapes::StructureShape.new(name: 'PrefixListEntry')
    PrefixListEntrySet = Shapes::ListShape.new(name: 'PrefixListEntrySet')
    PrefixListId = Shapes::StructureShape.new(name: 'PrefixListId')
    PrefixListIdList = Shapes::ListShape.new(name: 'PrefixListIdList')
    PrefixListIdSet = Shapes::ListShape.new(name: 'PrefixListIdSet')
    PrefixListMaxResults = Shapes::IntegerShape.new(name: 'PrefixListMaxResults')
    PrefixListResourceId = Shapes::StringShape.new(name: 'PrefixListResourceId')
    PrefixListResourceIdStringList = Shapes::ListShape.new(name: 'PrefixListResourceIdStringList')
    PrefixListSet = Shapes::ListShape.new(name: 'PrefixListSet')
    PrefixListState = Shapes::StringShape.new(name: 'PrefixListState')
    PriceSchedule = Shapes::StructureShape.new(name: 'PriceSchedule')
    PriceScheduleList = Shapes::ListShape.new(name: 'PriceScheduleList')
    PriceScheduleSpecification = Shapes::StructureShape.new(name: 'PriceScheduleSpecification')
    PriceScheduleSpecificationList = Shapes::ListShape.new(name: 'PriceScheduleSpecificationList')
    PricingDetail = Shapes::StructureShape.new(name: 'PricingDetail')
    PricingDetailsList = Shapes::ListShape.new(name: 'PricingDetailsList')
    PrincipalIdFormat = Shapes::StructureShape.new(name: 'PrincipalIdFormat')
    PrincipalIdFormatList = Shapes::ListShape.new(name: 'PrincipalIdFormatList')
    PrincipalType = Shapes::StringShape.new(name: 'PrincipalType')
    Priority = Shapes::IntegerShape.new(name: 'Priority')
    PrivateDnsDetails = Shapes::StructureShape.new(name: 'PrivateDnsDetails')
    PrivateDnsDetailsSet = Shapes::ListShape.new(name: 'PrivateDnsDetailsSet')
    PrivateDnsNameConfiguration = Shapes::StructureShape.new(name: 'PrivateDnsNameConfiguration')
    PrivateDnsNameOptionsOnLaunch = Shapes::StructureShape.new(name: 'PrivateDnsNameOptionsOnLaunch')
    PrivateDnsNameOptionsRequest = Shapes::StructureShape.new(name: 'PrivateDnsNameOptionsRequest')
    PrivateDnsNameOptionsResponse = Shapes::StructureShape.new(name: 'PrivateDnsNameOptionsResponse')
    PrivateIpAddressConfigSet = Shapes::ListShape.new(name: 'PrivateIpAddressConfigSet')
    PrivateIpAddressCount = Shapes::IntegerShape.new(name: 'PrivateIpAddressCount')
    PrivateIpAddressSpecification = Shapes::StructureShape.new(name: 'PrivateIpAddressSpecification')
    PrivateIpAddressSpecificationList = Shapes::ListShape.new(name: 'PrivateIpAddressSpecificationList')
    PrivateIpAddressStringList = Shapes::ListShape.new(name: 'PrivateIpAddressStringList')
    ProcessorInfo = Shapes::StructureShape.new(name: 'ProcessorInfo')
    ProcessorSustainedClockSpeed = Shapes::FloatShape.new(name: 'ProcessorSustainedClockSpeed')
    ProductCode = Shapes::StructureShape.new(name: 'ProductCode')
    ProductCodeList = Shapes::ListShape.new(name: 'ProductCodeList')
    ProductCodeStringList = Shapes::ListShape.new(name: 'ProductCodeStringList')
    ProductCodeValues = Shapes::StringShape.new(name: 'ProductCodeValues')
    ProductDescriptionList = Shapes::ListShape.new(name: 'ProductDescriptionList')
    PropagatingVgw = Shapes::StructureShape.new(name: 'PropagatingVgw')
    PropagatingVgwList = Shapes::ListShape.new(name: 'PropagatingVgwList')
    Protocol = Shapes::StringShape.new(name: 'Protocol')
    ProtocolInt = Shapes::IntegerShape.new(name: 'ProtocolInt')
    ProtocolIntList = Shapes::ListShape.new(name: 'ProtocolIntList')
    ProtocolList = Shapes::ListShape.new(name: 'ProtocolList')
    ProtocolValue = Shapes::StringShape.new(name: 'ProtocolValue')
    ProvisionByoipCidrRequest = Shapes::StructureShape.new(name: 'ProvisionByoipCidrRequest')
    ProvisionByoipCidrResult = Shapes::StructureShape.new(name: 'ProvisionByoipCidrResult')
    ProvisionIpamByoasnRequest = Shapes::StructureShape.new(name: 'ProvisionIpamByoasnRequest')
    ProvisionIpamByoasnResult = Shapes::StructureShape.new(name: 'ProvisionIpamByoasnResult')
    ProvisionIpamPoolCidrRequest = Shapes::StructureShape.new(name: 'ProvisionIpamPoolCidrRequest')
    ProvisionIpamPoolCidrResult = Shapes::StructureShape.new(name: 'ProvisionIpamPoolCidrResult')
    ProvisionPublicIpv4PoolCidrRequest = Shapes::StructureShape.new(name: 'ProvisionPublicIpv4PoolCidrRequest')
    ProvisionPublicIpv4PoolCidrResult = Shapes::StructureShape.new(name: 'ProvisionPublicIpv4PoolCidrResult')
    ProvisionedBandwidth = Shapes::StructureShape.new(name: 'ProvisionedBandwidth')
    PtrUpdateStatus = Shapes::StructureShape.new(name: 'PtrUpdateStatus')
    PublicIpAddress = Shapes::StringShape.new(name: 'PublicIpAddress')
    PublicIpStringList = Shapes::ListShape.new(name: 'PublicIpStringList')
    PublicIpv4Pool = Shapes::StructureShape.new(name: 'PublicIpv4Pool')
    PublicIpv4PoolIdStringList = Shapes::ListShape.new(name: 'PublicIpv4PoolIdStringList')
    PublicIpv4PoolRange = Shapes::StructureShape.new(name: 'PublicIpv4PoolRange')
    PublicIpv4PoolRangeSet = Shapes::ListShape.new(name: 'PublicIpv4PoolRangeSet')
    PublicIpv4PoolSet = Shapes::ListShape.new(name: 'PublicIpv4PoolSet')
    Purchase = Shapes::StructureShape.new(name: 'Purchase')
    PurchaseCapacityBlockExtensionRequest = Shapes::StructureShape.new(name: 'PurchaseCapacityBlockExtensionRequest')
    PurchaseCapacityBlockExtensionResult = Shapes::StructureShape.new(name: 'PurchaseCapacityBlockExtensionResult')
    PurchaseCapacityBlockRequest = Shapes::StructureShape.new(name: 'PurchaseCapacityBlockRequest')
    PurchaseCapacityBlockResult = Shapes::StructureShape.new(name: 'PurchaseCapacityBlockResult')
    PurchaseHostReservationRequest = Shapes::StructureShape.new(name: 'PurchaseHostReservationRequest')
    PurchaseHostReservationResult = Shapes::StructureShape.new(name: 'PurchaseHostReservationResult')
    PurchaseRequest = Shapes::StructureShape.new(name: 'PurchaseRequest')
    PurchaseRequestSet = Shapes::ListShape.new(name: 'PurchaseRequestSet')
    PurchaseReservedInstancesOfferingRequest = Shapes::StructureShape.new(name: 'PurchaseReservedInstancesOfferingRequest')
    PurchaseReservedInstancesOfferingResult = Shapes::StructureShape.new(name: 'PurchaseReservedInstancesOfferingResult')
    PurchaseScheduledInstancesRequest = Shapes::StructureShape.new(name: 'PurchaseScheduledInstancesRequest')
    PurchaseScheduledInstancesResult = Shapes::StructureShape.new(name: 'PurchaseScheduledInstancesResult')
    PurchaseSet = Shapes::ListShape.new(name: 'PurchaseSet')
    PurchasedScheduledInstanceSet = Shapes::ListShape.new(name: 'PurchasedScheduledInstanceSet')
    RIProductDescription = Shapes::StringShape.new(name: 'RIProductDescription')
    RamdiskId = Shapes::StringShape.new(name: 'RamdiskId')
    RdsDbClusterArn = Shapes::StringShape.new(name: 'RdsDbClusterArn')
    RdsDbInstanceArn = Shapes::StringShape.new(name: 'RdsDbInstanceArn')
    RdsDbProxyArn = Shapes::StringShape.new(name: 'RdsDbProxyArn')
    ReasonCodesList = Shapes::ListShape.new(name: 'ReasonCodesList')
    RebootInstancesRequest = Shapes::StructureShape.new(name: 'RebootInstancesRequest')
    RecurringCharge = Shapes::StructureShape.new(name: 'RecurringCharge')
    RecurringChargeFrequency = Shapes::StringShape.new(name: 'RecurringChargeFrequency')
    RecurringChargesList = Shapes::ListShape.new(name: 'RecurringChargesList')
    ReferencedSecurityGroup = Shapes::StructureShape.new(name: 'ReferencedSecurityGroup')
    Region = Shapes::StructureShape.new(name: 'Region')
    RegionList = Shapes::ListShape.new(name: 'RegionList')
    RegionNameStringList = Shapes::ListShape.new(name: 'RegionNameStringList')
    RegionNames = Shapes::ListShape.new(name: 'RegionNames')
    RegionalSummary = Shapes::StructureShape.new(name: 'RegionalSummary')
    RegionalSummaryList = Shapes::ListShape.new(name: 'RegionalSummaryList')
    RegisterImageRequest = Shapes::StructureShape.new(name: 'RegisterImageRequest')
    RegisterImageResult = Shapes::StructureShape.new(name: 'RegisterImageResult')
    RegisterInstanceEventNotificationAttributesRequest = Shapes::StructureShape.new(name: 'RegisterInstanceEventNotificationAttributesRequest')
    RegisterInstanceEventNotificationAttributesResult = Shapes::StructureShape.new(name: 'RegisterInstanceEventNotificationAttributesResult')
    RegisterInstanceTagAttributeRequest = Shapes::StructureShape.new(name: 'RegisterInstanceTagAttributeRequest')
    RegisterTransitGatewayMulticastGroupMembersRequest = Shapes::StructureShape.new(name: 'RegisterTransitGatewayMulticastGroupMembersRequest')
    RegisterTransitGatewayMulticastGroupMembersResult = Shapes::StructureShape.new(name: 'RegisterTransitGatewayMulticastGroupMembersResult')
    RegisterTransitGatewayMulticastGroupSourcesRequest = Shapes::StructureShape.new(name: 'RegisterTransitGatewayMulticastGroupSourcesRequest')
    RegisterTransitGatewayMulticastGroupSourcesResult = Shapes::StructureShape.new(name: 'RegisterTransitGatewayMulticastGroupSourcesResult')
    RejectCapacityReservationBillingOwnershipRequest = Shapes::StructureShape.new(name: 'RejectCapacityReservationBillingOwnershipRequest')
    RejectCapacityReservationBillingOwnershipResult = Shapes::StructureShape.new(name: 'RejectCapacityReservationBillingOwnershipResult')
    RejectTransitGatewayMulticastDomainAssociationsRequest = Shapes::StructureShape.new(name: 'RejectTransitGatewayMulticastDomainAssociationsRequest')
    RejectTransitGatewayMulticastDomainAssociationsResult = Shapes::StructureShape.new(name: 'RejectTransitGatewayMulticastDomainAssociationsResult')
    RejectTransitGatewayPeeringAttachmentRequest = Shapes::StructureShape.new(name: 'RejectTransitGatewayPeeringAttachmentRequest')
    RejectTransitGatewayPeeringAttachmentResult = Shapes::StructureShape.new(name: 'RejectTransitGatewayPeeringAttachmentResult')
    RejectTransitGatewayVpcAttachmentRequest = Shapes::StructureShape.new(name: 'RejectTransitGatewayVpcAttachmentRequest')
    RejectTransitGatewayVpcAttachmentResult = Shapes::StructureShape.new(name: 'RejectTransitGatewayVpcAttachmentResult')
    RejectVpcEndpointConnectionsRequest = Shapes::StructureShape.new(name: 'RejectVpcEndpointConnectionsRequest')
    RejectVpcEndpointConnectionsResult = Shapes::StructureShape.new(name: 'RejectVpcEndpointConnectionsResult')
    RejectVpcPeeringConnectionRequest = Shapes::StructureShape.new(name: 'RejectVpcPeeringConnectionRequest')
    RejectVpcPeeringConnectionResult = Shapes::StructureShape.new(name: 'RejectVpcPeeringConnectionResult')
    ReleaseAddressRequest = Shapes::StructureShape.new(name: 'ReleaseAddressRequest')
    ReleaseHostsRequest = Shapes::StructureShape.new(name: 'ReleaseHostsRequest')
    ReleaseHostsResult = Shapes::StructureShape.new(name: 'ReleaseHostsResult')
    ReleaseIpamPoolAllocationRequest = Shapes::StructureShape.new(name: 'ReleaseIpamPoolAllocationRequest')
    ReleaseIpamPoolAllocationResult = Shapes::StructureShape.new(name: 'ReleaseIpamPoolAllocationResult')
    RemoveIpamOperatingRegion = Shapes::StructureShape.new(name: 'RemoveIpamOperatingRegion')
    RemoveIpamOperatingRegionSet = Shapes::ListShape.new(name: 'RemoveIpamOperatingRegionSet')
    RemoveIpamOrganizationalUnitExclusion = Shapes::StructureShape.new(name: 'RemoveIpamOrganizationalUnitExclusion')
    RemoveIpamOrganizationalUnitExclusionSet = Shapes::ListShape.new(name: 'RemoveIpamOrganizationalUnitExclusionSet')
    RemovePrefixListEntries = Shapes::ListShape.new(name: 'RemovePrefixListEntries')
    RemovePrefixListEntry = Shapes::StructureShape.new(name: 'RemovePrefixListEntry')
    ReplaceIamInstanceProfileAssociationRequest = Shapes::StructureShape.new(name: 'ReplaceIamInstanceProfileAssociationRequest')
    ReplaceIamInstanceProfileAssociationResult = Shapes::StructureShape.new(name: 'ReplaceIamInstanceProfileAssociationResult')
    ReplaceImageCriteriaInAllowedImagesSettingsRequest = Shapes::StructureShape.new(name: 'ReplaceImageCriteriaInAllowedImagesSettingsRequest')
    ReplaceImageCriteriaInAllowedImagesSettingsResult = Shapes::StructureShape.new(name: 'ReplaceImageCriteriaInAllowedImagesSettingsResult')
    ReplaceNetworkAclAssociationRequest = Shapes::StructureShape.new(name: 'ReplaceNetworkAclAssociationRequest')
    ReplaceNetworkAclAssociationResult = Shapes::StructureShape.new(name: 'ReplaceNetworkAclAssociationResult')
    ReplaceNetworkAclEntryRequest = Shapes::StructureShape.new(name: 'ReplaceNetworkAclEntryRequest')
    ReplaceRootVolumeTask = Shapes::StructureShape.new(name: 'ReplaceRootVolumeTask')
    ReplaceRootVolumeTaskId = Shapes::StringShape.new(name: 'ReplaceRootVolumeTaskId')
    ReplaceRootVolumeTaskIds = Shapes::ListShape.new(name: 'ReplaceRootVolumeTaskIds')
    ReplaceRootVolumeTaskState = Shapes::StringShape.new(name: 'ReplaceRootVolumeTaskState')
    ReplaceRootVolumeTasks = Shapes::ListShape.new(name: 'ReplaceRootVolumeTasks')
    ReplaceRouteRequest = Shapes::StructureShape.new(name: 'ReplaceRouteRequest')
    ReplaceRouteTableAssociationRequest = Shapes::StructureShape.new(name: 'ReplaceRouteTableAssociationRequest')
    ReplaceRouteTableAssociationResult = Shapes::StructureShape.new(name: 'ReplaceRouteTableAssociationResult')
    ReplaceTransitGatewayRouteRequest = Shapes::StructureShape.new(name: 'ReplaceTransitGatewayRouteRequest')
    ReplaceTransitGatewayRouteResult = Shapes::StructureShape.new(name: 'ReplaceTransitGatewayRouteResult')
    ReplaceVpnTunnelRequest = Shapes::StructureShape.new(name: 'ReplaceVpnTunnelRequest')
    ReplaceVpnTunnelResult = Shapes::StructureShape.new(name: 'ReplaceVpnTunnelResult')
    ReplacementStrategy = Shapes::StringShape.new(name: 'ReplacementStrategy')
    ReportInstanceReasonCodes = Shapes::StringShape.new(name: 'ReportInstanceReasonCodes')
    ReportInstanceStatusRequest = Shapes::StructureShape.new(name: 'ReportInstanceStatusRequest')
    ReportInstanceStatusRequestDescription = Shapes::StringShape.new(name: 'ReportInstanceStatusRequestDescription')
    ReportState = Shapes::StringShape.new(name: 'ReportState')
    ReportStatusType = Shapes::StringShape.new(name: 'ReportStatusType')
    RequestFilterPortRange = Shapes::StructureShape.new(name: 'RequestFilterPortRange')
    RequestHostIdList = Shapes::ListShape.new(name: 'RequestHostIdList')
    RequestHostIdSet = Shapes::ListShape.new(name: 'RequestHostIdSet')
    RequestInstanceTypeList = Shapes::ListShape.new(name: 'RequestInstanceTypeList', locationName: "InstanceType")
    RequestIpamResourceTag = Shapes::StructureShape.new(name: 'RequestIpamResourceTag')
    RequestIpamResourceTagList = Shapes::ListShape.new(name: 'RequestIpamResourceTagList')
    RequestLaunchTemplateData = Shapes::StructureShape.new(name: 'RequestLaunchTemplateData')
    RequestSpotFleetRequest = Shapes::StructureShape.new(name: 'RequestSpotFleetRequest')
    RequestSpotFleetResponse = Shapes::StructureShape.new(name: 'RequestSpotFleetResponse')
    RequestSpotInstancesRequest = Shapes::StructureShape.new(name: 'RequestSpotInstancesRequest')
    RequestSpotInstancesResult = Shapes::StructureShape.new(name: 'RequestSpotInstancesResult')
    RequestSpotLaunchSpecification = Shapes::StructureShape.new(name: 'RequestSpotLaunchSpecification')
    RequestSpotLaunchSpecificationSecurityGroupIdList = Shapes::ListShape.new(name: 'RequestSpotLaunchSpecificationSecurityGroupIdList')
    RequestSpotLaunchSpecificationSecurityGroupList = Shapes::ListShape.new(name: 'RequestSpotLaunchSpecificationSecurityGroupList')
    Reservation = Shapes::StructureShape.new(name: 'Reservation')
    ReservationFleetInstanceSpecification = Shapes::StructureShape.new(name: 'ReservationFleetInstanceSpecification')
    ReservationFleetInstanceSpecificationList = Shapes::ListShape.new(name: 'ReservationFleetInstanceSpecificationList')
    ReservationId = Shapes::StringShape.new(name: 'ReservationId')
    ReservationList = Shapes::ListShape.new(name: 'ReservationList')
    ReservationState = Shapes::StringShape.new(name: 'ReservationState')
    ReservationValue = Shapes::StructureShape.new(name: 'ReservationValue')
    ReservedInstanceIdSet = Shapes::ListShape.new(name: 'ReservedInstanceIdSet')
    ReservedInstanceLimitPrice = Shapes::StructureShape.new(name: 'ReservedInstanceLimitPrice')
    ReservedInstanceReservationValue = Shapes::StructureShape.new(name: 'ReservedInstanceReservationValue')
    ReservedInstanceReservationValueSet = Shapes::ListShape.new(name: 'ReservedInstanceReservationValueSet')
    ReservedInstanceState = Shapes::StringShape.new(name: 'ReservedInstanceState')
    ReservedInstances = Shapes::StructureShape.new(name: 'ReservedInstances')
    ReservedInstancesConfiguration = Shapes::StructureShape.new(name: 'ReservedInstancesConfiguration')
    ReservedInstancesConfigurationList = Shapes::ListShape.new(name: 'ReservedInstancesConfigurationList')
    ReservedInstancesId = Shapes::StructureShape.new(name: 'ReservedInstancesId')
    ReservedInstancesIdStringList = Shapes::ListShape.new(name: 'ReservedInstancesIdStringList')
    ReservedInstancesList = Shapes::ListShape.new(name: 'ReservedInstancesList')
    ReservedInstancesListing = Shapes::StructureShape.new(name: 'ReservedInstancesListing')
    ReservedInstancesListingId = Shapes::StringShape.new(name: 'ReservedInstancesListingId')
    ReservedInstancesListingList = Shapes::ListShape.new(name: 'ReservedInstancesListingList')
    ReservedInstancesModification = Shapes::StructureShape.new(name: 'ReservedInstancesModification')
    ReservedInstancesModificationId = Shapes::StringShape.new(name: 'ReservedInstancesModificationId')
    ReservedInstancesModificationIdStringList = Shapes::ListShape.new(name: 'ReservedInstancesModificationIdStringList')
    ReservedInstancesModificationList = Shapes::ListShape.new(name: 'ReservedInstancesModificationList')
    ReservedInstancesModificationResult = Shapes::StructureShape.new(name: 'ReservedInstancesModificationResult')
    ReservedInstancesModificationResultList = Shapes::ListShape.new(name: 'ReservedInstancesModificationResultList')
    ReservedInstancesOffering = Shapes::StructureShape.new(name: 'ReservedInstancesOffering')
    ReservedInstancesOfferingId = Shapes::StringShape.new(name: 'ReservedInstancesOfferingId')
    ReservedInstancesOfferingIdStringList = Shapes::ListShape.new(name: 'ReservedInstancesOfferingIdStringList')
    ReservedInstancesOfferingList = Shapes::ListShape.new(name: 'ReservedInstancesOfferingList')
    ReservedIntancesIds = Shapes::ListShape.new(name: 'ReservedIntancesIds')
    ResetAddressAttributeRequest = Shapes::StructureShape.new(name: 'ResetAddressAttributeRequest')
    ResetAddressAttributeResult = Shapes::StructureShape.new(name: 'ResetAddressAttributeResult')
    ResetEbsDefaultKmsKeyIdRequest = Shapes::StructureShape.new(name: 'ResetEbsDefaultKmsKeyIdRequest')
    ResetEbsDefaultKmsKeyIdResult = Shapes::StructureShape.new(name: 'ResetEbsDefaultKmsKeyIdResult')
    ResetFpgaImageAttributeName = Shapes::StringShape.new(name: 'ResetFpgaImageAttributeName')
    ResetFpgaImageAttributeRequest = Shapes::StructureShape.new(name: 'ResetFpgaImageAttributeRequest')
    ResetFpgaImageAttributeResult = Shapes::StructureShape.new(name: 'ResetFpgaImageAttributeResult')
    ResetImageAttributeName = Shapes::StringShape.new(name: 'ResetImageAttributeName')
    ResetImageAttributeRequest = Shapes::StructureShape.new(name: 'ResetImageAttributeRequest')
    ResetInstanceAttributeRequest = Shapes::StructureShape.new(name: 'ResetInstanceAttributeRequest')
    ResetNetworkInterfaceAttributeRequest = Shapes::StructureShape.new(name: 'ResetNetworkInterfaceAttributeRequest')
    ResetSnapshotAttributeRequest = Shapes::StructureShape.new(name: 'ResetSnapshotAttributeRequest')
    ResourceArn = Shapes::StringShape.new(name: 'ResourceArn')
    ResourceConfigurationArn = Shapes::StringShape.new(name: 'ResourceConfigurationArn')
    ResourceIdList = Shapes::ListShape.new(name: 'ResourceIdList')
    ResourceList = Shapes::ListShape.new(name: 'ResourceList')
    ResourceStatement = Shapes::StructureShape.new(name: 'ResourceStatement')
    ResourceStatementRequest = Shapes::StructureShape.new(name: 'ResourceStatementRequest')
    ResourceType = Shapes::StringShape.new(name: 'ResourceType')
    ResponseError = Shapes::StructureShape.new(name: 'ResponseError')
    ResponseHostIdList = Shapes::ListShape.new(name: 'ResponseHostIdList')
    ResponseHostIdSet = Shapes::ListShape.new(name: 'ResponseHostIdSet')
    ResponseLaunchTemplateData = Shapes::StructureShape.new(name: 'ResponseLaunchTemplateData')
    RestorableByStringList = Shapes::ListShape.new(name: 'RestorableByStringList')
    RestoreAddressToClassicRequest = Shapes::StructureShape.new(name: 'RestoreAddressToClassicRequest')
    RestoreAddressToClassicResult = Shapes::StructureShape.new(name: 'RestoreAddressToClassicResult')
    RestoreImageFromRecycleBinRequest = Shapes::StructureShape.new(name: 'RestoreImageFromRecycleBinRequest')
    RestoreImageFromRecycleBinResult = Shapes::StructureShape.new(name: 'RestoreImageFromRecycleBinResult')
    RestoreManagedPrefixListVersionRequest = Shapes::StructureShape.new(name: 'RestoreManagedPrefixListVersionRequest')
    RestoreManagedPrefixListVersionResult = Shapes::StructureShape.new(name: 'RestoreManagedPrefixListVersionResult')
    RestoreSnapshotFromRecycleBinRequest = Shapes::StructureShape.new(name: 'RestoreSnapshotFromRecycleBinRequest')
    RestoreSnapshotFromRecycleBinResult = Shapes::StructureShape.new(name: 'RestoreSnapshotFromRecycleBinResult')
    RestoreSnapshotTierRequest = Shapes::StructureShape.new(name: 'RestoreSnapshotTierRequest')
    RestoreSnapshotTierRequestTemporaryRestoreDays = Shapes::IntegerShape.new(name: 'RestoreSnapshotTierRequestTemporaryRestoreDays')
    RestoreSnapshotTierResult = Shapes::StructureShape.new(name: 'RestoreSnapshotTierResult')
    ResultRange = Shapes::IntegerShape.new(name: 'ResultRange')
    RetentionPeriodRequestDays = Shapes::IntegerShape.new(name: 'RetentionPeriodRequestDays')
    RetentionPeriodResponseDays = Shapes::IntegerShape.new(name: 'RetentionPeriodResponseDays')
    RevokeClientVpnIngressRequest = Shapes::StructureShape.new(name: 'RevokeClientVpnIngressRequest')
    RevokeClientVpnIngressResult = Shapes::StructureShape.new(name: 'RevokeClientVpnIngressResult')
    RevokeSecurityGroupEgressRequest = Shapes::StructureShape.new(name: 'RevokeSecurityGroupEgressRequest')
    RevokeSecurityGroupEgressResult = Shapes::StructureShape.new(name: 'RevokeSecurityGroupEgressResult')
    RevokeSecurityGroupIngressRequest = Shapes::StructureShape.new(name: 'RevokeSecurityGroupIngressRequest')
    RevokeSecurityGroupIngressResult = Shapes::StructureShape.new(name: 'RevokeSecurityGroupIngressResult')
    RevokedSecurityGroupRule = Shapes::StructureShape.new(name: 'RevokedSecurityGroupRule')
    RevokedSecurityGroupRuleList = Shapes::ListShape.new(name: 'RevokedSecurityGroupRuleList')
    RoleId = Shapes::StringShape.new(name: 'RoleId')
    RootDeviceType = Shapes::StringShape.new(name: 'RootDeviceType')
    RootDeviceTypeList = Shapes::ListShape.new(name: 'RootDeviceTypeList')
    Route = Shapes::StructureShape.new(name: 'Route')
    RouteGatewayId = Shapes::StringShape.new(name: 'RouteGatewayId')
    RouteList = Shapes::ListShape.new(name: 'RouteList')
    RouteOrigin = Shapes::StringShape.new(name: 'RouteOrigin')
    RouteState = Shapes::StringShape.new(name: 'RouteState')
    RouteTable = Shapes::StructureShape.new(name: 'RouteTable')
    RouteTableAssociation = Shapes::StructureShape.new(name: 'RouteTableAssociation')
    RouteTableAssociationId = Shapes::StringShape.new(name: 'RouteTableAssociationId')
    RouteTableAssociationList = Shapes::ListShape.new(name: 'RouteTableAssociationList')
    RouteTableAssociationState = Shapes::StructureShape.new(name: 'RouteTableAssociationState')
    RouteTableAssociationStateCode = Shapes::StringShape.new(name: 'RouteTableAssociationStateCode')
    RouteTableId = Shapes::StringShape.new(name: 'RouteTableId')
    RouteTableIdStringList = Shapes::ListShape.new(name: 'RouteTableIdStringList')
    RouteTableList = Shapes::ListShape.new(name: 'RouteTableList')
    RuleAction = Shapes::StringShape.new(name: 'RuleAction')
    RuleGroupRuleOptionsPair = Shapes::StructureShape.new(name: 'RuleGroupRuleOptionsPair')
    RuleGroupRuleOptionsPairList = Shapes::ListShape.new(name: 'RuleGroupRuleOptionsPairList')
    RuleGroupTypePair = Shapes::StructureShape.new(name: 'RuleGroupTypePair')
    RuleGroupTypePairList = Shapes::ListShape.new(name: 'RuleGroupTypePairList')
    RuleOption = Shapes::StructureShape.new(name: 'RuleOption')
    RuleOptionList = Shapes::ListShape.new(name: 'RuleOptionList')
    RunInstancesMonitoringEnabled = Shapes::StructureShape.new(name: 'RunInstancesMonitoringEnabled')
    RunInstancesRequest = Shapes::StructureShape.new(name: 'RunInstancesRequest')
    RunInstancesUserData = Shapes::StringShape.new(name: 'RunInstancesUserData')
    RunScheduledInstancesRequest = Shapes::StructureShape.new(name: 'RunScheduledInstancesRequest')
    RunScheduledInstancesResult = Shapes::StructureShape.new(name: 'RunScheduledInstancesResult')
    S3ObjectTag = Shapes::StructureShape.new(name: 'S3ObjectTag')
    S3ObjectTagList = Shapes::ListShape.new(name: 'S3ObjectTagList')
    S3Storage = Shapes::StructureShape.new(name: 'S3Storage')
    S3StorageUploadPolicy = Shapes::StringShape.new(name: 'S3StorageUploadPolicy')
    S3StorageUploadPolicySignature = Shapes::StringShape.new(name: 'S3StorageUploadPolicySignature')
    SSEType = Shapes::StringShape.new(name: 'SSEType')
    ScheduledInstance = Shapes::StructureShape.new(name: 'ScheduledInstance')
    ScheduledInstanceAvailability = Shapes::StructureShape.new(name: 'ScheduledInstanceAvailability')
    ScheduledInstanceAvailabilitySet = Shapes::ListShape.new(name: 'ScheduledInstanceAvailabilitySet')
    ScheduledInstanceId = Shapes::StringShape.new(name: 'ScheduledInstanceId')
    ScheduledInstanceIdRequestSet = Shapes::ListShape.new(name: 'ScheduledInstanceIdRequestSet')
    ScheduledInstanceRecurrence = Shapes::StructureShape.new(name: 'ScheduledInstanceRecurrence')
    ScheduledInstanceRecurrenceRequest = Shapes::StructureShape.new(name: 'ScheduledInstanceRecurrenceRequest')
    ScheduledInstanceSet = Shapes::ListShape.new(name: 'ScheduledInstanceSet')
    ScheduledInstancesBlockDeviceMapping = Shapes::StructureShape.new(name: 'ScheduledInstancesBlockDeviceMapping')
    ScheduledInstancesBlockDeviceMappingSet = Shapes::ListShape.new(name: 'ScheduledInstancesBlockDeviceMappingSet')
    ScheduledInstancesEbs = Shapes::StructureShape.new(name: 'ScheduledInstancesEbs')
    ScheduledInstancesIamInstanceProfile = Shapes::StructureShape.new(name: 'ScheduledInstancesIamInstanceProfile')
    ScheduledInstancesIpv6Address = Shapes::StructureShape.new(name: 'ScheduledInstancesIpv6Address')
    ScheduledInstancesIpv6AddressList = Shapes::ListShape.new(name: 'ScheduledInstancesIpv6AddressList')
    ScheduledInstancesLaunchSpecification = Shapes::StructureShape.new(name: 'ScheduledInstancesLaunchSpecification')
    ScheduledInstancesMonitoring = Shapes::StructureShape.new(name: 'ScheduledInstancesMonitoring')
    ScheduledInstancesNetworkInterface = Shapes::StructureShape.new(name: 'ScheduledInstancesNetworkInterface')
    ScheduledInstancesNetworkInterfaceSet = Shapes::ListShape.new(name: 'ScheduledInstancesNetworkInterfaceSet')
    ScheduledInstancesPlacement = Shapes::StructureShape.new(name: 'ScheduledInstancesPlacement')
    ScheduledInstancesPrivateIpAddressConfig = Shapes::StructureShape.new(name: 'ScheduledInstancesPrivateIpAddressConfig')
    ScheduledInstancesSecurityGroupIdSet = Shapes::ListShape.new(name: 'ScheduledInstancesSecurityGroupIdSet')
    SearchLocalGatewayRoutesRequest = Shapes::StructureShape.new(name: 'SearchLocalGatewayRoutesRequest')
    SearchLocalGatewayRoutesResult = Shapes::StructureShape.new(name: 'SearchLocalGatewayRoutesResult')
    SearchTransitGatewayMulticastGroupsRequest = Shapes::StructureShape.new(name: 'SearchTransitGatewayMulticastGroupsRequest')
    SearchTransitGatewayMulticastGroupsResult = Shapes::StructureShape.new(name: 'SearchTransitGatewayMulticastGroupsResult')
    SearchTransitGatewayRoutesRequest = Shapes::StructureShape.new(name: 'SearchTransitGatewayRoutesRequest')
    SearchTransitGatewayRoutesResult = Shapes::StructureShape.new(name: 'SearchTransitGatewayRoutesResult')
    SecurityGroup = Shapes::StructureShape.new(name: 'SecurityGroup')
    SecurityGroupForVpc = Shapes::StructureShape.new(name: 'SecurityGroupForVpc')
    SecurityGroupForVpcList = Shapes::ListShape.new(name: 'SecurityGroupForVpcList')
    SecurityGroupId = Shapes::StringShape.new(name: 'SecurityGroupId')
    SecurityGroupIdList = Shapes::ListShape.new(name: 'SecurityGroupIdList')
    SecurityGroupIdSet = Shapes::ListShape.new(name: 'SecurityGroupIdSet')
    SecurityGroupIdStringList = Shapes::ListShape.new(name: 'SecurityGroupIdStringList')
    SecurityGroupIdStringListRequest = Shapes::ListShape.new(name: 'SecurityGroupIdStringListRequest')
    SecurityGroupIdentifier = Shapes::StructureShape.new(name: 'SecurityGroupIdentifier')
    SecurityGroupList = Shapes::ListShape.new(name: 'SecurityGroupList')
    SecurityGroupName = Shapes::StringShape.new(name: 'SecurityGroupName')
    SecurityGroupReference = Shapes::StructureShape.new(name: 'SecurityGroupReference')
    SecurityGroupReferences = Shapes::ListShape.new(name: 'SecurityGroupReferences')
    SecurityGroupReferencingSupportValue = Shapes::StringShape.new(name: 'SecurityGroupReferencingSupportValue')
    SecurityGroupRule = Shapes::StructureShape.new(name: 'SecurityGroupRule')
    SecurityGroupRuleDescription = Shapes::StructureShape.new(name: 'SecurityGroupRuleDescription')
    SecurityGroupRuleDescriptionList = Shapes::ListShape.new(name: 'SecurityGroupRuleDescriptionList')
    SecurityGroupRuleId = Shapes::StringShape.new(name: 'SecurityGroupRuleId')
    SecurityGroupRuleIdList = Shapes::ListShape.new(name: 'SecurityGroupRuleIdList')
    SecurityGroupRuleList = Shapes::ListShape.new(name: 'SecurityGroupRuleList')
    SecurityGroupRuleRequest = Shapes::StructureShape.new(name: 'SecurityGroupRuleRequest')
    SecurityGroupRuleUpdate = Shapes::StructureShape.new(name: 'SecurityGroupRuleUpdate')
    SecurityGroupRuleUpdateList = Shapes::ListShape.new(name: 'SecurityGroupRuleUpdateList')
    SecurityGroupStringList = Shapes::ListShape.new(name: 'SecurityGroupStringList')
    SecurityGroupVpcAssociation = Shapes::StructureShape.new(name: 'SecurityGroupVpcAssociation')
    SecurityGroupVpcAssociationList = Shapes::ListShape.new(name: 'SecurityGroupVpcAssociationList')
    SecurityGroupVpcAssociationState = Shapes::StringShape.new(name: 'SecurityGroupVpcAssociationState')
    SelfServicePortal = Shapes::StringShape.new(name: 'SelfServicePortal')
    SendDiagnosticInterruptRequest = Shapes::StructureShape.new(name: 'SendDiagnosticInterruptRequest')
    SensitiveUrl = Shapes::StringShape.new(name: 'SensitiveUrl')
    SensitiveUserData = Shapes::StringShape.new(name: 'SensitiveUserData')
    ServiceConfiguration = Shapes::StructureShape.new(name: 'ServiceConfiguration')
    ServiceConfigurationSet = Shapes::ListShape.new(name: 'ServiceConfigurationSet')
    ServiceConnectivityType = Shapes::StringShape.new(name: 'ServiceConnectivityType')
    ServiceDetail = Shapes::StructureShape.new(name: 'ServiceDetail')
    ServiceDetailSet = Shapes::ListShape.new(name: 'ServiceDetailSet')
    ServiceManaged = Shapes::StringShape.new(name: 'ServiceManaged')
    ServiceNetworkArn = Shapes::StringShape.new(name: 'ServiceNetworkArn')
    ServiceState = Shapes::StringShape.new(name: 'ServiceState')
    ServiceType = Shapes::StringShape.new(name: 'ServiceType')
    ServiceTypeDetail = Shapes::StructureShape.new(name: 'ServiceTypeDetail')
    ServiceTypeDetailSet = Shapes::ListShape.new(name: 'ServiceTypeDetailSet')
    ShutdownBehavior = Shapes::StringShape.new(name: 'ShutdownBehavior')
    SlotDateTimeRangeRequest = Shapes::StructureShape.new(name: 'SlotDateTimeRangeRequest')
    SlotStartTimeRangeRequest = Shapes::StructureShape.new(name: 'SlotStartTimeRangeRequest')
    Snapshot = Shapes::StructureShape.new(name: 'Snapshot')
    SnapshotAttributeName = Shapes::StringShape.new(name: 'SnapshotAttributeName')
    SnapshotBlockPublicAccessState = Shapes::StringShape.new(name: 'SnapshotBlockPublicAccessState')
    SnapshotCompletionDurationMinutesRequest = Shapes::IntegerShape.new(name: 'SnapshotCompletionDurationMinutesRequest')
    SnapshotCompletionDurationMinutesResponse = Shapes::IntegerShape.new(name: 'SnapshotCompletionDurationMinutesResponse')
    SnapshotDetail = Shapes::StructureShape.new(name: 'SnapshotDetail')
    SnapshotDetailList = Shapes::ListShape.new(name: 'SnapshotDetailList')
    SnapshotDiskContainer = Shapes::StructureShape.new(name: 'SnapshotDiskContainer')
    SnapshotId = Shapes::StringShape.new(name: 'SnapshotId')
    SnapshotIdStringList = Shapes::ListShape.new(name: 'SnapshotIdStringList')
    SnapshotInfo = Shapes::StructureShape.new(name: 'SnapshotInfo')
    SnapshotList = Shapes::ListShape.new(name: 'SnapshotList')
    SnapshotLocationEnum = Shapes::StringShape.new(name: 'SnapshotLocationEnum')
    SnapshotRecycleBinInfo = Shapes::StructureShape.new(name: 'SnapshotRecycleBinInfo')
    SnapshotRecycleBinInfoList = Shapes::ListShape.new(name: 'SnapshotRecycleBinInfoList')
    SnapshotSet = Shapes::ListShape.new(name: 'SnapshotSet')
    SnapshotState = Shapes::StringShape.new(name: 'SnapshotState')
    SnapshotTaskDetail = Shapes::StructureShape.new(name: 'SnapshotTaskDetail')
    SnapshotTierStatus = Shapes::StructureShape.new(name: 'SnapshotTierStatus')
    SpotAllocationStrategy = Shapes::StringShape.new(name: 'SpotAllocationStrategy')
    SpotCapacityRebalance = Shapes::StructureShape.new(name: 'SpotCapacityRebalance')
    SpotDatafeedSubscription = Shapes::StructureShape.new(name: 'SpotDatafeedSubscription')
    SpotFleetLaunchSpecification = Shapes::StructureShape.new(name: 'SpotFleetLaunchSpecification')
    SpotFleetMonitoring = Shapes::StructureShape.new(name: 'SpotFleetMonitoring')
    SpotFleetRequestConfig = Shapes::StructureShape.new(name: 'SpotFleetRequestConfig')
    SpotFleetRequestConfigData = Shapes::StructureShape.new(name: 'SpotFleetRequestConfigData')
    SpotFleetRequestConfigSet = Shapes::ListShape.new(name: 'SpotFleetRequestConfigSet')
    SpotFleetRequestId = Shapes::StringShape.new(name: 'SpotFleetRequestId')
    SpotFleetRequestIdList = Shapes::ListShape.new(name: 'SpotFleetRequestIdList')
    SpotFleetTagSpecification = Shapes::StructureShape.new(name: 'SpotFleetTagSpecification')
    SpotFleetTagSpecificationList = Shapes::ListShape.new(name: 'SpotFleetTagSpecificationList')
    SpotInstanceInterruptionBehavior = Shapes::StringShape.new(name: 'SpotInstanceInterruptionBehavior')
    SpotInstanceRequest = Shapes::StructureShape.new(name: 'SpotInstanceRequest')
    SpotInstanceRequestId = Shapes::StringShape.new(name: 'SpotInstanceRequestId')
    SpotInstanceRequestIdList = Shapes::ListShape.new(name: 'SpotInstanceRequestIdList')
    SpotInstanceRequestList = Shapes::ListShape.new(name: 'SpotInstanceRequestList')
    SpotInstanceState = Shapes::StringShape.new(name: 'SpotInstanceState')
    SpotInstanceStateFault = Shapes::StructureShape.new(name: 'SpotInstanceStateFault')
    SpotInstanceStatus = Shapes::StructureShape.new(name: 'SpotInstanceStatus')
    SpotInstanceType = Shapes::StringShape.new(name: 'SpotInstanceType')
    SpotMaintenanceStrategies = Shapes::StructureShape.new(name: 'SpotMaintenanceStrategies')
    SpotMarketOptions = Shapes::StructureShape.new(name: 'SpotMarketOptions')
    SpotOptions = Shapes::StructureShape.new(name: 'SpotOptions')
    SpotOptionsRequest = Shapes::StructureShape.new(name: 'SpotOptionsRequest')
    SpotPlacement = Shapes::StructureShape.new(name: 'SpotPlacement')
    SpotPlacementScore = Shapes::StructureShape.new(name: 'SpotPlacementScore')
    SpotPlacementScores = Shapes::ListShape.new(name: 'SpotPlacementScores')
    SpotPlacementScoresMaxResults = Shapes::IntegerShape.new(name: 'SpotPlacementScoresMaxResults')
    SpotPlacementScoresTargetCapacity = Shapes::IntegerShape.new(name: 'SpotPlacementScoresTargetCapacity')
    SpotPrice = Shapes::StructureShape.new(name: 'SpotPrice')
    SpotPriceHistoryList = Shapes::ListShape.new(name: 'SpotPriceHistoryList')
    SpreadLevel = Shapes::StringShape.new(name: 'SpreadLevel')
    StaleIpPermission = Shapes::StructureShape.new(name: 'StaleIpPermission')
    StaleIpPermissionSet = Shapes::ListShape.new(name: 'StaleIpPermissionSet')
    StaleSecurityGroup = Shapes::StructureShape.new(name: 'StaleSecurityGroup')
    StaleSecurityGroupSet = Shapes::ListShape.new(name: 'StaleSecurityGroupSet')
    StartDeclarativePoliciesReportRequest = Shapes::StructureShape.new(name: 'StartDeclarativePoliciesReportRequest')
    StartDeclarativePoliciesReportResult = Shapes::StructureShape.new(name: 'StartDeclarativePoliciesReportResult')
    StartInstancesRequest = Shapes::StructureShape.new(name: 'StartInstancesRequest')
    StartInstancesResult = Shapes::StructureShape.new(name: 'StartInstancesResult')
    StartNetworkInsightsAccessScopeAnalysisRequest = Shapes::StructureShape.new(name: 'StartNetworkInsightsAccessScopeAnalysisRequest')
    StartNetworkInsightsAccessScopeAnalysisResult = Shapes::StructureShape.new(name: 'StartNetworkInsightsAccessScopeAnalysisResult')
    StartNetworkInsightsAnalysisRequest = Shapes::StructureShape.new(name: 'StartNetworkInsightsAnalysisRequest')
    StartNetworkInsightsAnalysisResult = Shapes::StructureShape.new(name: 'StartNetworkInsightsAnalysisResult')
    StartVpcEndpointServicePrivateDnsVerificationRequest = Shapes::StructureShape.new(name: 'StartVpcEndpointServicePrivateDnsVerificationRequest')
    StartVpcEndpointServicePrivateDnsVerificationResult = Shapes::StructureShape.new(name: 'StartVpcEndpointServicePrivateDnsVerificationResult')
    State = Shapes::StringShape.new(name: 'State')
    StateReason = Shapes::StructureShape.new(name: 'StateReason')
    StaticSourcesSupportValue = Shapes::StringShape.new(name: 'StaticSourcesSupportValue')
    StatisticType = Shapes::StringShape.new(name: 'StatisticType')
    Status = Shapes::StringShape.new(name: 'Status')
    StatusName = Shapes::StringShape.new(name: 'StatusName')
    StatusType = Shapes::StringShape.new(name: 'StatusType')
    StopInstancesRequest = Shapes::StructureShape.new(name: 'StopInstancesRequest')
    StopInstancesResult = Shapes::StructureShape.new(name: 'StopInstancesResult')
    Storage = Shapes::StructureShape.new(name: 'Storage')
    StorageLocation = Shapes::StructureShape.new(name: 'StorageLocation')
    StorageTier = Shapes::StringShape.new(name: 'StorageTier')
    StoreImageTaskResult = Shapes::StructureShape.new(name: 'StoreImageTaskResult')
    StoreImageTaskResultSet = Shapes::ListShape.new(name: 'StoreImageTaskResultSet')
    String = Shapes::StringShape.new(name: 'String')
    StringList = Shapes::ListShape.new(name: 'StringList')
    StringType = Shapes::StringShape.new(name: 'StringType')
    Subnet = Shapes::StructureShape.new(name: 'Subnet')
    SubnetAssociation = Shapes::StructureShape.new(name: 'SubnetAssociation')
    SubnetAssociationList = Shapes::ListShape.new(name: 'SubnetAssociationList')
    SubnetCidrAssociationId = Shapes::StringShape.new(name: 'SubnetCidrAssociationId')
    SubnetCidrBlockState = Shapes::StructureShape.new(name: 'SubnetCidrBlockState')
    SubnetCidrBlockStateCode = Shapes::StringShape.new(name: 'SubnetCidrBlockStateCode')
    SubnetCidrReservation = Shapes::StructureShape.new(name: 'SubnetCidrReservation')
    SubnetCidrReservationId = Shapes::StringShape.new(name: 'SubnetCidrReservationId')
    SubnetCidrReservationList = Shapes::ListShape.new(name: 'SubnetCidrReservationList')
    SubnetCidrReservationType = Shapes::StringShape.new(name: 'SubnetCidrReservationType')
    SubnetConfiguration = Shapes::StructureShape.new(name: 'SubnetConfiguration')
    SubnetConfigurationsList = Shapes::ListShape.new(name: 'SubnetConfigurationsList')
    SubnetId = Shapes::StringShape.new(name: 'SubnetId')
    SubnetIdStringList = Shapes::ListShape.new(name: 'SubnetIdStringList')
    SubnetIpPrefixes = Shapes::StructureShape.new(name: 'SubnetIpPrefixes')
    SubnetIpPrefixesList = Shapes::ListShape.new(name: 'SubnetIpPrefixesList')
    SubnetIpv6CidrBlockAssociation = Shapes::StructureShape.new(name: 'SubnetIpv6CidrBlockAssociation')
    SubnetIpv6CidrBlockAssociationSet = Shapes::ListShape.new(name: 'SubnetIpv6CidrBlockAssociationSet')
    SubnetList = Shapes::ListShape.new(name: 'SubnetList')
    SubnetState = Shapes::StringShape.new(name: 'SubnetState')
    Subscription = Shapes::StructureShape.new(name: 'Subscription')
    SubscriptionList = Shapes::ListShape.new(name: 'SubscriptionList')
    SuccessfulInstanceCreditSpecificationItem = Shapes::StructureShape.new(name: 'SuccessfulInstanceCreditSpecificationItem')
    SuccessfulInstanceCreditSpecificationSet = Shapes::ListShape.new(name: 'SuccessfulInstanceCreditSpecificationSet')
    SuccessfulQueuedPurchaseDeletion = Shapes::StructureShape.new(name: 'SuccessfulQueuedPurchaseDeletion')
    SuccessfulQueuedPurchaseDeletionSet = Shapes::ListShape.new(name: 'SuccessfulQueuedPurchaseDeletionSet')
    SummaryStatus = Shapes::StringShape.new(name: 'SummaryStatus')
    SupportedAdditionalProcessorFeature = Shapes::StringShape.new(name: 'SupportedAdditionalProcessorFeature')
    SupportedAdditionalProcessorFeatureList = Shapes::ListShape.new(name: 'SupportedAdditionalProcessorFeatureList')
    SupportedIpAddressTypes = Shapes::ListShape.new(name: 'SupportedIpAddressTypes')
    SupportedRegionDetail = Shapes::StructureShape.new(name: 'SupportedRegionDetail')
    SupportedRegionSet = Shapes::ListShape.new(name: 'SupportedRegionSet')
    Tag = Shapes::StructureShape.new(name: 'Tag')
    TagDescription = Shapes::StructureShape.new(name: 'TagDescription')
    TagDescriptionList = Shapes::ListShape.new(name: 'TagDescriptionList')
    TagList = Shapes::ListShape.new(name: 'TagList')
    TagSpecification = Shapes::StructureShape.new(name: 'TagSpecification')
    TagSpecificationList = Shapes::ListShape.new(name: 'TagSpecificationList')
    TaggableResourceId = Shapes::StringShape.new(name: 'TaggableResourceId')
    TargetCapacitySpecification = Shapes::StructureShape.new(name: 'TargetCapacitySpecification')
    TargetCapacitySpecificationRequest = Shapes::StructureShape.new(name: 'TargetCapacitySpecificationRequest')
    TargetCapacityUnitType = Shapes::StringShape.new(name: 'TargetCapacityUnitType')
    TargetConfiguration = Shapes::StructureShape.new(name: 'TargetConfiguration')
    TargetConfigurationRequest = Shapes::StructureShape.new(name: 'TargetConfigurationRequest')
    TargetConfigurationRequestSet = Shapes::ListShape.new(name: 'TargetConfigurationRequestSet')
    TargetGroup = Shapes::StructureShape.new(name: 'TargetGroup')
    TargetGroups = Shapes::ListShape.new(name: 'TargetGroups')
    TargetGroupsConfig = Shapes::StructureShape.new(name: 'TargetGroupsConfig')
    TargetNetwork = Shapes::StructureShape.new(name: 'TargetNetwork')
    TargetNetworkSet = Shapes::ListShape.new(name: 'TargetNetworkSet')
    TargetReservationValue = Shapes::StructureShape.new(name: 'TargetReservationValue')
    TargetReservationValueSet = Shapes::ListShape.new(name: 'TargetReservationValueSet')
    TargetStorageTier = Shapes::StringShape.new(name: 'TargetStorageTier')
    TelemetryStatus = Shapes::StringShape.new(name: 'TelemetryStatus')
    Tenancy = Shapes::StringShape.new(name: 'Tenancy')
    TerminateClientVpnConnectionsRequest = Shapes::StructureShape.new(name: 'TerminateClientVpnConnectionsRequest')
    TerminateClientVpnConnectionsResult = Shapes::StructureShape.new(name: 'TerminateClientVpnConnectionsResult')
    TerminateConnectionStatus = Shapes::StructureShape.new(name: 'TerminateConnectionStatus')
    TerminateConnectionStatusSet = Shapes::ListShape.new(name: 'TerminateConnectionStatusSet')
    TerminateInstancesRequest = Shapes::StructureShape.new(name: 'TerminateInstancesRequest')
    TerminateInstancesResult = Shapes::StructureShape.new(name: 'TerminateInstancesResult')
    ThreadsPerCore = Shapes::IntegerShape.new(name: 'ThreadsPerCore')
    ThreadsPerCoreList = Shapes::ListShape.new(name: 'ThreadsPerCoreList')
    ThroughResourcesStatement = Shapes::StructureShape.new(name: 'ThroughResourcesStatement')
    ThroughResourcesStatementList = Shapes::ListShape.new(name: 'ThroughResourcesStatementList')
    ThroughResourcesStatementRequest = Shapes::StructureShape.new(name: 'ThroughResourcesStatementRequest')
    ThroughResourcesStatementRequestList = Shapes::ListShape.new(name: 'ThroughResourcesStatementRequestList')
    TieringOperationStatus = Shapes::StringShape.new(name: 'TieringOperationStatus')
    TokenState = Shapes::StringShape.new(name: 'TokenState')
    TotalLocalStorageGB = Shapes::StructureShape.new(name: 'TotalLocalStorageGB')
    TotalLocalStorageGBRequest = Shapes::StructureShape.new(name: 'TotalLocalStorageGBRequest')
    TotalMediaMemory = Shapes::IntegerShape.new(name: 'TotalMediaMemory')
    TotalNeuronMemory = Shapes::IntegerShape.new(name: 'TotalNeuronMemory')
    TpmSupportValues = Shapes::StringShape.new(name: 'TpmSupportValues')
    TrafficDirection = Shapes::StringShape.new(name: 'TrafficDirection')
    TrafficMirrorFilter = Shapes::StructureShape.new(name: 'TrafficMirrorFilter')
    TrafficMirrorFilterId = Shapes::StringShape.new(name: 'TrafficMirrorFilterId')
    TrafficMirrorFilterIdList = Shapes::ListShape.new(name: 'TrafficMirrorFilterIdList')
    TrafficMirrorFilterRule = Shapes::StructureShape.new(name: 'TrafficMirrorFilterRule')
    TrafficMirrorFilterRuleField = Shapes::StringShape.new(name: 'TrafficMirrorFilterRuleField')
    TrafficMirrorFilterRuleFieldList = Shapes::ListShape.new(name: 'TrafficMirrorFilterRuleFieldList')
    TrafficMirrorFilterRuleIdList = Shapes::ListShape.new(name: 'TrafficMirrorFilterRuleIdList')
    TrafficMirrorFilterRuleIdWithResolver = Shapes::StringShape.new(name: 'TrafficMirrorFilterRuleIdWithResolver')
    TrafficMirrorFilterRuleList = Shapes::ListShape.new(name: 'TrafficMirrorFilterRuleList')
    TrafficMirrorFilterRuleSet = Shapes::ListShape.new(name: 'TrafficMirrorFilterRuleSet')
    TrafficMirrorFilterSet = Shapes::ListShape.new(name: 'TrafficMirrorFilterSet')
    TrafficMirrorNetworkService = Shapes::StringShape.new(name: 'TrafficMirrorNetworkService')
    TrafficMirrorNetworkServiceList = Shapes::ListShape.new(name: 'TrafficMirrorNetworkServiceList')
    TrafficMirrorPortRange = Shapes::StructureShape.new(name: 'TrafficMirrorPortRange')
    TrafficMirrorPortRangeRequest = Shapes::StructureShape.new(name: 'TrafficMirrorPortRangeRequest')
    TrafficMirrorRuleAction = Shapes::StringShape.new(name: 'TrafficMirrorRuleAction')
    TrafficMirrorSession = Shapes::StructureShape.new(name: 'TrafficMirrorSession')
    TrafficMirrorSessionField = Shapes::StringShape.new(name: 'TrafficMirrorSessionField')
    TrafficMirrorSessionFieldList = Shapes::ListShape.new(name: 'TrafficMirrorSessionFieldList')
    TrafficMirrorSessionId = Shapes::StringShape.new(name: 'TrafficMirrorSessionId')
    TrafficMirrorSessionIdList = Shapes::ListShape.new(name: 'TrafficMirrorSessionIdList')
    TrafficMirrorSessionSet = Shapes::ListShape.new(name: 'TrafficMirrorSessionSet')
    TrafficMirrorTarget = Shapes::StructureShape.new(name: 'TrafficMirrorTarget')
    TrafficMirrorTargetId = Shapes::StringShape.new(name: 'TrafficMirrorTargetId')
    TrafficMirrorTargetIdList = Shapes::ListShape.new(name: 'TrafficMirrorTargetIdList')
    TrafficMirrorTargetSet = Shapes::ListShape.new(name: 'TrafficMirrorTargetSet')
    TrafficMirrorTargetType = Shapes::StringShape.new(name: 'TrafficMirrorTargetType')
    TrafficMirroringMaxResults = Shapes::IntegerShape.new(name: 'TrafficMirroringMaxResults')
    TrafficType = Shapes::StringShape.new(name: 'TrafficType')
    TransferType = Shapes::StringShape.new(name: 'TransferType')
    TransitAssociationGatewayId = Shapes::StringShape.new(name: 'TransitAssociationGatewayId')
    TransitGateway = Shapes::StructureShape.new(name: 'TransitGateway')
    TransitGatewayAssociation = Shapes::StructureShape.new(name: 'TransitGatewayAssociation')
    TransitGatewayAssociationState = Shapes::StringShape.new(name: 'TransitGatewayAssociationState')
    TransitGatewayAttachment = Shapes::StructureShape.new(name: 'TransitGatewayAttachment')
    TransitGatewayAttachmentAssociation = Shapes::StructureShape.new(name: 'TransitGatewayAttachmentAssociation')
    TransitGatewayAttachmentBgpConfiguration = Shapes::StructureShape.new(name: 'TransitGatewayAttachmentBgpConfiguration')
    TransitGatewayAttachmentBgpConfigurationList = Shapes::ListShape.new(name: 'TransitGatewayAttachmentBgpConfigurationList')
    TransitGatewayAttachmentId = Shapes::StringShape.new(name: 'TransitGatewayAttachmentId')
    TransitGatewayAttachmentIdStringList = Shapes::ListShape.new(name: 'TransitGatewayAttachmentIdStringList')
    TransitGatewayAttachmentList = Shapes::ListShape.new(name: 'TransitGatewayAttachmentList')
    TransitGatewayAttachmentPropagation = Shapes::StructureShape.new(name: 'TransitGatewayAttachmentPropagation')
    TransitGatewayAttachmentPropagationList = Shapes::ListShape.new(name: 'TransitGatewayAttachmentPropagationList')
    TransitGatewayAttachmentResourceType = Shapes::StringShape.new(name: 'TransitGatewayAttachmentResourceType')
    TransitGatewayAttachmentState = Shapes::StringShape.new(name: 'TransitGatewayAttachmentState')
    TransitGatewayCidrBlockStringList = Shapes::ListShape.new(name: 'TransitGatewayCidrBlockStringList')
    TransitGatewayConnect = Shapes::StructureShape.new(name: 'TransitGatewayConnect')
    TransitGatewayConnectList = Shapes::ListShape.new(name: 'TransitGatewayConnectList')
    TransitGatewayConnectOptions = Shapes::StructureShape.new(name: 'TransitGatewayConnectOptions')
    TransitGatewayConnectPeer = Shapes::StructureShape.new(name: 'TransitGatewayConnectPeer')
    TransitGatewayConnectPeerConfiguration = Shapes::StructureShape.new(name: 'TransitGatewayConnectPeerConfiguration')
    TransitGatewayConnectPeerId = Shapes::StringShape.new(name: 'TransitGatewayConnectPeerId')
    TransitGatewayConnectPeerIdStringList = Shapes::ListShape.new(name: 'TransitGatewayConnectPeerIdStringList')
    TransitGatewayConnectPeerList = Shapes::ListShape.new(name: 'TransitGatewayConnectPeerList')
    TransitGatewayConnectPeerState = Shapes::StringShape.new(name: 'TransitGatewayConnectPeerState')
    TransitGatewayConnectRequestBgpOptions = Shapes::StructureShape.new(name: 'TransitGatewayConnectRequestBgpOptions')
    TransitGatewayId = Shapes::StringShape.new(name: 'TransitGatewayId')
    TransitGatewayIdStringList = Shapes::ListShape.new(name: 'TransitGatewayIdStringList')
    TransitGatewayList = Shapes::ListShape.new(name: 'TransitGatewayList')
    TransitGatewayMaxResults = Shapes::IntegerShape.new(name: 'TransitGatewayMaxResults')
    TransitGatewayMulitcastDomainAssociationState = Shapes::StringShape.new(name: 'TransitGatewayMulitcastDomainAssociationState')
    TransitGatewayMulticastDeregisteredGroupMembers = Shapes::StructureShape.new(name: 'TransitGatewayMulticastDeregisteredGroupMembers')
    TransitGatewayMulticastDeregisteredGroupSources = Shapes::StructureShape.new(name: 'TransitGatewayMulticastDeregisteredGroupSources')
    TransitGatewayMulticastDomain = Shapes::StructureShape.new(name: 'TransitGatewayMulticastDomain')
    TransitGatewayMulticastDomainAssociation = Shapes::StructureShape.new(name: 'TransitGatewayMulticastDomainAssociation')
    TransitGatewayMulticastDomainAssociationList = Shapes::ListShape.new(name: 'TransitGatewayMulticastDomainAssociationList')
    TransitGatewayMulticastDomainAssociations = Shapes::StructureShape.new(name: 'TransitGatewayMulticastDomainAssociations')
    TransitGatewayMulticastDomainId = Shapes::StringShape.new(name: 'TransitGatewayMulticastDomainId')
    TransitGatewayMulticastDomainIdStringList = Shapes::ListShape.new(name: 'TransitGatewayMulticastDomainIdStringList')
    TransitGatewayMulticastDomainList = Shapes::ListShape.new(name: 'TransitGatewayMulticastDomainList')
    TransitGatewayMulticastDomainOptions = Shapes::StructureShape.new(name: 'TransitGatewayMulticastDomainOptions')
    TransitGatewayMulticastDomainState = Shapes::StringShape.new(name: 'TransitGatewayMulticastDomainState')
    TransitGatewayMulticastGroup = Shapes::StructureShape.new(name: 'TransitGatewayMulticastGroup')
    TransitGatewayMulticastGroupList = Shapes::ListShape.new(name: 'TransitGatewayMulticastGroupList')
    TransitGatewayMulticastRegisteredGroupMembers = Shapes::StructureShape.new(name: 'TransitGatewayMulticastRegisteredGroupMembers')
    TransitGatewayMulticastRegisteredGroupSources = Shapes::StructureShape.new(name: 'TransitGatewayMulticastRegisteredGroupSources')
    TransitGatewayNetworkInterfaceIdList = Shapes::ListShape.new(name: 'TransitGatewayNetworkInterfaceIdList')
    TransitGatewayOptions = Shapes::StructureShape.new(name: 'TransitGatewayOptions')
    TransitGatewayPeeringAttachment = Shapes::StructureShape.new(name: 'TransitGatewayPeeringAttachment')
    TransitGatewayPeeringAttachmentList = Shapes::ListShape.new(name: 'TransitGatewayPeeringAttachmentList')
    TransitGatewayPeeringAttachmentOptions = Shapes::StructureShape.new(name: 'TransitGatewayPeeringAttachmentOptions')
    TransitGatewayPolicyRule = Shapes::StructureShape.new(name: 'TransitGatewayPolicyRule')
    TransitGatewayPolicyRuleMetaData = Shapes::StructureShape.new(name: 'TransitGatewayPolicyRuleMetaData')
    TransitGatewayPolicyTable = Shapes::StructureShape.new(name: 'TransitGatewayPolicyTable')
    TransitGatewayPolicyTableAssociation = Shapes::StructureShape.new(name: 'TransitGatewayPolicyTableAssociation')
    TransitGatewayPolicyTableAssociationList = Shapes::ListShape.new(name: 'TransitGatewayPolicyTableAssociationList')
    TransitGatewayPolicyTableEntry = Shapes::StructureShape.new(name: 'TransitGatewayPolicyTableEntry')
    TransitGatewayPolicyTableEntryList = Shapes::ListShape.new(name: 'TransitGatewayPolicyTableEntryList')
    TransitGatewayPolicyTableId = Shapes::StringShape.new(name: 'TransitGatewayPolicyTableId')
    TransitGatewayPolicyTableIdStringList = Shapes::ListShape.new(name: 'TransitGatewayPolicyTableIdStringList')
    TransitGatewayPolicyTableList = Shapes::ListShape.new(name: 'TransitGatewayPolicyTableList')
    TransitGatewayPolicyTableState = Shapes::StringShape.new(name: 'TransitGatewayPolicyTableState')
    TransitGatewayPrefixListAttachment = Shapes::StructureShape.new(name: 'TransitGatewayPrefixListAttachment')
    TransitGatewayPrefixListReference = Shapes::StructureShape.new(name: 'TransitGatewayPrefixListReference')
    TransitGatewayPrefixListReferenceSet = Shapes::ListShape.new(name: 'TransitGatewayPrefixListReferenceSet')
    TransitGatewayPrefixListReferenceState = Shapes::StringShape.new(name: 'TransitGatewayPrefixListReferenceState')
    TransitGatewayPropagation = Shapes::StructureShape.new(name: 'TransitGatewayPropagation')
    TransitGatewayPropagationState = Shapes::StringShape.new(name: 'TransitGatewayPropagationState')
    TransitGatewayRequestOptions = Shapes::StructureShape.new(name: 'TransitGatewayRequestOptions')
    TransitGatewayRoute = Shapes::StructureShape.new(name: 'TransitGatewayRoute')
    TransitGatewayRouteAttachment = Shapes::StructureShape.new(name: 'TransitGatewayRouteAttachment')
    TransitGatewayRouteAttachmentList = Shapes::ListShape.new(name: 'TransitGatewayRouteAttachmentList')
    TransitGatewayRouteList = Shapes::ListShape.new(name: 'TransitGatewayRouteList')
    TransitGatewayRouteState = Shapes::StringShape.new(name: 'TransitGatewayRouteState')
    TransitGatewayRouteTable = Shapes::StructureShape.new(name: 'TransitGatewayRouteTable')
    TransitGatewayRouteTableAnnouncement = Shapes::StructureShape.new(name: 'TransitGatewayRouteTableAnnouncement')
    TransitGatewayRouteTableAnnouncementDirection = Shapes::StringShape.new(name: 'TransitGatewayRouteTableAnnouncementDirection')
    TransitGatewayRouteTableAnnouncementId = Shapes::StringShape.new(name: 'TransitGatewayRouteTableAnnouncementId')
    TransitGatewayRouteTableAnnouncementIdStringList = Shapes::ListShape.new(name: 'TransitGatewayRouteTableAnnouncementIdStringList')
    TransitGatewayRouteTableAnnouncementList = Shapes::ListShape.new(name: 'TransitGatewayRouteTableAnnouncementList')
    TransitGatewayRouteTableAnnouncementState = Shapes::StringShape.new(name: 'TransitGatewayRouteTableAnnouncementState')
    TransitGatewayRouteTableAssociation = Shapes::StructureShape.new(name: 'TransitGatewayRouteTableAssociation')
    TransitGatewayRouteTableAssociationList = Shapes::ListShape.new(name: 'TransitGatewayRouteTableAssociationList')
    TransitGatewayRouteTableId = Shapes::StringShape.new(name: 'TransitGatewayRouteTableId')
    TransitGatewayRouteTableIdStringList = Shapes::ListShape.new(name: 'TransitGatewayRouteTableIdStringList')
    TransitGatewayRouteTableList = Shapes::ListShape.new(name: 'TransitGatewayRouteTableList')
    TransitGatewayRouteTablePropagation = Shapes::StructureShape.new(name: 'TransitGatewayRouteTablePropagation')
    TransitGatewayRouteTablePropagationList = Shapes::ListShape.new(name: 'TransitGatewayRouteTablePropagationList')
    TransitGatewayRouteTableRoute = Shapes::StructureShape.new(name: 'TransitGatewayRouteTableRoute')
    TransitGatewayRouteTableState = Shapes::StringShape.new(name: 'TransitGatewayRouteTableState')
    TransitGatewayRouteType = Shapes::StringShape.new(name: 'TransitGatewayRouteType')
    TransitGatewayState = Shapes::StringShape.new(name: 'TransitGatewayState')
    TransitGatewaySubnetIdList = Shapes::ListShape.new(name: 'TransitGatewaySubnetIdList')
    TransitGatewayVpcAttachment = Shapes::StructureShape.new(name: 'TransitGatewayVpcAttachment')
    TransitGatewayVpcAttachmentList = Shapes::ListShape.new(name: 'TransitGatewayVpcAttachmentList')
    TransitGatewayVpcAttachmentOptions = Shapes::StructureShape.new(name: 'TransitGatewayVpcAttachmentOptions')
    TransportProtocol = Shapes::StringShape.new(name: 'TransportProtocol')
    TrunkInterfaceAssociation = Shapes::StructureShape.new(name: 'TrunkInterfaceAssociation')
    TrunkInterfaceAssociationId = Shapes::StringShape.new(name: 'TrunkInterfaceAssociationId')
    TrunkInterfaceAssociationIdList = Shapes::ListShape.new(name: 'TrunkInterfaceAssociationIdList')
    TrunkInterfaceAssociationList = Shapes::ListShape.new(name: 'TrunkInterfaceAssociationList')
    TrustProviderType = Shapes::StringShape.new(name: 'TrustProviderType')
    TunnelInsideIpVersion = Shapes::StringShape.new(name: 'TunnelInsideIpVersion')
    TunnelOption = Shapes::StructureShape.new(name: 'TunnelOption')
    TunnelOptionsList = Shapes::ListShape.new(name: 'TunnelOptionsList')
    UnassignIpv6AddressesRequest = Shapes::StructureShape.new(name: 'UnassignIpv6AddressesRequest')
    UnassignIpv6AddressesResult = Shapes::StructureShape.new(name: 'UnassignIpv6AddressesResult')
    UnassignPrivateIpAddressesRequest = Shapes::StructureShape.new(name: 'UnassignPrivateIpAddressesRequest')
    UnassignPrivateNatGatewayAddressRequest = Shapes::StructureShape.new(name: 'UnassignPrivateNatGatewayAddressRequest')
    UnassignPrivateNatGatewayAddressResult = Shapes::StructureShape.new(name: 'UnassignPrivateNatGatewayAddressResult')
    UnlimitedSupportedInstanceFamily = Shapes::StringShape.new(name: 'UnlimitedSupportedInstanceFamily')
    UnlockSnapshotRequest = Shapes::StructureShape.new(name: 'UnlockSnapshotRequest')
    UnlockSnapshotResult = Shapes::StructureShape.new(name: 'UnlockSnapshotResult')
    UnmonitorInstancesRequest = Shapes::StructureShape.new(name: 'UnmonitorInstancesRequest')
    UnmonitorInstancesResult = Shapes::StructureShape.new(name: 'UnmonitorInstancesResult')
    UnsuccessfulInstanceCreditSpecificationErrorCode = Shapes::StringShape.new(name: 'UnsuccessfulInstanceCreditSpecificationErrorCode')
    UnsuccessfulInstanceCreditSpecificationItem = Shapes::StructureShape.new(name: 'UnsuccessfulInstanceCreditSpecificationItem')
    UnsuccessfulInstanceCreditSpecificationItemError = Shapes::StructureShape.new(name: 'UnsuccessfulInstanceCreditSpecificationItemError')
    UnsuccessfulInstanceCreditSpecificationSet = Shapes::ListShape.new(name: 'UnsuccessfulInstanceCreditSpecificationSet')
    UnsuccessfulItem = Shapes::StructureShape.new(name: 'UnsuccessfulItem')
    UnsuccessfulItemError = Shapes::StructureShape.new(name: 'UnsuccessfulItemError')
    UnsuccessfulItemList = Shapes::ListShape.new(name: 'UnsuccessfulItemList')
    UnsuccessfulItemSet = Shapes::ListShape.new(name: 'UnsuccessfulItemSet')
    UpdateSecurityGroupRuleDescriptionsEgressRequest = Shapes::StructureShape.new(name: 'UpdateSecurityGroupRuleDescriptionsEgressRequest')
    UpdateSecurityGroupRuleDescriptionsEgressResult = Shapes::StructureShape.new(name: 'UpdateSecurityGroupRuleDescriptionsEgressResult')
    UpdateSecurityGroupRuleDescriptionsIngressRequest = Shapes::StructureShape.new(name: 'UpdateSecurityGroupRuleDescriptionsIngressRequest')
    UpdateSecurityGroupRuleDescriptionsIngressResult = Shapes::StructureShape.new(name: 'UpdateSecurityGroupRuleDescriptionsIngressResult')
    UsageClassType = Shapes::StringShape.new(name: 'UsageClassType')
    UsageClassTypeList = Shapes::ListShape.new(name: 'UsageClassTypeList')
    UserBucket = Shapes::StructureShape.new(name: 'UserBucket')
    UserBucketDetails = Shapes::StructureShape.new(name: 'UserBucketDetails')
    UserData = Shapes::StructureShape.new(name: 'UserData')
    UserGroupStringList = Shapes::ListShape.new(name: 'UserGroupStringList')
    UserIdGroupPair = Shapes::StructureShape.new(name: 'UserIdGroupPair')
    UserIdGroupPairList = Shapes::ListShape.new(name: 'UserIdGroupPairList')
    UserIdGroupPairSet = Shapes::ListShape.new(name: 'UserIdGroupPairSet')
    UserIdStringList = Shapes::ListShape.new(name: 'UserIdStringList')
    UserTrustProviderType = Shapes::StringShape.new(name: 'UserTrustProviderType')
    VCpuCount = Shapes::IntegerShape.new(name: 'VCpuCount')
    VCpuCountRange = Shapes::StructureShape.new(name: 'VCpuCountRange')
    VCpuCountRangeRequest = Shapes::StructureShape.new(name: 'VCpuCountRangeRequest')
    VCpuInfo = Shapes::StructureShape.new(name: 'VCpuInfo')
    ValidationError = Shapes::StructureShape.new(name: 'ValidationError')
    ValidationWarning = Shapes::StructureShape.new(name: 'ValidationWarning')
    ValueStringList = Shapes::ListShape.new(name: 'ValueStringList')
    VerificationMethod = Shapes::StringShape.new(name: 'VerificationMethod')
    VerifiedAccessEndpoint = Shapes::StructureShape.new(name: 'VerifiedAccessEndpoint')
    VerifiedAccessEndpointAttachmentType = Shapes::StringShape.new(name: 'VerifiedAccessEndpointAttachmentType')
    VerifiedAccessEndpointCidrOptions = Shapes::StructureShape.new(name: 'VerifiedAccessEndpointCidrOptions')
    VerifiedAccessEndpointEniOptions = Shapes::StructureShape.new(name: 'VerifiedAccessEndpointEniOptions')
    VerifiedAccessEndpointId = Shapes::StringShape.new(name: 'VerifiedAccessEndpointId')
    VerifiedAccessEndpointIdList = Shapes::ListShape.new(name: 'VerifiedAccessEndpointIdList')
    VerifiedAccessEndpointList = Shapes::ListShape.new(name: 'VerifiedAccessEndpointList')
    VerifiedAccessEndpointLoadBalancerOptions = Shapes::StructureShape.new(name: 'VerifiedAccessEndpointLoadBalancerOptions')
    VerifiedAccessEndpointPortNumber = Shapes::IntegerShape.new(name: 'VerifiedAccessEndpointPortNumber')
    VerifiedAccessEndpointPortRange = Shapes::StructureShape.new(name: 'VerifiedAccessEndpointPortRange')
    VerifiedAccessEndpointPortRangeList = Shapes::ListShape.new(name: 'VerifiedAccessEndpointPortRangeList')
    VerifiedAccessEndpointProtocol = Shapes::StringShape.new(name: 'VerifiedAccessEndpointProtocol')
    VerifiedAccessEndpointRdsOptions = Shapes::StructureShape.new(name: 'VerifiedAccessEndpointRdsOptions')
    VerifiedAccessEndpointStatus = Shapes::StructureShape.new(name: 'VerifiedAccessEndpointStatus')
    VerifiedAccessEndpointStatusCode = Shapes::StringShape.new(name: 'VerifiedAccessEndpointStatusCode')
    VerifiedAccessEndpointSubnetIdList = Shapes::ListShape.new(name: 'VerifiedAccessEndpointSubnetIdList')
    VerifiedAccessEndpointTarget = Shapes::StructureShape.new(name: 'VerifiedAccessEndpointTarget')
    VerifiedAccessEndpointTargetList = Shapes::ListShape.new(name: 'VerifiedAccessEndpointTargetList')
    VerifiedAccessEndpointType = Shapes::StringShape.new(name: 'VerifiedAccessEndpointType')
    VerifiedAccessGroup = Shapes::StructureShape.new(name: 'VerifiedAccessGroup')
    VerifiedAccessGroupId = Shapes::StringShape.new(name: 'VerifiedAccessGroupId')
    VerifiedAccessGroupIdList = Shapes::ListShape.new(name: 'VerifiedAccessGroupIdList')
    VerifiedAccessGroupList = Shapes::ListShape.new(name: 'VerifiedAccessGroupList')
    VerifiedAccessInstance = Shapes::StructureShape.new(name: 'VerifiedAccessInstance')
    VerifiedAccessInstanceCustomSubDomain = Shapes::StructureShape.new(name: 'VerifiedAccessInstanceCustomSubDomain')
    VerifiedAccessInstanceId = Shapes::StringShape.new(name: 'VerifiedAccessInstanceId')
    VerifiedAccessInstanceIdList = Shapes::ListShape.new(name: 'VerifiedAccessInstanceIdList')
    VerifiedAccessInstanceList = Shapes::ListShape.new(name: 'VerifiedAccessInstanceList')
    VerifiedAccessInstanceLoggingConfiguration = Shapes::StructureShape.new(name: 'VerifiedAccessInstanceLoggingConfiguration')
    VerifiedAccessInstanceLoggingConfigurationList = Shapes::ListShape.new(name: 'VerifiedAccessInstanceLoggingConfigurationList')
    VerifiedAccessInstanceOpenVpnClientConfiguration = Shapes::StructureShape.new(name: 'VerifiedAccessInstanceOpenVpnClientConfiguration')
    VerifiedAccessInstanceOpenVpnClientConfigurationList = Shapes::ListShape.new(name: 'VerifiedAccessInstanceOpenVpnClientConfigurationList')
    VerifiedAccessInstanceOpenVpnClientConfigurationRoute = Shapes::StructureShape.new(name: 'VerifiedAccessInstanceOpenVpnClientConfigurationRoute')
    VerifiedAccessInstanceOpenVpnClientConfigurationRouteList = Shapes::ListShape.new(name: 'VerifiedAccessInstanceOpenVpnClientConfigurationRouteList')
    VerifiedAccessInstanceUserTrustProviderClientConfiguration = Shapes::StructureShape.new(name: 'VerifiedAccessInstanceUserTrustProviderClientConfiguration')
    VerifiedAccessLogCloudWatchLogsDestination = Shapes::StructureShape.new(name: 'VerifiedAccessLogCloudWatchLogsDestination')
    VerifiedAccessLogCloudWatchLogsDestinationOptions = Shapes::StructureShape.new(name: 'VerifiedAccessLogCloudWatchLogsDestinationOptions')
    VerifiedAccessLogDeliveryStatus = Shapes::StructureShape.new(name: 'VerifiedAccessLogDeliveryStatus')
    VerifiedAccessLogDeliveryStatusCode = Shapes::StringShape.new(name: 'VerifiedAccessLogDeliveryStatusCode')
    VerifiedAccessLogKinesisDataFirehoseDestination = Shapes::StructureShape.new(name: 'VerifiedAccessLogKinesisDataFirehoseDestination')
    VerifiedAccessLogKinesisDataFirehoseDestinationOptions = Shapes::StructureShape.new(name: 'VerifiedAccessLogKinesisDataFirehoseDestinationOptions')
    VerifiedAccessLogOptions = Shapes::StructureShape.new(name: 'VerifiedAccessLogOptions')
    VerifiedAccessLogS3Destination = Shapes::StructureShape.new(name: 'VerifiedAccessLogS3Destination')
    VerifiedAccessLogS3DestinationOptions = Shapes::StructureShape.new(name: 'VerifiedAccessLogS3DestinationOptions')
    VerifiedAccessLogs = Shapes::StructureShape.new(name: 'VerifiedAccessLogs')
    VerifiedAccessSseSpecificationRequest = Shapes::StructureShape.new(name: 'VerifiedAccessSseSpecificationRequest')
    VerifiedAccessSseSpecificationResponse = Shapes::StructureShape.new(name: 'VerifiedAccessSseSpecificationResponse')
    VerifiedAccessTrustProvider = Shapes::StructureShape.new(name: 'VerifiedAccessTrustProvider')
    VerifiedAccessTrustProviderCondensed = Shapes::StructureShape.new(name: 'VerifiedAccessTrustProviderCondensed')
    VerifiedAccessTrustProviderCondensedList = Shapes::ListShape.new(name: 'VerifiedAccessTrustProviderCondensedList')
    VerifiedAccessTrustProviderId = Shapes::StringShape.new(name: 'VerifiedAccessTrustProviderId')
    VerifiedAccessTrustProviderIdList = Shapes::ListShape.new(name: 'VerifiedAccessTrustProviderIdList')
    VerifiedAccessTrustProviderList = Shapes::ListShape.new(name: 'VerifiedAccessTrustProviderList')
    VersionDescription = Shapes::StringShape.new(name: 'VersionDescription')
    VersionStringList = Shapes::ListShape.new(name: 'VersionStringList')
    VgwTelemetry = Shapes::StructureShape.new(name: 'VgwTelemetry')
    VgwTelemetryList = Shapes::ListShape.new(name: 'VgwTelemetryList')
    VirtualizationType = Shapes::StringShape.new(name: 'VirtualizationType')
    VirtualizationTypeList = Shapes::ListShape.new(name: 'VirtualizationTypeList')
    VirtualizationTypeSet = Shapes::ListShape.new(name: 'VirtualizationTypeSet')
    Volume = Shapes::StructureShape.new(name: 'Volume')
    VolumeAttachment = Shapes::StructureShape.new(name: 'VolumeAttachment')
    VolumeAttachmentList = Shapes::ListShape.new(name: 'VolumeAttachmentList')
    VolumeAttachmentState = Shapes::StringShape.new(name: 'VolumeAttachmentState')
    VolumeAttributeName = Shapes::StringShape.new(name: 'VolumeAttributeName')
    VolumeDetail = Shapes::StructureShape.new(name: 'VolumeDetail')
    VolumeId = Shapes::StringShape.new(name: 'VolumeId')
    VolumeIdStringList = Shapes::ListShape.new(name: 'VolumeIdStringList')
    VolumeIdWithResolver = Shapes::StringShape.new(name: 'VolumeIdWithResolver')
    VolumeList = Shapes::ListShape.new(name: 'VolumeList')
    VolumeModification = Shapes::StructureShape.new(name: 'VolumeModification')
    VolumeModificationList = Shapes::ListShape.new(name: 'VolumeModificationList')
    VolumeModificationState = Shapes::StringShape.new(name: 'VolumeModificationState')
    VolumeState = Shapes::StringShape.new(name: 'VolumeState')
    VolumeStatusAction = Shapes::StructureShape.new(name: 'VolumeStatusAction')
    VolumeStatusActionsList = Shapes::ListShape.new(name: 'VolumeStatusActionsList')
    VolumeStatusAttachmentStatus = Shapes::StructureShape.new(name: 'VolumeStatusAttachmentStatus')
    VolumeStatusAttachmentStatusList = Shapes::ListShape.new(name: 'VolumeStatusAttachmentStatusList')
    VolumeStatusDetails = Shapes::StructureShape.new(name: 'VolumeStatusDetails')
    VolumeStatusDetailsList = Shapes::ListShape.new(name: 'VolumeStatusDetailsList')
    VolumeStatusEvent = Shapes::StructureShape.new(name: 'VolumeStatusEvent')
    VolumeStatusEventsList = Shapes::ListShape.new(name: 'VolumeStatusEventsList')
    VolumeStatusInfo = Shapes::StructureShape.new(name: 'VolumeStatusInfo')
    VolumeStatusInfoStatus = Shapes::StringShape.new(name: 'VolumeStatusInfoStatus')
    VolumeStatusItem = Shapes::StructureShape.new(name: 'VolumeStatusItem')
    VolumeStatusList = Shapes::ListShape.new(name: 'VolumeStatusList')
    VolumeStatusName = Shapes::StringShape.new(name: 'VolumeStatusName')
    VolumeType = Shapes::StringShape.new(name: 'VolumeType')
    Vpc = Shapes::StructureShape.new(name: 'Vpc')
    VpcAttachment = Shapes::StructureShape.new(name: 'VpcAttachment')
    VpcAttachmentList = Shapes::ListShape.new(name: 'VpcAttachmentList')
    VpcAttributeName = Shapes::StringShape.new(name: 'VpcAttributeName')
    VpcBlockPublicAccessExclusion = Shapes::StructureShape.new(name: 'VpcBlockPublicAccessExclusion')
    VpcBlockPublicAccessExclusionId = Shapes::StringShape.new(name: 'VpcBlockPublicAccessExclusionId')
    VpcBlockPublicAccessExclusionIdList = Shapes::ListShape.new(name: 'VpcBlockPublicAccessExclusionIdList')
    VpcBlockPublicAccessExclusionList = Shapes::ListShape.new(name: 'VpcBlockPublicAccessExclusionList')
    VpcBlockPublicAccessExclusionState = Shapes::StringShape.new(name: 'VpcBlockPublicAccessExclusionState')
    VpcBlockPublicAccessExclusionsAllowed = Shapes::StringShape.new(name: 'VpcBlockPublicAccessExclusionsAllowed')
    VpcBlockPublicAccessOptions = Shapes::StructureShape.new(name: 'VpcBlockPublicAccessOptions')
    VpcBlockPublicAccessState = Shapes::StringShape.new(name: 'VpcBlockPublicAccessState')
    VpcCidrAssociationId = Shapes::StringShape.new(name: 'VpcCidrAssociationId')
    VpcCidrBlockAssociation = Shapes::StructureShape.new(name: 'VpcCidrBlockAssociation')
    VpcCidrBlockAssociationSet = Shapes::ListShape.new(name: 'VpcCidrBlockAssociationSet')
    VpcCidrBlockState = Shapes::StructureShape.new(name: 'VpcCidrBlockState')
    VpcCidrBlockStateCode = Shapes::StringShape.new(name: 'VpcCidrBlockStateCode')
    VpcClassicLink = Shapes::StructureShape.new(name: 'VpcClassicLink')
    VpcClassicLinkIdList = Shapes::ListShape.new(name: 'VpcClassicLinkIdList')
    VpcClassicLinkList = Shapes::ListShape.new(name: 'VpcClassicLinkList')
    VpcEncryptionControl = Shapes::StructureShape.new(name: 'VpcEncryptionControl')
    VpcEncryptionControlExclusion = Shapes::StructureShape.new(name: 'VpcEncryptionControlExclusion')
    VpcEncryptionControlExclusionState = Shapes::StringShape.new(name: 'VpcEncryptionControlExclusionState')
    VpcEncryptionControlExclusions = Shapes::StructureShape.new(name: 'VpcEncryptionControlExclusions')
    VpcEncryptionControlId = Shapes::StringShape.new(name: 'VpcEncryptionControlId')
    VpcEncryptionControlMode = Shapes::StringShape.new(name: 'VpcEncryptionControlMode')
    VpcEncryptionControlState = Shapes::StringShape.new(name: 'VpcEncryptionControlState')
    VpcEndpoint = Shapes::StructureShape.new(name: 'VpcEndpoint')
    VpcEndpointAssociation = Shapes::StructureShape.new(name: 'VpcEndpointAssociation')
    VpcEndpointAssociationSet = Shapes::ListShape.new(name: 'VpcEndpointAssociationSet')
    VpcEndpointConnection = Shapes::StructureShape.new(name: 'VpcEndpointConnection')
    VpcEndpointConnectionSet = Shapes::ListShape.new(name: 'VpcEndpointConnectionSet')
    VpcEndpointId = Shapes::StringShape.new(name: 'VpcEndpointId')
    VpcEndpointIdList = Shapes::ListShape.new(name: 'VpcEndpointIdList')
    VpcEndpointRouteTableIdList = Shapes::ListShape.new(name: 'VpcEndpointRouteTableIdList')
    VpcEndpointSecurityGroupIdList = Shapes::ListShape.new(name: 'VpcEndpointSecurityGroupIdList')
    VpcEndpointServiceId = Shapes::StringShape.new(name: 'VpcEndpointServiceId')
    VpcEndpointServiceIdList = Shapes::ListShape.new(name: 'VpcEndpointServiceIdList')
    VpcEndpointSet = Shapes::ListShape.new(name: 'VpcEndpointSet')
    VpcEndpointSubnetIdList = Shapes::ListShape.new(name: 'VpcEndpointSubnetIdList')
    VpcEndpointType = Shapes::StringShape.new(name: 'VpcEndpointType')
    VpcFlowLogId = Shapes::StringShape.new(name: 'VpcFlowLogId')
    VpcId = Shapes::StringShape.new(name: 'VpcId')
    VpcIdStringList = Shapes::ListShape.new(name: 'VpcIdStringList')
    VpcIpv6CidrBlockAssociation = Shapes::StructureShape.new(name: 'VpcIpv6CidrBlockAssociation')
    VpcIpv6CidrBlockAssociationSet = Shapes::ListShape.new(name: 'VpcIpv6CidrBlockAssociationSet')
    VpcList = Shapes::ListShape.new(name: 'VpcList')
    VpcPeeringConnection = Shapes::StructureShape.new(name: 'VpcPeeringConnection')
    VpcPeeringConnectionId = Shapes::StringShape.new(name: 'VpcPeeringConnectionId')
    VpcPeeringConnectionIdList = Shapes::ListShape.new(name: 'VpcPeeringConnectionIdList')
    VpcPeeringConnectionIdWithResolver = Shapes::StringShape.new(name: 'VpcPeeringConnectionIdWithResolver')
    VpcPeeringConnectionList = Shapes::ListShape.new(name: 'VpcPeeringConnectionList')
    VpcPeeringConnectionOptionsDescription = Shapes::StructureShape.new(name: 'VpcPeeringConnectionOptionsDescription')
    VpcPeeringConnectionStateReason = Shapes::StructureShape.new(name: 'VpcPeeringConnectionStateReason')
    VpcPeeringConnectionStateReasonCode = Shapes::StringShape.new(name: 'VpcPeeringConnectionStateReasonCode')
    VpcPeeringConnectionVpcInfo = Shapes::StructureShape.new(name: 'VpcPeeringConnectionVpcInfo')
    VpcState = Shapes::StringShape.new(name: 'VpcState')
    VpcTenancy = Shapes::StringShape.new(name: 'VpcTenancy')
    VpnConnection = Shapes::StructureShape.new(name: 'VpnConnection')
    VpnConnectionDeviceSampleConfiguration = Shapes::StringShape.new(name: 'VpnConnectionDeviceSampleConfiguration')
    VpnConnectionDeviceType = Shapes::StructureShape.new(name: 'VpnConnectionDeviceType')
    VpnConnectionDeviceTypeId = Shapes::StringShape.new(name: 'VpnConnectionDeviceTypeId')
    VpnConnectionDeviceTypeList = Shapes::ListShape.new(name: 'VpnConnectionDeviceTypeList')
    VpnConnectionId = Shapes::StringShape.new(name: 'VpnConnectionId')
    VpnConnectionIdStringList = Shapes::ListShape.new(name: 'VpnConnectionIdStringList')
    VpnConnectionList = Shapes::ListShape.new(name: 'VpnConnectionList')
    VpnConnectionOptions = Shapes::StructureShape.new(name: 'VpnConnectionOptions')
    VpnConnectionOptionsSpecification = Shapes::StructureShape.new(name: 'VpnConnectionOptionsSpecification')
    VpnEcmpSupportValue = Shapes::StringShape.new(name: 'VpnEcmpSupportValue')
    VpnGateway = Shapes::StructureShape.new(name: 'VpnGateway')
    VpnGatewayId = Shapes::StringShape.new(name: 'VpnGatewayId')
    VpnGatewayIdStringList = Shapes::ListShape.new(name: 'VpnGatewayIdStringList')
    VpnGatewayList = Shapes::ListShape.new(name: 'VpnGatewayList')
    VpnProtocol = Shapes::StringShape.new(name: 'VpnProtocol')
    VpnState = Shapes::StringShape.new(name: 'VpnState')
    VpnStaticRoute = Shapes::StructureShape.new(name: 'VpnStaticRoute')
    VpnStaticRouteList = Shapes::ListShape.new(name: 'VpnStaticRouteList')
    VpnStaticRouteSource = Shapes::StringShape.new(name: 'VpnStaticRouteSource')
    VpnTunnelLogOptions = Shapes::StructureShape.new(name: 'VpnTunnelLogOptions')
    VpnTunnelLogOptionsSpecification = Shapes::StructureShape.new(name: 'VpnTunnelLogOptionsSpecification')
    VpnTunnelOptionsSpecification = Shapes::StructureShape.new(name: 'VpnTunnelOptionsSpecification')
    VpnTunnelOptionsSpecificationsList = Shapes::ListShape.new(name: 'VpnTunnelOptionsSpecificationsList')
    WeekDay = Shapes::StringShape.new(name: 'WeekDay')
    WithdrawByoipCidrRequest = Shapes::StructureShape.new(name: 'WithdrawByoipCidrRequest')
    WithdrawByoipCidrResult = Shapes::StructureShape.new(name: 'WithdrawByoipCidrResult')
    ZoneIdStringList = Shapes::ListShape.new(name: 'ZoneIdStringList')
    ZoneNameStringList = Shapes::ListShape.new(name: 'ZoneNameStringList')
    customerGatewayConfiguration = Shapes::StringShape.new(name: 'customerGatewayConfiguration')
    maxResults = Shapes::IntegerShape.new(name: 'maxResults')
    preSharedKey = Shapes::StringShape.new(name: 'preSharedKey')
    scope = Shapes::StringShape.new(name: 'scope')
    snapshotTierStatusSet = Shapes::ListShape.new(name: 'snapshotTierStatusSet')
    totalFpgaMemory = Shapes::IntegerShape.new(name: 'totalFpgaMemory')
    totalGpuMemory = Shapes::IntegerShape.new(name: 'totalGpuMemory')
    totalInferenceMemory = Shapes::IntegerShape.new(name: 'totalInferenceMemory')

    AcceleratorCount.add_member(:min, Shapes::ShapeRef.new(shape: Integer, location_name: "min"))
    AcceleratorCount.add_member(:max, Shapes::ShapeRef.new(shape: Integer, location_name: "max"))
    AcceleratorCount.struct_class = Types::AcceleratorCount

    AcceleratorCountRequest.add_member(:min, Shapes::ShapeRef.new(shape: Integer, location_name: "Min"))
    AcceleratorCountRequest.add_member(:max, Shapes::ShapeRef.new(shape: Integer, location_name: "Max"))
    AcceleratorCountRequest.struct_class = Types::AcceleratorCountRequest

    AcceleratorManufacturerSet.member = Shapes::ShapeRef.new(shape: AcceleratorManufacturer, location_name: "item")

    AcceleratorNameSet.member = Shapes::ShapeRef.new(shape: AcceleratorName, location_name: "item")

    AcceleratorTotalMemoryMiB.add_member(:min, Shapes::ShapeRef.new(shape: Integer, location_name: "min"))
    AcceleratorTotalMemoryMiB.add_member(:max, Shapes::ShapeRef.new(shape: Integer, location_name: "max"))
    AcceleratorTotalMemoryMiB.struct_class = Types::AcceleratorTotalMemoryMiB

    AcceleratorTotalMemoryMiBRequest.add_member(:min, Shapes::ShapeRef.new(shape: Integer, location_name: "Min"))
    AcceleratorTotalMemoryMiBRequest.add_member(:max, Shapes::ShapeRef.new(shape: Integer, location_name: "Max"))
    AcceleratorTotalMemoryMiBRequest.struct_class = Types::AcceleratorTotalMemoryMiBRequest

    AcceleratorTypeSet.member = Shapes::ShapeRef.new(shape: AcceleratorType, location_name: "item")

    AcceptAddressTransferRequest.add_member(:address, Shapes::ShapeRef.new(shape: String, required: true, location_name: "Address"))
    AcceptAddressTransferRequest.add_member(:tag_specifications, Shapes::ShapeRef.new(shape: TagSpecificationList, location_name: "TagSpecification"))
    AcceptAddressTransferRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    AcceptAddressTransferRequest.struct_class = Types::AcceptAddressTransferRequest

    AcceptAddressTransferResult.add_member(:address_transfer, Shapes::ShapeRef.new(shape: AddressTransfer, location_name: "addressTransfer"))
    AcceptAddressTransferResult.struct_class = Types::AcceptAddressTransferResult

    AcceptCapacityReservationBillingOwnershipRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    AcceptCapacityReservationBillingOwnershipRequest.add_member(:capacity_reservation_id, Shapes::ShapeRef.new(shape: CapacityReservationId, required: true, location_name: "CapacityReservationId"))
    AcceptCapacityReservationBillingOwnershipRequest.struct_class = Types::AcceptCapacityReservationBillingOwnershipRequest

    AcceptCapacityReservationBillingOwnershipResult.add_member(:return, Shapes::ShapeRef.new(shape: Boolean, location_name: "return"))
    AcceptCapacityReservationBillingOwnershipResult.struct_class = Types::AcceptCapacityReservationBillingOwnershipResult

    AcceptReservedInstancesExchangeQuoteRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    AcceptReservedInstancesExchangeQuoteRequest.add_member(:reserved_instance_ids, Shapes::ShapeRef.new(shape: ReservedInstanceIdSet, required: true, location_name: "ReservedInstanceId"))
    AcceptReservedInstancesExchangeQuoteRequest.add_member(:target_configurations, Shapes::ShapeRef.new(shape: TargetConfigurationRequestSet, location_name: "TargetConfiguration"))
    AcceptReservedInstancesExchangeQuoteRequest.struct_class = Types::AcceptReservedInstancesExchangeQuoteRequest

    AcceptReservedInstancesExchangeQuoteResult.add_member(:exchange_id, Shapes::ShapeRef.new(shape: String, location_name: "exchangeId"))
    AcceptReservedInstancesExchangeQuoteResult.struct_class = Types::AcceptReservedInstancesExchangeQuoteResult

    AcceptTransitGatewayMulticastDomainAssociationsRequest.add_member(:transit_gateway_multicast_domain_id, Shapes::ShapeRef.new(shape: TransitGatewayMulticastDomainId, location_name: "TransitGatewayMulticastDomainId"))
    AcceptTransitGatewayMulticastDomainAssociationsRequest.add_member(:transit_gateway_attachment_id, Shapes::ShapeRef.new(shape: TransitGatewayAttachmentId, location_name: "TransitGatewayAttachmentId"))
    AcceptTransitGatewayMulticastDomainAssociationsRequest.add_member(:subnet_ids, Shapes::ShapeRef.new(shape: ValueStringList, location_name: "SubnetIds"))
    AcceptTransitGatewayMulticastDomainAssociationsRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    AcceptTransitGatewayMulticastDomainAssociationsRequest.struct_class = Types::AcceptTransitGatewayMulticastDomainAssociationsRequest

    AcceptTransitGatewayMulticastDomainAssociationsResult.add_member(:associations, Shapes::ShapeRef.new(shape: TransitGatewayMulticastDomainAssociations, location_name: "associations"))
    AcceptTransitGatewayMulticastDomainAssociationsResult.struct_class = Types::AcceptTransitGatewayMulticastDomainAssociationsResult

    AcceptTransitGatewayPeeringAttachmentRequest.add_member(:transit_gateway_attachment_id, Shapes::ShapeRef.new(shape: TransitGatewayAttachmentId, required: true, location_name: "TransitGatewayAttachmentId"))
    AcceptTransitGatewayPeeringAttachmentRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    AcceptTransitGatewayPeeringAttachmentRequest.struct_class = Types::AcceptTransitGatewayPeeringAttachmentRequest

    AcceptTransitGatewayPeeringAttachmentResult.add_member(:transit_gateway_peering_attachment, Shapes::ShapeRef.new(shape: TransitGatewayPeeringAttachment, location_name: "transitGatewayPeeringAttachment"))
    AcceptTransitGatewayPeeringAttachmentResult.struct_class = Types::AcceptTransitGatewayPeeringAttachmentResult

    AcceptTransitGatewayVpcAttachmentRequest.add_member(:transit_gateway_attachment_id, Shapes::ShapeRef.new(shape: TransitGatewayAttachmentId, required: true, location_name: "TransitGatewayAttachmentId"))
    AcceptTransitGatewayVpcAttachmentRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    AcceptTransitGatewayVpcAttachmentRequest.struct_class = Types::AcceptTransitGatewayVpcAttachmentRequest

    AcceptTransitGatewayVpcAttachmentResult.add_member(:transit_gateway_vpc_attachment, Shapes::ShapeRef.new(shape: TransitGatewayVpcAttachment, location_name: "transitGatewayVpcAttachment"))
    AcceptTransitGatewayVpcAttachmentResult.struct_class = Types::AcceptTransitGatewayVpcAttachmentResult

    AcceptVpcEndpointConnectionsRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    AcceptVpcEndpointConnectionsRequest.add_member(:service_id, Shapes::ShapeRef.new(shape: VpcEndpointServiceId, required: true, location_name: "ServiceId"))
    AcceptVpcEndpointConnectionsRequest.add_member(:vpc_endpoint_ids, Shapes::ShapeRef.new(shape: VpcEndpointIdList, required: true, location_name: "VpcEndpointId"))
    AcceptVpcEndpointConnectionsRequest.struct_class = Types::AcceptVpcEndpointConnectionsRequest

    AcceptVpcEndpointConnectionsResult.add_member(:unsuccessful, Shapes::ShapeRef.new(shape: UnsuccessfulItemSet, location_name: "unsuccessful"))
    AcceptVpcEndpointConnectionsResult.struct_class = Types::AcceptVpcEndpointConnectionsResult

    AcceptVpcPeeringConnectionRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "dryRun"))
    AcceptVpcPeeringConnectionRequest.add_member(:vpc_peering_connection_id, Shapes::ShapeRef.new(shape: VpcPeeringConnectionIdWithResolver, required: true, location_name: "vpcPeeringConnectionId"))
    AcceptVpcPeeringConnectionRequest.struct_class = Types::AcceptVpcPeeringConnectionRequest

    AcceptVpcPeeringConnectionResult.add_member(:vpc_peering_connection, Shapes::ShapeRef.new(shape: VpcPeeringConnection, location_name: "vpcPeeringConnection"))
    AcceptVpcPeeringConnectionResult.struct_class = Types::AcceptVpcPeeringConnectionResult

    AccessScopeAnalysisFinding.add_member(:network_insights_access_scope_analysis_id, Shapes::ShapeRef.new(shape: NetworkInsightsAccessScopeAnalysisId, location_name: "networkInsightsAccessScopeAnalysisId"))
    AccessScopeAnalysisFinding.add_member(:network_insights_access_scope_id, Shapes::ShapeRef.new(shape: NetworkInsightsAccessScopeId, location_name: "networkInsightsAccessScopeId"))
    AccessScopeAnalysisFinding.add_member(:finding_id, Shapes::ShapeRef.new(shape: String, location_name: "findingId"))
    AccessScopeAnalysisFinding.add_member(:finding_components, Shapes::ShapeRef.new(shape: PathComponentList, location_name: "findingComponentSet"))
    AccessScopeAnalysisFinding.struct_class = Types::AccessScopeAnalysisFinding

    AccessScopeAnalysisFindingList.member = Shapes::ShapeRef.new(shape: AccessScopeAnalysisFinding, location_name: "item")

    AccessScopePath.add_member(:source, Shapes::ShapeRef.new(shape: PathStatement, location_name: "source"))
    AccessScopePath.add_member(:destination, Shapes::ShapeRef.new(shape: PathStatement, location_name: "destination"))
    AccessScopePath.add_member(:through_resources, Shapes::ShapeRef.new(shape: ThroughResourcesStatementList, location_name: "throughResourceSet"))
    AccessScopePath.struct_class = Types::AccessScopePath

    AccessScopePathList.member = Shapes::ShapeRef.new(shape: AccessScopePath, location_name: "item")

    AccessScopePathListRequest.member = Shapes::ShapeRef.new(shape: AccessScopePathRequest, location_name: "item")

    AccessScopePathRequest.add_member(:source, Shapes::ShapeRef.new(shape: PathStatementRequest, location_name: "Source"))
    AccessScopePathRequest.add_member(:destination, Shapes::ShapeRef.new(shape: PathStatementRequest, location_name: "Destination"))
    AccessScopePathRequest.add_member(:through_resources, Shapes::ShapeRef.new(shape: ThroughResourcesStatementRequestList, location_name: "ThroughResource"))
    AccessScopePathRequest.struct_class = Types::AccessScopePathRequest

    AccountAttribute.add_member(:attribute_name, Shapes::ShapeRef.new(shape: String, location_name: "attributeName"))
    AccountAttribute.add_member(:attribute_values, Shapes::ShapeRef.new(shape: AccountAttributeValueList, location_name: "attributeValueSet"))
    AccountAttribute.struct_class = Types::AccountAttribute

    AccountAttributeList.member = Shapes::ShapeRef.new(shape: AccountAttribute, location_name: "item")

    AccountAttributeNameStringList.member = Shapes::ShapeRef.new(shape: AccountAttributeName, location_name: "attributeName")

    AccountAttributeValue.add_member(:attribute_value, Shapes::ShapeRef.new(shape: String, location_name: "attributeValue"))
    AccountAttributeValue.struct_class = Types::AccountAttributeValue

    AccountAttributeValueList.member = Shapes::ShapeRef.new(shape: AccountAttributeValue, location_name: "item")

    ActiveInstance.add_member(:instance_id, Shapes::ShapeRef.new(shape: String, location_name: "instanceId"))
    ActiveInstance.add_member(:instance_type, Shapes::ShapeRef.new(shape: String, location_name: "instanceType"))
    ActiveInstance.add_member(:spot_instance_request_id, Shapes::ShapeRef.new(shape: String, location_name: "spotInstanceRequestId"))
    ActiveInstance.add_member(:instance_health, Shapes::ShapeRef.new(shape: InstanceHealthStatus, location_name: "instanceHealth"))
    ActiveInstance.struct_class = Types::ActiveInstance

    ActiveInstanceSet.member = Shapes::ShapeRef.new(shape: ActiveInstance, location_name: "item")

    AddIpamOperatingRegion.add_member(:region_name, Shapes::ShapeRef.new(shape: String, location_name: "RegionName"))
    AddIpamOperatingRegion.struct_class = Types::AddIpamOperatingRegion

    AddIpamOperatingRegionSet.member = Shapes::ShapeRef.new(shape: AddIpamOperatingRegion)

    AddIpamOrganizationalUnitExclusion.add_member(:organizations_entity_path, Shapes::ShapeRef.new(shape: String, location_name: "OrganizationsEntityPath"))
    AddIpamOrganizationalUnitExclusion.struct_class = Types::AddIpamOrganizationalUnitExclusion

    AddIpamOrganizationalUnitExclusionSet.member = Shapes::ShapeRef.new(shape: AddIpamOrganizationalUnitExclusion)

    AddPrefixListEntries.member = Shapes::ShapeRef.new(shape: AddPrefixListEntry)

    AddPrefixListEntry.add_member(:cidr, Shapes::ShapeRef.new(shape: String, required: true, location_name: "Cidr"))
    AddPrefixListEntry.add_member(:description, Shapes::ShapeRef.new(shape: String, location_name: "Description"))
    AddPrefixListEntry.struct_class = Types::AddPrefixListEntry

    AddedPrincipal.add_member(:principal_type, Shapes::ShapeRef.new(shape: PrincipalType, location_name: "principalType"))
    AddedPrincipal.add_member(:principal, Shapes::ShapeRef.new(shape: String, location_name: "principal"))
    AddedPrincipal.add_member(:service_permission_id, Shapes::ShapeRef.new(shape: String, location_name: "servicePermissionId"))
    AddedPrincipal.add_member(:service_id, Shapes::ShapeRef.new(shape: String, location_name: "serviceId"))
    AddedPrincipal.struct_class = Types::AddedPrincipal

    AddedPrincipalSet.member = Shapes::ShapeRef.new(shape: AddedPrincipal, location_name: "item")

    AdditionalDetail.add_member(:additional_detail_type, Shapes::ShapeRef.new(shape: String, location_name: "additionalDetailType"))
    AdditionalDetail.add_member(:component, Shapes::ShapeRef.new(shape: AnalysisComponent, location_name: "component"))
    AdditionalDetail.add_member(:vpc_endpoint_service, Shapes::ShapeRef.new(shape: AnalysisComponent, location_name: "vpcEndpointService"))
    AdditionalDetail.add_member(:rule_options, Shapes::ShapeRef.new(shape: RuleOptionList, location_name: "ruleOptionSet"))
    AdditionalDetail.add_member(:rule_group_type_pairs, Shapes::ShapeRef.new(shape: RuleGroupTypePairList, location_name: "ruleGroupTypePairSet"))
    AdditionalDetail.add_member(:rule_group_rule_options_pairs, Shapes::ShapeRef.new(shape: RuleGroupRuleOptionsPairList, location_name: "ruleGroupRuleOptionsPairSet"))
    AdditionalDetail.add_member(:service_name, Shapes::ShapeRef.new(shape: String, location_name: "serviceName"))
    AdditionalDetail.add_member(:load_balancers, Shapes::ShapeRef.new(shape: AnalysisComponentList, location_name: "loadBalancerSet"))
    AdditionalDetail.struct_class = Types::AdditionalDetail

    AdditionalDetailList.member = Shapes::ShapeRef.new(shape: AdditionalDetail, location_name: "item")

    Address.add_member(:allocation_id, Shapes::ShapeRef.new(shape: String, location_name: "allocationId"))
    Address.add_member(:association_id, Shapes::ShapeRef.new(shape: String, location_name: "associationId"))
    Address.add_member(:domain, Shapes::ShapeRef.new(shape: DomainType, location_name: "domain"))
    Address.add_member(:network_interface_id, Shapes::ShapeRef.new(shape: String, location_name: "networkInterfaceId"))
    Address.add_member(:network_interface_owner_id, Shapes::ShapeRef.new(shape: String, location_name: "networkInterfaceOwnerId"))
    Address.add_member(:private_ip_address, Shapes::ShapeRef.new(shape: String, location_name: "privateIpAddress"))
    Address.add_member(:tags, Shapes::ShapeRef.new(shape: TagList, location_name: "tagSet"))
    Address.add_member(:public_ipv_4_pool, Shapes::ShapeRef.new(shape: String, location_name: "publicIpv4Pool"))
    Address.add_member(:network_border_group, Shapes::ShapeRef.new(shape: String, location_name: "networkBorderGroup"))
    Address.add_member(:customer_owned_ip, Shapes::ShapeRef.new(shape: String, location_name: "customerOwnedIp"))
    Address.add_member(:customer_owned_ipv_4_pool, Shapes::ShapeRef.new(shape: String, location_name: "customerOwnedIpv4Pool"))
    Address.add_member(:carrier_ip, Shapes::ShapeRef.new(shape: String, location_name: "carrierIp"))
    Address.add_member(:service_managed, Shapes::ShapeRef.new(shape: ServiceManaged, location_name: "serviceManaged"))
    Address.add_member(:instance_id, Shapes::ShapeRef.new(shape: String, location_name: "instanceId"))
    Address.add_member(:public_ip, Shapes::ShapeRef.new(shape: String, location_name: "publicIp"))
    Address.struct_class = Types::Address

    AddressAttribute.add_member(:public_ip, Shapes::ShapeRef.new(shape: PublicIpAddress, location_name: "publicIp"))
    AddressAttribute.add_member(:allocation_id, Shapes::ShapeRef.new(shape: AllocationId, location_name: "allocationId"))
    AddressAttribute.add_member(:ptr_record, Shapes::ShapeRef.new(shape: String, location_name: "ptrRecord"))
    AddressAttribute.add_member(:ptr_record_update, Shapes::ShapeRef.new(shape: PtrUpdateStatus, location_name: "ptrRecordUpdate"))
    AddressAttribute.struct_class = Types::AddressAttribute

    AddressList.member = Shapes::ShapeRef.new(shape: Address, location_name: "item")

    AddressSet.member = Shapes::ShapeRef.new(shape: AddressAttribute, location_name: "item")

    AddressTransfer.add_member(:public_ip, Shapes::ShapeRef.new(shape: String, location_name: "publicIp"))
    AddressTransfer.add_member(:allocation_id, Shapes::ShapeRef.new(shape: String, location_name: "allocationId"))
    AddressTransfer.add_member(:transfer_account_id, Shapes::ShapeRef.new(shape: String, location_name: "transferAccountId"))
    AddressTransfer.add_member(:transfer_offer_expiration_timestamp, Shapes::ShapeRef.new(shape: MillisecondDateTime, location_name: "transferOfferExpirationTimestamp"))
    AddressTransfer.add_member(:transfer_offer_accepted_timestamp, Shapes::ShapeRef.new(shape: MillisecondDateTime, location_name: "transferOfferAcceptedTimestamp"))
    AddressTransfer.add_member(:address_transfer_status, Shapes::ShapeRef.new(shape: AddressTransferStatus, location_name: "addressTransferStatus"))
    AddressTransfer.struct_class = Types::AddressTransfer

    AddressTransferList.member = Shapes::ShapeRef.new(shape: AddressTransfer, location_name: "item")

    AdvertiseByoipCidrRequest.add_member(:cidr, Shapes::ShapeRef.new(shape: String, required: true, location_name: "Cidr"))
    AdvertiseByoipCidrRequest.add_member(:asn, Shapes::ShapeRef.new(shape: String, location_name: "Asn"))
    AdvertiseByoipCidrRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    AdvertiseByoipCidrRequest.add_member(:network_border_group, Shapes::ShapeRef.new(shape: String, location_name: "NetworkBorderGroup"))
    AdvertiseByoipCidrRequest.struct_class = Types::AdvertiseByoipCidrRequest

    AdvertiseByoipCidrResult.add_member(:byoip_cidr, Shapes::ShapeRef.new(shape: ByoipCidr, location_name: "byoipCidr"))
    AdvertiseByoipCidrResult.struct_class = Types::AdvertiseByoipCidrResult

    AllocateAddressRequest.add_member(:domain, Shapes::ShapeRef.new(shape: DomainType, location_name: "Domain"))
    AllocateAddressRequest.add_member(:address, Shapes::ShapeRef.new(shape: PublicIpAddress, location_name: "Address"))
    AllocateAddressRequest.add_member(:public_ipv_4_pool, Shapes::ShapeRef.new(shape: Ipv4PoolEc2Id, location_name: "PublicIpv4Pool"))
    AllocateAddressRequest.add_member(:network_border_group, Shapes::ShapeRef.new(shape: String, location_name: "NetworkBorderGroup"))
    AllocateAddressRequest.add_member(:customer_owned_ipv_4_pool, Shapes::ShapeRef.new(shape: String, location_name: "CustomerOwnedIpv4Pool"))
    AllocateAddressRequest.add_member(:tag_specifications, Shapes::ShapeRef.new(shape: TagSpecificationList, location_name: "TagSpecification"))
    AllocateAddressRequest.add_member(:ipam_pool_id, Shapes::ShapeRef.new(shape: IpamPoolId, location_name: "IpamPoolId"))
    AllocateAddressRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "dryRun"))
    AllocateAddressRequest.struct_class = Types::AllocateAddressRequest

    AllocateAddressResult.add_member(:allocation_id, Shapes::ShapeRef.new(shape: String, location_name: "allocationId"))
    AllocateAddressResult.add_member(:public_ipv_4_pool, Shapes::ShapeRef.new(shape: String, location_name: "publicIpv4Pool"))
    AllocateAddressResult.add_member(:network_border_group, Shapes::ShapeRef.new(shape: String, location_name: "networkBorderGroup"))
    AllocateAddressResult.add_member(:domain, Shapes::ShapeRef.new(shape: DomainType, location_name: "domain"))
    AllocateAddressResult.add_member(:customer_owned_ip, Shapes::ShapeRef.new(shape: String, location_name: "customerOwnedIp"))
    AllocateAddressResult.add_member(:customer_owned_ipv_4_pool, Shapes::ShapeRef.new(shape: String, location_name: "customerOwnedIpv4Pool"))
    AllocateAddressResult.add_member(:carrier_ip, Shapes::ShapeRef.new(shape: String, location_name: "carrierIp"))
    AllocateAddressResult.add_member(:public_ip, Shapes::ShapeRef.new(shape: String, location_name: "publicIp"))
    AllocateAddressResult.struct_class = Types::AllocateAddressResult

    AllocateHostsRequest.add_member(:instance_family, Shapes::ShapeRef.new(shape: String, location_name: "InstanceFamily"))
    AllocateHostsRequest.add_member(:tag_specifications, Shapes::ShapeRef.new(shape: TagSpecificationList, location_name: "TagSpecification"))
    AllocateHostsRequest.add_member(:host_recovery, Shapes::ShapeRef.new(shape: HostRecovery, location_name: "HostRecovery"))
    AllocateHostsRequest.add_member(:outpost_arn, Shapes::ShapeRef.new(shape: String, location_name: "OutpostArn"))
    AllocateHostsRequest.add_member(:host_maintenance, Shapes::ShapeRef.new(shape: HostMaintenance, location_name: "HostMaintenance"))
    AllocateHostsRequest.add_member(:asset_ids, Shapes::ShapeRef.new(shape: AssetIdList, location_name: "AssetId"))
    AllocateHostsRequest.add_member(:auto_placement, Shapes::ShapeRef.new(shape: AutoPlacement, location_name: "autoPlacement"))
    AllocateHostsRequest.add_member(:client_token, Shapes::ShapeRef.new(shape: String, location_name: "clientToken"))
    AllocateHostsRequest.add_member(:instance_type, Shapes::ShapeRef.new(shape: String, location_name: "instanceType"))
    AllocateHostsRequest.add_member(:quantity, Shapes::ShapeRef.new(shape: Integer, location_name: "quantity"))
    AllocateHostsRequest.add_member(:availability_zone, Shapes::ShapeRef.new(shape: String, required: true, location_name: "availabilityZone"))
    AllocateHostsRequest.struct_class = Types::AllocateHostsRequest

    AllocateHostsResult.add_member(:host_ids, Shapes::ShapeRef.new(shape: ResponseHostIdList, location_name: "hostIdSet"))
    AllocateHostsResult.struct_class = Types::AllocateHostsResult

    AllocateIpamPoolCidrRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    AllocateIpamPoolCidrRequest.add_member(:ipam_pool_id, Shapes::ShapeRef.new(shape: IpamPoolId, required: true, location_name: "IpamPoolId"))
    AllocateIpamPoolCidrRequest.add_member(:cidr, Shapes::ShapeRef.new(shape: String, location_name: "Cidr"))
    AllocateIpamPoolCidrRequest.add_member(:netmask_length, Shapes::ShapeRef.new(shape: Integer, location_name: "NetmaskLength"))
    AllocateIpamPoolCidrRequest.add_member(:client_token, Shapes::ShapeRef.new(shape: String, location_name: "ClientToken", metadata: {"idempotencyToken"=>true}))
    AllocateIpamPoolCidrRequest.add_member(:description, Shapes::ShapeRef.new(shape: String, location_name: "Description"))
    AllocateIpamPoolCidrRequest.add_member(:preview_next_cidr, Shapes::ShapeRef.new(shape: Boolean, location_name: "PreviewNextCidr"))
    AllocateIpamPoolCidrRequest.add_member(:allowed_cidrs, Shapes::ShapeRef.new(shape: IpamPoolAllocationAllowedCidrs, location_name: "AllowedCidr"))
    AllocateIpamPoolCidrRequest.add_member(:disallowed_cidrs, Shapes::ShapeRef.new(shape: IpamPoolAllocationDisallowedCidrs, location_name: "DisallowedCidr"))
    AllocateIpamPoolCidrRequest.struct_class = Types::AllocateIpamPoolCidrRequest

    AllocateIpamPoolCidrResult.add_member(:ipam_pool_allocation, Shapes::ShapeRef.new(shape: IpamPoolAllocation, location_name: "ipamPoolAllocation"))
    AllocateIpamPoolCidrResult.struct_class = Types::AllocateIpamPoolCidrResult

    AllocationIdList.member = Shapes::ShapeRef.new(shape: AllocationId, location_name: "AllocationId")

    AllocationIds.member = Shapes::ShapeRef.new(shape: AllocationId, location_name: "item")

    AllowedInstanceTypeSet.member = Shapes::ShapeRef.new(shape: AllowedInstanceType, location_name: "item")

    AllowedPrincipal.add_member(:principal_type, Shapes::ShapeRef.new(shape: PrincipalType, location_name: "principalType"))
    AllowedPrincipal.add_member(:principal, Shapes::ShapeRef.new(shape: String, location_name: "principal"))
    AllowedPrincipal.add_member(:service_permission_id, Shapes::ShapeRef.new(shape: String, location_name: "servicePermissionId"))
    AllowedPrincipal.add_member(:tags, Shapes::ShapeRef.new(shape: TagList, location_name: "tagSet"))
    AllowedPrincipal.add_member(:service_id, Shapes::ShapeRef.new(shape: String, location_name: "serviceId"))
    AllowedPrincipal.struct_class = Types::AllowedPrincipal

    AllowedPrincipalSet.member = Shapes::ShapeRef.new(shape: AllowedPrincipal, location_name: "item")

    AlternatePathHint.add_member(:component_id, Shapes::ShapeRef.new(shape: String, location_name: "componentId"))
    AlternatePathHint.add_member(:component_arn, Shapes::ShapeRef.new(shape: String, location_name: "componentArn"))
    AlternatePathHint.struct_class = Types::AlternatePathHint

    AlternatePathHintList.member = Shapes::ShapeRef.new(shape: AlternatePathHint, location_name: "item")

    AnalysisAclRule.add_member(:cidr, Shapes::ShapeRef.new(shape: String, location_name: "cidr"))
    AnalysisAclRule.add_member(:egress, Shapes::ShapeRef.new(shape: Boolean, location_name: "egress"))
    AnalysisAclRule.add_member(:port_range, Shapes::ShapeRef.new(shape: PortRange, location_name: "portRange"))
    AnalysisAclRule.add_member(:protocol, Shapes::ShapeRef.new(shape: String, location_name: "protocol"))
    AnalysisAclRule.add_member(:rule_action, Shapes::ShapeRef.new(shape: String, location_name: "ruleAction"))
    AnalysisAclRule.add_member(:rule_number, Shapes::ShapeRef.new(shape: Integer, location_name: "ruleNumber"))
    AnalysisAclRule.struct_class = Types::AnalysisAclRule

    AnalysisComponent.add_member(:id, Shapes::ShapeRef.new(shape: String, location_name: "id"))
    AnalysisComponent.add_member(:arn, Shapes::ShapeRef.new(shape: String, location_name: "arn"))
    AnalysisComponent.add_member(:name, Shapes::ShapeRef.new(shape: String, location_name: "name"))
    AnalysisComponent.struct_class = Types::AnalysisComponent

    AnalysisComponentList.member = Shapes::ShapeRef.new(shape: AnalysisComponent, location_name: "item")

    AnalysisLoadBalancerListener.add_member(:load_balancer_port, Shapes::ShapeRef.new(shape: Port, location_name: "loadBalancerPort"))
    AnalysisLoadBalancerListener.add_member(:instance_port, Shapes::ShapeRef.new(shape: Port, location_name: "instancePort"))
    AnalysisLoadBalancerListener.struct_class = Types::AnalysisLoadBalancerListener

    AnalysisLoadBalancerTarget.add_member(:address, Shapes::ShapeRef.new(shape: IpAddress, location_name: "address"))
    AnalysisLoadBalancerTarget.add_member(:availability_zone, Shapes::ShapeRef.new(shape: String, location_name: "availabilityZone"))
    AnalysisLoadBalancerTarget.add_member(:instance, Shapes::ShapeRef.new(shape: AnalysisComponent, location_name: "instance"))
    AnalysisLoadBalancerTarget.add_member(:port, Shapes::ShapeRef.new(shape: Port, location_name: "port"))
    AnalysisLoadBalancerTarget.struct_class = Types::AnalysisLoadBalancerTarget

    AnalysisPacketHeader.add_member(:destination_addresses, Shapes::ShapeRef.new(shape: IpAddressList, location_name: "destinationAddressSet"))
    AnalysisPacketHeader.add_member(:destination_port_ranges, Shapes::ShapeRef.new(shape: PortRangeList, location_name: "destinationPortRangeSet"))
    AnalysisPacketHeader.add_member(:protocol, Shapes::ShapeRef.new(shape: String, location_name: "protocol"))
    AnalysisPacketHeader.add_member(:source_addresses, Shapes::ShapeRef.new(shape: IpAddressList, location_name: "sourceAddressSet"))
    AnalysisPacketHeader.add_member(:source_port_ranges, Shapes::ShapeRef.new(shape: PortRangeList, location_name: "sourcePortRangeSet"))
    AnalysisPacketHeader.struct_class = Types::AnalysisPacketHeader

    AnalysisRouteTableRoute.add_member(:destination_cidr, Shapes::ShapeRef.new(shape: String, location_name: "destinationCidr"))
    AnalysisRouteTableRoute.add_member(:destination_prefix_list_id, Shapes::ShapeRef.new(shape: String, location_name: "destinationPrefixListId"))
    AnalysisRouteTableRoute.add_member(:egress_only_internet_gateway_id, Shapes::ShapeRef.new(shape: String, location_name: "egressOnlyInternetGatewayId"))
    AnalysisRouteTableRoute.add_member(:gateway_id, Shapes::ShapeRef.new(shape: String, location_name: "gatewayId"))
    AnalysisRouteTableRoute.add_member(:instance_id, Shapes::ShapeRef.new(shape: String, location_name: "instanceId"))
    AnalysisRouteTableRoute.add_member(:nat_gateway_id, Shapes::ShapeRef.new(shape: String, location_name: "natGatewayId"))
    AnalysisRouteTableRoute.add_member(:network_interface_id, Shapes::ShapeRef.new(shape: String, location_name: "networkInterfaceId"))
    AnalysisRouteTableRoute.add_member(:origin, Shapes::ShapeRef.new(shape: String, location_name: "origin"))
    AnalysisRouteTableRoute.add_member(:transit_gateway_id, Shapes::ShapeRef.new(shape: String, location_name: "transitGatewayId"))
    AnalysisRouteTableRoute.add_member(:vpc_peering_connection_id, Shapes::ShapeRef.new(shape: String, location_name: "vpcPeeringConnectionId"))
    AnalysisRouteTableRoute.add_member(:state, Shapes::ShapeRef.new(shape: String, location_name: "state"))
    AnalysisRouteTableRoute.add_member(:carrier_gateway_id, Shapes::ShapeRef.new(shape: String, location_name: "carrierGatewayId"))
    AnalysisRouteTableRoute.add_member(:core_network_arn, Shapes::ShapeRef.new(shape: ResourceArn, location_name: "coreNetworkArn"))
    AnalysisRouteTableRoute.add_member(:local_gateway_id, Shapes::ShapeRef.new(shape: String, location_name: "localGatewayId"))
    AnalysisRouteTableRoute.struct_class = Types::AnalysisRouteTableRoute

    AnalysisSecurityGroupRule.add_member(:cidr, Shapes::ShapeRef.new(shape: String, location_name: "cidr"))
    AnalysisSecurityGroupRule.add_member(:direction, Shapes::ShapeRef.new(shape: String, location_name: "direction"))
    AnalysisSecurityGroupRule.add_member(:security_group_id, Shapes::ShapeRef.new(shape: String, location_name: "securityGroupId"))
    AnalysisSecurityGroupRule.add_member(:port_range, Shapes::ShapeRef.new(shape: PortRange, location_name: "portRange"))
    AnalysisSecurityGroupRule.add_member(:prefix_list_id, Shapes::ShapeRef.new(shape: String, location_name: "prefixListId"))
    AnalysisSecurityGroupRule.add_member(:protocol, Shapes::ShapeRef.new(shape: String, location_name: "protocol"))
    AnalysisSecurityGroupRule.struct_class = Types::AnalysisSecurityGroupRule

    ApplySecurityGroupsToClientVpnTargetNetworkRequest.add_member(:client_vpn_endpoint_id, Shapes::ShapeRef.new(shape: ClientVpnEndpointId, required: true, location_name: "ClientVpnEndpointId"))
    ApplySecurityGroupsToClientVpnTargetNetworkRequest.add_member(:vpc_id, Shapes::ShapeRef.new(shape: VpcId, required: true, location_name: "VpcId"))
    ApplySecurityGroupsToClientVpnTargetNetworkRequest.add_member(:security_group_ids, Shapes::ShapeRef.new(shape: ClientVpnSecurityGroupIdSet, required: true, location_name: "SecurityGroupId"))
    ApplySecurityGroupsToClientVpnTargetNetworkRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    ApplySecurityGroupsToClientVpnTargetNetworkRequest.struct_class = Types::ApplySecurityGroupsToClientVpnTargetNetworkRequest

    ApplySecurityGroupsToClientVpnTargetNetworkResult.add_member(:security_group_ids, Shapes::ShapeRef.new(shape: ClientVpnSecurityGroupIdSet, location_name: "securityGroupIds"))
    ApplySecurityGroupsToClientVpnTargetNetworkResult.struct_class = Types::ApplySecurityGroupsToClientVpnTargetNetworkResult

    ArchitectureTypeList.member = Shapes::ShapeRef.new(shape: ArchitectureType, location_name: "item")

    ArchitectureTypeSet.member = Shapes::ShapeRef.new(shape: ArchitectureType, location_name: "item")

    ArnList.member = Shapes::ShapeRef.new(shape: ResourceArn, location_name: "item")

    AsnAssociation.add_member(:asn, Shapes::ShapeRef.new(shape: String, location_name: "asn"))
    AsnAssociation.add_member(:cidr, Shapes::ShapeRef.new(shape: String, location_name: "cidr"))
    AsnAssociation.add_member(:status_message, Shapes::ShapeRef.new(shape: String, location_name: "statusMessage"))
    AsnAssociation.add_member(:state, Shapes::ShapeRef.new(shape: AsnAssociationState, location_name: "state"))
    AsnAssociation.struct_class = Types::AsnAssociation

    AsnAssociationSet.member = Shapes::ShapeRef.new(shape: AsnAssociation, location_name: "item")

    AsnAuthorizationContext.add_member(:message, Shapes::ShapeRef.new(shape: String, required: true, location_name: "Message"))
    AsnAuthorizationContext.add_member(:signature, Shapes::ShapeRef.new(shape: String, required: true, location_name: "Signature"))
    AsnAuthorizationContext.struct_class = Types::AsnAuthorizationContext

    AssetIdList.member = Shapes::ShapeRef.new(shape: AssetId)

    AssignIpv6AddressesRequest.add_member(:ipv_6_prefix_count, Shapes::ShapeRef.new(shape: Integer, location_name: "Ipv6PrefixCount"))
    AssignIpv6AddressesRequest.add_member(:ipv_6_prefixes, Shapes::ShapeRef.new(shape: IpPrefixList, location_name: "Ipv6Prefix"))
    AssignIpv6AddressesRequest.add_member(:network_interface_id, Shapes::ShapeRef.new(shape: NetworkInterfaceId, required: true, location_name: "networkInterfaceId"))
    AssignIpv6AddressesRequest.add_member(:ipv_6_addresses, Shapes::ShapeRef.new(shape: Ipv6AddressList, location_name: "ipv6Addresses"))
    AssignIpv6AddressesRequest.add_member(:ipv_6_address_count, Shapes::ShapeRef.new(shape: Integer, location_name: "ipv6AddressCount"))
    AssignIpv6AddressesRequest.struct_class = Types::AssignIpv6AddressesRequest

    AssignIpv6AddressesResult.add_member(:assigned_ipv_6_addresses, Shapes::ShapeRef.new(shape: Ipv6AddressList, location_name: "assignedIpv6Addresses"))
    AssignIpv6AddressesResult.add_member(:assigned_ipv_6_prefixes, Shapes::ShapeRef.new(shape: IpPrefixList, location_name: "assignedIpv6PrefixSet"))
    AssignIpv6AddressesResult.add_member(:network_interface_id, Shapes::ShapeRef.new(shape: String, location_name: "networkInterfaceId"))
    AssignIpv6AddressesResult.struct_class = Types::AssignIpv6AddressesResult

    AssignPrivateIpAddressesRequest.add_member(:ipv_4_prefixes, Shapes::ShapeRef.new(shape: IpPrefixList, location_name: "Ipv4Prefix"))
    AssignPrivateIpAddressesRequest.add_member(:ipv_4_prefix_count, Shapes::ShapeRef.new(shape: Integer, location_name: "Ipv4PrefixCount"))
    AssignPrivateIpAddressesRequest.add_member(:network_interface_id, Shapes::ShapeRef.new(shape: NetworkInterfaceId, required: true, location_name: "networkInterfaceId"))
    AssignPrivateIpAddressesRequest.add_member(:private_ip_addresses, Shapes::ShapeRef.new(shape: PrivateIpAddressStringList, location_name: "privateIpAddress"))
    AssignPrivateIpAddressesRequest.add_member(:secondary_private_ip_address_count, Shapes::ShapeRef.new(shape: Integer, location_name: "secondaryPrivateIpAddressCount"))
    AssignPrivateIpAddressesRequest.add_member(:allow_reassignment, Shapes::ShapeRef.new(shape: Boolean, location_name: "allowReassignment"))
    AssignPrivateIpAddressesRequest.struct_class = Types::AssignPrivateIpAddressesRequest

    AssignPrivateIpAddressesResult.add_member(:network_interface_id, Shapes::ShapeRef.new(shape: String, location_name: "networkInterfaceId"))
    AssignPrivateIpAddressesResult.add_member(:assigned_private_ip_addresses, Shapes::ShapeRef.new(shape: AssignedPrivateIpAddressList, location_name: "assignedPrivateIpAddressesSet"))
    AssignPrivateIpAddressesResult.add_member(:assigned_ipv_4_prefixes, Shapes::ShapeRef.new(shape: Ipv4PrefixesList, location_name: "assignedIpv4PrefixSet"))
    AssignPrivateIpAddressesResult.struct_class = Types::AssignPrivateIpAddressesResult

    AssignPrivateNatGatewayAddressRequest.add_member(:nat_gateway_id, Shapes::ShapeRef.new(shape: NatGatewayId, required: true, location_name: "NatGatewayId"))
    AssignPrivateNatGatewayAddressRequest.add_member(:private_ip_addresses, Shapes::ShapeRef.new(shape: IpList, location_name: "PrivateIpAddress"))
    AssignPrivateNatGatewayAddressRequest.add_member(:private_ip_address_count, Shapes::ShapeRef.new(shape: PrivateIpAddressCount, location_name: "PrivateIpAddressCount"))
    AssignPrivateNatGatewayAddressRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    AssignPrivateNatGatewayAddressRequest.struct_class = Types::AssignPrivateNatGatewayAddressRequest

    AssignPrivateNatGatewayAddressResult.add_member(:nat_gateway_id, Shapes::ShapeRef.new(shape: NatGatewayId, location_name: "natGatewayId"))
    AssignPrivateNatGatewayAddressResult.add_member(:nat_gateway_addresses, Shapes::ShapeRef.new(shape: NatGatewayAddressList, location_name: "natGatewayAddressSet"))
    AssignPrivateNatGatewayAddressResult.struct_class = Types::AssignPrivateNatGatewayAddressResult

    AssignedPrivateIpAddress.add_member(:private_ip_address, Shapes::ShapeRef.new(shape: String, location_name: "privateIpAddress"))
    AssignedPrivateIpAddress.struct_class = Types::AssignedPrivateIpAddress

    AssignedPrivateIpAddressList.member = Shapes::ShapeRef.new(shape: AssignedPrivateIpAddress, location_name: "item")

    AssociateAddressRequest.add_member(:allocation_id, Shapes::ShapeRef.new(shape: AllocationId, location_name: "AllocationId"))
    AssociateAddressRequest.add_member(:instance_id, Shapes::ShapeRef.new(shape: InstanceId, location_name: "InstanceId"))
    AssociateAddressRequest.add_member(:public_ip, Shapes::ShapeRef.new(shape: EipAllocationPublicIp, location_name: "PublicIp"))
    AssociateAddressRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "dryRun"))
    AssociateAddressRequest.add_member(:network_interface_id, Shapes::ShapeRef.new(shape: NetworkInterfaceId, location_name: "networkInterfaceId"))
    AssociateAddressRequest.add_member(:private_ip_address, Shapes::ShapeRef.new(shape: String, location_name: "privateIpAddress"))
    AssociateAddressRequest.add_member(:allow_reassociation, Shapes::ShapeRef.new(shape: Boolean, location_name: "allowReassociation"))
    AssociateAddressRequest.struct_class = Types::AssociateAddressRequest

    AssociateAddressResult.add_member(:association_id, Shapes::ShapeRef.new(shape: String, location_name: "associationId"))
    AssociateAddressResult.struct_class = Types::AssociateAddressResult

    AssociateCapacityReservationBillingOwnerRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    AssociateCapacityReservationBillingOwnerRequest.add_member(:capacity_reservation_id, Shapes::ShapeRef.new(shape: CapacityReservationId, required: true, location_name: "CapacityReservationId"))
    AssociateCapacityReservationBillingOwnerRequest.add_member(:unused_reservation_billing_owner_id, Shapes::ShapeRef.new(shape: AccountID, required: true, location_name: "UnusedReservationBillingOwnerId"))
    AssociateCapacityReservationBillingOwnerRequest.struct_class = Types::AssociateCapacityReservationBillingOwnerRequest

    AssociateCapacityReservationBillingOwnerResult.add_member(:return, Shapes::ShapeRef.new(shape: Boolean, location_name: "return"))
    AssociateCapacityReservationBillingOwnerResult.struct_class = Types::AssociateCapacityReservationBillingOwnerResult

    AssociateClientVpnTargetNetworkRequest.add_member(:client_vpn_endpoint_id, Shapes::ShapeRef.new(shape: ClientVpnEndpointId, required: true, location_name: "ClientVpnEndpointId"))
    AssociateClientVpnTargetNetworkRequest.add_member(:subnet_id, Shapes::ShapeRef.new(shape: SubnetId, required: true, location_name: "SubnetId"))
    AssociateClientVpnTargetNetworkRequest.add_member(:client_token, Shapes::ShapeRef.new(shape: String, location_name: "ClientToken", metadata: {"idempotencyToken"=>true}))
    AssociateClientVpnTargetNetworkRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    AssociateClientVpnTargetNetworkRequest.struct_class = Types::AssociateClientVpnTargetNetworkRequest

    AssociateClientVpnTargetNetworkResult.add_member(:association_id, Shapes::ShapeRef.new(shape: String, location_name: "associationId"))
    AssociateClientVpnTargetNetworkResult.add_member(:status, Shapes::ShapeRef.new(shape: AssociationStatus, location_name: "status"))
    AssociateClientVpnTargetNetworkResult.struct_class = Types::AssociateClientVpnTargetNetworkResult

    AssociateDhcpOptionsRequest.add_member(:dhcp_options_id, Shapes::ShapeRef.new(shape: DefaultingDhcpOptionsId, required: true, location_name: "DhcpOptionsId"))
    AssociateDhcpOptionsRequest.add_member(:vpc_id, Shapes::ShapeRef.new(shape: VpcId, required: true, location_name: "VpcId"))
    AssociateDhcpOptionsRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "dryRun"))
    AssociateDhcpOptionsRequest.struct_class = Types::AssociateDhcpOptionsRequest

    AssociateEnclaveCertificateIamRoleRequest.add_member(:certificate_arn, Shapes::ShapeRef.new(shape: CertificateId, required: true, location_name: "CertificateArn"))
    AssociateEnclaveCertificateIamRoleRequest.add_member(:role_arn, Shapes::ShapeRef.new(shape: RoleId, required: true, location_name: "RoleArn"))
    AssociateEnclaveCertificateIamRoleRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    AssociateEnclaveCertificateIamRoleRequest.struct_class = Types::AssociateEnclaveCertificateIamRoleRequest

    AssociateEnclaveCertificateIamRoleResult.add_member(:certificate_s3_bucket_name, Shapes::ShapeRef.new(shape: String, location_name: "certificateS3BucketName"))
    AssociateEnclaveCertificateIamRoleResult.add_member(:certificate_s3_object_key, Shapes::ShapeRef.new(shape: String, location_name: "certificateS3ObjectKey"))
    AssociateEnclaveCertificateIamRoleResult.add_member(:encryption_kms_key_id, Shapes::ShapeRef.new(shape: String, location_name: "encryptionKmsKeyId"))
    AssociateEnclaveCertificateIamRoleResult.struct_class = Types::AssociateEnclaveCertificateIamRoleResult

    AssociateIamInstanceProfileRequest.add_member(:iam_instance_profile, Shapes::ShapeRef.new(shape: IamInstanceProfileSpecification, required: true, location_name: "IamInstanceProfile"))
    AssociateIamInstanceProfileRequest.add_member(:instance_id, Shapes::ShapeRef.new(shape: InstanceId, required: true, location_name: "InstanceId"))
    AssociateIamInstanceProfileRequest.struct_class = Types::AssociateIamInstanceProfileRequest

    AssociateIamInstanceProfileResult.add_member(:iam_instance_profile_association, Shapes::ShapeRef.new(shape: IamInstanceProfileAssociation, location_name: "iamInstanceProfileAssociation"))
    AssociateIamInstanceProfileResult.struct_class = Types::AssociateIamInstanceProfileResult

    AssociateInstanceEventWindowRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    AssociateInstanceEventWindowRequest.add_member(:instance_event_window_id, Shapes::ShapeRef.new(shape: InstanceEventWindowId, required: true, location_name: "InstanceEventWindowId"))
    AssociateInstanceEventWindowRequest.add_member(:association_target, Shapes::ShapeRef.new(shape: InstanceEventWindowAssociationRequest, required: true, location_name: "AssociationTarget"))
    AssociateInstanceEventWindowRequest.struct_class = Types::AssociateInstanceEventWindowRequest

    AssociateInstanceEventWindowResult.add_member(:instance_event_window, Shapes::ShapeRef.new(shape: InstanceEventWindow, location_name: "instanceEventWindow"))
    AssociateInstanceEventWindowResult.struct_class = Types::AssociateInstanceEventWindowResult

    AssociateIpamByoasnRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    AssociateIpamByoasnRequest.add_member(:asn, Shapes::ShapeRef.new(shape: String, required: true, location_name: "Asn"))
    AssociateIpamByoasnRequest.add_member(:cidr, Shapes::ShapeRef.new(shape: String, required: true, location_name: "Cidr"))
    AssociateIpamByoasnRequest.struct_class = Types::AssociateIpamByoasnRequest

    AssociateIpamByoasnResult.add_member(:asn_association, Shapes::ShapeRef.new(shape: AsnAssociation, location_name: "asnAssociation"))
    AssociateIpamByoasnResult.struct_class = Types::AssociateIpamByoasnResult

    AssociateIpamResourceDiscoveryRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    AssociateIpamResourceDiscoveryRequest.add_member(:ipam_id, Shapes::ShapeRef.new(shape: IpamId, required: true, location_name: "IpamId"))
    AssociateIpamResourceDiscoveryRequest.add_member(:ipam_resource_discovery_id, Shapes::ShapeRef.new(shape: IpamResourceDiscoveryId, required: true, location_name: "IpamResourceDiscoveryId"))
    AssociateIpamResourceDiscoveryRequest.add_member(:tag_specifications, Shapes::ShapeRef.new(shape: TagSpecificationList, location_name: "TagSpecification"))
    AssociateIpamResourceDiscoveryRequest.add_member(:client_token, Shapes::ShapeRef.new(shape: String, location_name: "ClientToken", metadata: {"idempotencyToken"=>true}))
    AssociateIpamResourceDiscoveryRequest.struct_class = Types::AssociateIpamResourceDiscoveryRequest

    AssociateIpamResourceDiscoveryResult.add_member(:ipam_resource_discovery_association, Shapes::ShapeRef.new(shape: IpamResourceDiscoveryAssociation, location_name: "ipamResourceDiscoveryAssociation"))
    AssociateIpamResourceDiscoveryResult.struct_class = Types::AssociateIpamResourceDiscoveryResult

    AssociateNatGatewayAddressRequest.add_member(:nat_gateway_id, Shapes::ShapeRef.new(shape: NatGatewayId, required: true, location_name: "NatGatewayId"))
    AssociateNatGatewayAddressRequest.add_member(:allocation_ids, Shapes::ShapeRef.new(shape: AllocationIdList, required: true, location_name: "AllocationId"))
    AssociateNatGatewayAddressRequest.add_member(:private_ip_addresses, Shapes::ShapeRef.new(shape: IpList, location_name: "PrivateIpAddress"))
    AssociateNatGatewayAddressRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    AssociateNatGatewayAddressRequest.struct_class = Types::AssociateNatGatewayAddressRequest

    AssociateNatGatewayAddressResult.add_member(:nat_gateway_id, Shapes::ShapeRef.new(shape: NatGatewayId, location_name: "natGatewayId"))
    AssociateNatGatewayAddressResult.add_member(:nat_gateway_addresses, Shapes::ShapeRef.new(shape: NatGatewayAddressList, location_name: "natGatewayAddressSet"))
    AssociateNatGatewayAddressResult.struct_class = Types::AssociateNatGatewayAddressResult

    AssociateRouteTableRequest.add_member(:gateway_id, Shapes::ShapeRef.new(shape: RouteGatewayId, location_name: "GatewayId"))
    AssociateRouteTableRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "dryRun"))
    AssociateRouteTableRequest.add_member(:subnet_id, Shapes::ShapeRef.new(shape: SubnetId, location_name: "subnetId"))
    AssociateRouteTableRequest.add_member(:route_table_id, Shapes::ShapeRef.new(shape: RouteTableId, required: true, location_name: "routeTableId"))
    AssociateRouteTableRequest.struct_class = Types::AssociateRouteTableRequest

    AssociateRouteTableResult.add_member(:association_id, Shapes::ShapeRef.new(shape: String, location_name: "associationId"))
    AssociateRouteTableResult.add_member(:association_state, Shapes::ShapeRef.new(shape: RouteTableAssociationState, location_name: "associationState"))
    AssociateRouteTableResult.struct_class = Types::AssociateRouteTableResult

    AssociateSecurityGroupVpcRequest.add_member(:group_id, Shapes::ShapeRef.new(shape: SecurityGroupId, required: true, location_name: "GroupId"))
    AssociateSecurityGroupVpcRequest.add_member(:vpc_id, Shapes::ShapeRef.new(shape: VpcId, required: true, location_name: "VpcId"))
    AssociateSecurityGroupVpcRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    AssociateSecurityGroupVpcRequest.struct_class = Types::AssociateSecurityGroupVpcRequest

    AssociateSecurityGroupVpcResult.add_member(:state, Shapes::ShapeRef.new(shape: SecurityGroupVpcAssociationState, location_name: "state"))
    AssociateSecurityGroupVpcResult.struct_class = Types::AssociateSecurityGroupVpcResult

    AssociateSubnetCidrBlockRequest.add_member(:ipv_6_ipam_pool_id, Shapes::ShapeRef.new(shape: IpamPoolId, location_name: "Ipv6IpamPoolId"))
    AssociateSubnetCidrBlockRequest.add_member(:ipv_6_netmask_length, Shapes::ShapeRef.new(shape: NetmaskLength, location_name: "Ipv6NetmaskLength"))
    AssociateSubnetCidrBlockRequest.add_member(:subnet_id, Shapes::ShapeRef.new(shape: SubnetId, required: true, location_name: "subnetId"))
    AssociateSubnetCidrBlockRequest.add_member(:ipv_6_cidr_block, Shapes::ShapeRef.new(shape: String, location_name: "ipv6CidrBlock"))
    AssociateSubnetCidrBlockRequest.struct_class = Types::AssociateSubnetCidrBlockRequest

    AssociateSubnetCidrBlockResult.add_member(:ipv_6_cidr_block_association, Shapes::ShapeRef.new(shape: SubnetIpv6CidrBlockAssociation, location_name: "ipv6CidrBlockAssociation"))
    AssociateSubnetCidrBlockResult.add_member(:subnet_id, Shapes::ShapeRef.new(shape: String, location_name: "subnetId"))
    AssociateSubnetCidrBlockResult.struct_class = Types::AssociateSubnetCidrBlockResult

    AssociateTransitGatewayMulticastDomainRequest.add_member(:transit_gateway_multicast_domain_id, Shapes::ShapeRef.new(shape: TransitGatewayMulticastDomainId, required: true, location_name: "TransitGatewayMulticastDomainId"))
    AssociateTransitGatewayMulticastDomainRequest.add_member(:transit_gateway_attachment_id, Shapes::ShapeRef.new(shape: TransitGatewayAttachmentId, required: true, location_name: "TransitGatewayAttachmentId"))
    AssociateTransitGatewayMulticastDomainRequest.add_member(:subnet_ids, Shapes::ShapeRef.new(shape: TransitGatewaySubnetIdList, required: true, location_name: "SubnetIds"))
    AssociateTransitGatewayMulticastDomainRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    AssociateTransitGatewayMulticastDomainRequest.struct_class = Types::AssociateTransitGatewayMulticastDomainRequest

    AssociateTransitGatewayMulticastDomainResult.add_member(:associations, Shapes::ShapeRef.new(shape: TransitGatewayMulticastDomainAssociations, location_name: "associations"))
    AssociateTransitGatewayMulticastDomainResult.struct_class = Types::AssociateTransitGatewayMulticastDomainResult

    AssociateTransitGatewayPolicyTableRequest.add_member(:transit_gateway_policy_table_id, Shapes::ShapeRef.new(shape: TransitGatewayPolicyTableId, required: true, location_name: "TransitGatewayPolicyTableId"))
    AssociateTransitGatewayPolicyTableRequest.add_member(:transit_gateway_attachment_id, Shapes::ShapeRef.new(shape: TransitGatewayAttachmentId, required: true, location_name: "TransitGatewayAttachmentId"))
    AssociateTransitGatewayPolicyTableRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    AssociateTransitGatewayPolicyTableRequest.struct_class = Types::AssociateTransitGatewayPolicyTableRequest

    AssociateTransitGatewayPolicyTableResult.add_member(:association, Shapes::ShapeRef.new(shape: TransitGatewayPolicyTableAssociation, location_name: "association"))
    AssociateTransitGatewayPolicyTableResult.struct_class = Types::AssociateTransitGatewayPolicyTableResult

    AssociateTransitGatewayRouteTableRequest.add_member(:transit_gateway_route_table_id, Shapes::ShapeRef.new(shape: TransitGatewayRouteTableId, required: true, location_name: "TransitGatewayRouteTableId"))
    AssociateTransitGatewayRouteTableRequest.add_member(:transit_gateway_attachment_id, Shapes::ShapeRef.new(shape: TransitGatewayAttachmentId, required: true, location_name: "TransitGatewayAttachmentId"))
    AssociateTransitGatewayRouteTableRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    AssociateTransitGatewayRouteTableRequest.struct_class = Types::AssociateTransitGatewayRouteTableRequest

    AssociateTransitGatewayRouteTableResult.add_member(:association, Shapes::ShapeRef.new(shape: TransitGatewayAssociation, location_name: "association"))
    AssociateTransitGatewayRouteTableResult.struct_class = Types::AssociateTransitGatewayRouteTableResult

    AssociateTrunkInterfaceRequest.add_member(:branch_interface_id, Shapes::ShapeRef.new(shape: NetworkInterfaceId, required: true, location_name: "BranchInterfaceId"))
    AssociateTrunkInterfaceRequest.add_member(:trunk_interface_id, Shapes::ShapeRef.new(shape: NetworkInterfaceId, required: true, location_name: "TrunkInterfaceId"))
    AssociateTrunkInterfaceRequest.add_member(:vlan_id, Shapes::ShapeRef.new(shape: Integer, location_name: "VlanId"))
    AssociateTrunkInterfaceRequest.add_member(:gre_key, Shapes::ShapeRef.new(shape: Integer, location_name: "GreKey"))
    AssociateTrunkInterfaceRequest.add_member(:client_token, Shapes::ShapeRef.new(shape: String, location_name: "ClientToken", metadata: {"idempotencyToken"=>true}))
    AssociateTrunkInterfaceRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    AssociateTrunkInterfaceRequest.struct_class = Types::AssociateTrunkInterfaceRequest

    AssociateTrunkInterfaceResult.add_member(:interface_association, Shapes::ShapeRef.new(shape: TrunkInterfaceAssociation, location_name: "interfaceAssociation"))
    AssociateTrunkInterfaceResult.add_member(:client_token, Shapes::ShapeRef.new(shape: String, location_name: "clientToken"))
    AssociateTrunkInterfaceResult.struct_class = Types::AssociateTrunkInterfaceResult

    AssociateVpcCidrBlockRequest.add_member(:cidr_block, Shapes::ShapeRef.new(shape: String, location_name: "CidrBlock"))
    AssociateVpcCidrBlockRequest.add_member(:ipv_6_cidr_block_network_border_group, Shapes::ShapeRef.new(shape: String, location_name: "Ipv6CidrBlockNetworkBorderGroup"))
    AssociateVpcCidrBlockRequest.add_member(:ipv_6_pool, Shapes::ShapeRef.new(shape: Ipv6PoolEc2Id, location_name: "Ipv6Pool"))
    AssociateVpcCidrBlockRequest.add_member(:ipv_6_cidr_block, Shapes::ShapeRef.new(shape: String, location_name: "Ipv6CidrBlock"))
    AssociateVpcCidrBlockRequest.add_member(:ipv_4_ipam_pool_id, Shapes::ShapeRef.new(shape: IpamPoolId, location_name: "Ipv4IpamPoolId"))
    AssociateVpcCidrBlockRequest.add_member(:ipv_4_netmask_length, Shapes::ShapeRef.new(shape: NetmaskLength, location_name: "Ipv4NetmaskLength"))
    AssociateVpcCidrBlockRequest.add_member(:ipv_6_ipam_pool_id, Shapes::ShapeRef.new(shape: IpamPoolId, location_name: "Ipv6IpamPoolId"))
    AssociateVpcCidrBlockRequest.add_member(:ipv_6_netmask_length, Shapes::ShapeRef.new(shape: NetmaskLength, location_name: "Ipv6NetmaskLength"))
    AssociateVpcCidrBlockRequest.add_member(:vpc_id, Shapes::ShapeRef.new(shape: VpcId, required: true, location_name: "vpcId"))
    AssociateVpcCidrBlockRequest.add_member(:amazon_provided_ipv_6_cidr_block, Shapes::ShapeRef.new(shape: Boolean, location_name: "amazonProvidedIpv6CidrBlock"))
    AssociateVpcCidrBlockRequest.struct_class = Types::AssociateVpcCidrBlockRequest

    AssociateVpcCidrBlockResult.add_member(:ipv_6_cidr_block_association, Shapes::ShapeRef.new(shape: VpcIpv6CidrBlockAssociation, location_name: "ipv6CidrBlockAssociation"))
    AssociateVpcCidrBlockResult.add_member(:cidr_block_association, Shapes::ShapeRef.new(shape: VpcCidrBlockAssociation, location_name: "cidrBlockAssociation"))
    AssociateVpcCidrBlockResult.add_member(:vpc_id, Shapes::ShapeRef.new(shape: String, location_name: "vpcId"))
    AssociateVpcCidrBlockResult.struct_class = Types::AssociateVpcCidrBlockResult

    AssociatedRole.add_member(:associated_role_arn, Shapes::ShapeRef.new(shape: ResourceArn, location_name: "associatedRoleArn"))
    AssociatedRole.add_member(:certificate_s3_bucket_name, Shapes::ShapeRef.new(shape: String, location_name: "certificateS3BucketName"))
    AssociatedRole.add_member(:certificate_s3_object_key, Shapes::ShapeRef.new(shape: String, location_name: "certificateS3ObjectKey"))
    AssociatedRole.add_member(:encryption_kms_key_id, Shapes::ShapeRef.new(shape: String, location_name: "encryptionKmsKeyId"))
    AssociatedRole.struct_class = Types::AssociatedRole

    AssociatedRolesList.member = Shapes::ShapeRef.new(shape: AssociatedRole, location_name: "item")

    AssociatedTargetNetwork.add_member(:network_id, Shapes::ShapeRef.new(shape: String, location_name: "networkId"))
    AssociatedTargetNetwork.add_member(:network_type, Shapes::ShapeRef.new(shape: AssociatedNetworkType, location_name: "networkType"))
    AssociatedTargetNetwork.struct_class = Types::AssociatedTargetNetwork

    AssociatedTargetNetworkSet.member = Shapes::ShapeRef.new(shape: AssociatedTargetNetwork, location_name: "item")

    AssociationIdList.member = Shapes::ShapeRef.new(shape: IamInstanceProfileAssociationId, location_name: "AssociationId")

    AssociationStatus.add_member(:code, Shapes::ShapeRef.new(shape: AssociationStatusCode, location_name: "code"))
    AssociationStatus.add_member(:message, Shapes::ShapeRef.new(shape: String, location_name: "message"))
    AssociationStatus.struct_class = Types::AssociationStatus

    AthenaIntegration.add_member(:integration_result_s3_destination_arn, Shapes::ShapeRef.new(shape: String, required: true, location_name: "IntegrationResultS3DestinationArn"))
    AthenaIntegration.add_member(:partition_load_frequency, Shapes::ShapeRef.new(shape: PartitionLoadFrequency, required: true, location_name: "PartitionLoadFrequency"))
    AthenaIntegration.add_member(:partition_start_date, Shapes::ShapeRef.new(shape: MillisecondDateTime, location_name: "PartitionStartDate"))
    AthenaIntegration.add_member(:partition_end_date, Shapes::ShapeRef.new(shape: MillisecondDateTime, location_name: "PartitionEndDate"))
    AthenaIntegration.struct_class = Types::AthenaIntegration

    AthenaIntegrationsSet.member = Shapes::ShapeRef.new(shape: AthenaIntegration, location_name: "item")

    AttachClassicLinkVpcRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "dryRun"))
    AttachClassicLinkVpcRequest.add_member(:instance_id, Shapes::ShapeRef.new(shape: InstanceId, required: true, location_name: "instanceId"))
    AttachClassicLinkVpcRequest.add_member(:vpc_id, Shapes::ShapeRef.new(shape: VpcId, required: true, location_name: "vpcId"))
    AttachClassicLinkVpcRequest.add_member(:groups, Shapes::ShapeRef.new(shape: GroupIdStringList, required: true, location_name: "SecurityGroupId"))
    AttachClassicLinkVpcRequest.struct_class = Types::AttachClassicLinkVpcRequest

    AttachClassicLinkVpcResult.add_member(:return, Shapes::ShapeRef.new(shape: Boolean, location_name: "return"))
    AttachClassicLinkVpcResult.struct_class = Types::AttachClassicLinkVpcResult

    AttachInternetGatewayRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "dryRun"))
    AttachInternetGatewayRequest.add_member(:internet_gateway_id, Shapes::ShapeRef.new(shape: InternetGatewayId, required: true, location_name: "internetGatewayId"))
    AttachInternetGatewayRequest.add_member(:vpc_id, Shapes::ShapeRef.new(shape: VpcId, required: true, location_name: "vpcId"))
    AttachInternetGatewayRequest.struct_class = Types::AttachInternetGatewayRequest

    AttachNetworkInterfaceRequest.add_member(:network_card_index, Shapes::ShapeRef.new(shape: Integer, location_name: "NetworkCardIndex"))
    AttachNetworkInterfaceRequest.add_member(:ena_srd_specification, Shapes::ShapeRef.new(shape: EnaSrdSpecification, location_name: "EnaSrdSpecification"))
    AttachNetworkInterfaceRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "dryRun"))
    AttachNetworkInterfaceRequest.add_member(:network_interface_id, Shapes::ShapeRef.new(shape: NetworkInterfaceId, required: true, location_name: "networkInterfaceId"))
    AttachNetworkInterfaceRequest.add_member(:instance_id, Shapes::ShapeRef.new(shape: InstanceId, required: true, location_name: "instanceId"))
    AttachNetworkInterfaceRequest.add_member(:device_index, Shapes::ShapeRef.new(shape: Integer, required: true, location_name: "deviceIndex"))
    AttachNetworkInterfaceRequest.struct_class = Types::AttachNetworkInterfaceRequest

    AttachNetworkInterfaceResult.add_member(:attachment_id, Shapes::ShapeRef.new(shape: String, location_name: "attachmentId"))
    AttachNetworkInterfaceResult.add_member(:network_card_index, Shapes::ShapeRef.new(shape: Integer, location_name: "networkCardIndex"))
    AttachNetworkInterfaceResult.struct_class = Types::AttachNetworkInterfaceResult

    AttachVerifiedAccessTrustProviderRequest.add_member(:verified_access_instance_id, Shapes::ShapeRef.new(shape: VerifiedAccessInstanceId, required: true, location_name: "VerifiedAccessInstanceId"))
    AttachVerifiedAccessTrustProviderRequest.add_member(:verified_access_trust_provider_id, Shapes::ShapeRef.new(shape: VerifiedAccessTrustProviderId, required: true, location_name: "VerifiedAccessTrustProviderId"))
    AttachVerifiedAccessTrustProviderRequest.add_member(:client_token, Shapes::ShapeRef.new(shape: String, location_name: "ClientToken", metadata: {"idempotencyToken"=>true}))
    AttachVerifiedAccessTrustProviderRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    AttachVerifiedAccessTrustProviderRequest.struct_class = Types::AttachVerifiedAccessTrustProviderRequest

    AttachVerifiedAccessTrustProviderResult.add_member(:verified_access_trust_provider, Shapes::ShapeRef.new(shape: VerifiedAccessTrustProvider, location_name: "verifiedAccessTrustProvider"))
    AttachVerifiedAccessTrustProviderResult.add_member(:verified_access_instance, Shapes::ShapeRef.new(shape: VerifiedAccessInstance, location_name: "verifiedAccessInstance"))
    AttachVerifiedAccessTrustProviderResult.struct_class = Types::AttachVerifiedAccessTrustProviderResult

    AttachVolumeRequest.add_member(:device, Shapes::ShapeRef.new(shape: String, required: true, location_name: "Device"))
    AttachVolumeRequest.add_member(:instance_id, Shapes::ShapeRef.new(shape: InstanceId, required: true, location_name: "InstanceId"))
    AttachVolumeRequest.add_member(:volume_id, Shapes::ShapeRef.new(shape: VolumeId, required: true, location_name: "VolumeId"))
    AttachVolumeRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "dryRun"))
    AttachVolumeRequest.struct_class = Types::AttachVolumeRequest

    AttachVpnGatewayRequest.add_member(:vpc_id, Shapes::ShapeRef.new(shape: VpcId, required: true, location_name: "VpcId"))
    AttachVpnGatewayRequest.add_member(:vpn_gateway_id, Shapes::ShapeRef.new(shape: VpnGatewayId, required: true, location_name: "VpnGatewayId"))
    AttachVpnGatewayRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "dryRun"))
    AttachVpnGatewayRequest.struct_class = Types::AttachVpnGatewayRequest

    AttachVpnGatewayResult.add_member(:vpc_attachment, Shapes::ShapeRef.new(shape: VpcAttachment, location_name: "attachment"))
    AttachVpnGatewayResult.struct_class = Types::AttachVpnGatewayResult

    AttachmentEnaSrdSpecification.add_member(:ena_srd_enabled, Shapes::ShapeRef.new(shape: Boolean, location_name: "enaSrdEnabled"))
    AttachmentEnaSrdSpecification.add_member(:ena_srd_udp_specification, Shapes::ShapeRef.new(shape: AttachmentEnaSrdUdpSpecification, location_name: "enaSrdUdpSpecification"))
    AttachmentEnaSrdSpecification.struct_class = Types::AttachmentEnaSrdSpecification

    AttachmentEnaSrdUdpSpecification.add_member(:ena_srd_udp_enabled, Shapes::ShapeRef.new(shape: Boolean, location_name: "enaSrdUdpEnabled"))
    AttachmentEnaSrdUdpSpecification.struct_class = Types::AttachmentEnaSrdUdpSpecification

    AttributeBooleanValue.add_member(:value, Shapes::ShapeRef.new(shape: Boolean, location_name: "value"))
    AttributeBooleanValue.struct_class = Types::AttributeBooleanValue

    AttributeSummary.add_member(:attribute_name, Shapes::ShapeRef.new(shape: String, location_name: "attributeName"))
    AttributeSummary.add_member(:most_frequent_value, Shapes::ShapeRef.new(shape: String, location_name: "mostFrequentValue"))
    AttributeSummary.add_member(:number_of_matched_accounts, Shapes::ShapeRef.new(shape: Integer, location_name: "numberOfMatchedAccounts"))
    AttributeSummary.add_member(:number_of_unmatched_accounts, Shapes::ShapeRef.new(shape: Integer, location_name: "numberOfUnmatchedAccounts"))
    AttributeSummary.add_member(:regional_summaries, Shapes::ShapeRef.new(shape: RegionalSummaryList, location_name: "regionalSummarySet"))
    AttributeSummary.struct_class = Types::AttributeSummary

    AttributeSummaryList.member = Shapes::ShapeRef.new(shape: AttributeSummary, location_name: "item")

    AttributeValue.add_member(:value, Shapes::ShapeRef.new(shape: String, location_name: "value"))
    AttributeValue.struct_class = Types::AttributeValue

    AuthorizationRule.add_member(:client_vpn_endpoint_id, Shapes::ShapeRef.new(shape: String, location_name: "clientVpnEndpointId"))
    AuthorizationRule.add_member(:description, Shapes::ShapeRef.new(shape: String, location_name: "description"))
    AuthorizationRule.add_member(:group_id, Shapes::ShapeRef.new(shape: String, location_name: "groupId"))
    AuthorizationRule.add_member(:access_all, Shapes::ShapeRef.new(shape: Boolean, location_name: "accessAll"))
    AuthorizationRule.add_member(:destination_cidr, Shapes::ShapeRef.new(shape: String, location_name: "destinationCidr"))
    AuthorizationRule.add_member(:status, Shapes::ShapeRef.new(shape: ClientVpnAuthorizationRuleStatus, location_name: "status"))
    AuthorizationRule.struct_class = Types::AuthorizationRule

    AuthorizationRuleSet.member = Shapes::ShapeRef.new(shape: AuthorizationRule, location_name: "item")

    AuthorizeClientVpnIngressRequest.add_member(:client_vpn_endpoint_id, Shapes::ShapeRef.new(shape: ClientVpnEndpointId, required: true, location_name: "ClientVpnEndpointId"))
    AuthorizeClientVpnIngressRequest.add_member(:target_network_cidr, Shapes::ShapeRef.new(shape: String, required: true, location_name: "TargetNetworkCidr"))
    AuthorizeClientVpnIngressRequest.add_member(:access_group_id, Shapes::ShapeRef.new(shape: String, location_name: "AccessGroupId"))
    AuthorizeClientVpnIngressRequest.add_member(:authorize_all_groups, Shapes::ShapeRef.new(shape: Boolean, location_name: "AuthorizeAllGroups"))
    AuthorizeClientVpnIngressRequest.add_member(:description, Shapes::ShapeRef.new(shape: String, location_name: "Description"))
    AuthorizeClientVpnIngressRequest.add_member(:client_token, Shapes::ShapeRef.new(shape: String, location_name: "ClientToken", metadata: {"idempotencyToken"=>true}))
    AuthorizeClientVpnIngressRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    AuthorizeClientVpnIngressRequest.struct_class = Types::AuthorizeClientVpnIngressRequest

    AuthorizeClientVpnIngressResult.add_member(:status, Shapes::ShapeRef.new(shape: ClientVpnAuthorizationRuleStatus, location_name: "status"))
    AuthorizeClientVpnIngressResult.struct_class = Types::AuthorizeClientVpnIngressResult

    AuthorizeSecurityGroupEgressRequest.add_member(:tag_specifications, Shapes::ShapeRef.new(shape: TagSpecificationList, location_name: "TagSpecification"))
    AuthorizeSecurityGroupEgressRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "dryRun"))
    AuthorizeSecurityGroupEgressRequest.add_member(:group_id, Shapes::ShapeRef.new(shape: SecurityGroupId, required: true, location_name: "groupId"))
    AuthorizeSecurityGroupEgressRequest.add_member(:source_security_group_name, Shapes::ShapeRef.new(shape: String, location_name: "sourceSecurityGroupName"))
    AuthorizeSecurityGroupEgressRequest.add_member(:source_security_group_owner_id, Shapes::ShapeRef.new(shape: String, location_name: "sourceSecurityGroupOwnerId"))
    AuthorizeSecurityGroupEgressRequest.add_member(:ip_protocol, Shapes::ShapeRef.new(shape: String, location_name: "ipProtocol"))
    AuthorizeSecurityGroupEgressRequest.add_member(:from_port, Shapes::ShapeRef.new(shape: Integer, location_name: "fromPort"))
    AuthorizeSecurityGroupEgressRequest.add_member(:to_port, Shapes::ShapeRef.new(shape: Integer, location_name: "toPort"))
    AuthorizeSecurityGroupEgressRequest.add_member(:cidr_ip, Shapes::ShapeRef.new(shape: String, location_name: "cidrIp"))
    AuthorizeSecurityGroupEgressRequest.add_member(:ip_permissions, Shapes::ShapeRef.new(shape: IpPermissionList, location_name: "ipPermissions"))
    AuthorizeSecurityGroupEgressRequest.struct_class = Types::AuthorizeSecurityGroupEgressRequest

    AuthorizeSecurityGroupEgressResult.add_member(:return, Shapes::ShapeRef.new(shape: Boolean, location_name: "return"))
    AuthorizeSecurityGroupEgressResult.add_member(:security_group_rules, Shapes::ShapeRef.new(shape: SecurityGroupRuleList, location_name: "securityGroupRuleSet"))
    AuthorizeSecurityGroupEgressResult.struct_class = Types::AuthorizeSecurityGroupEgressResult

    AuthorizeSecurityGroupIngressRequest.add_member(:cidr_ip, Shapes::ShapeRef.new(shape: String, location_name: "CidrIp"))
    AuthorizeSecurityGroupIngressRequest.add_member(:from_port, Shapes::ShapeRef.new(shape: Integer, location_name: "FromPort"))
    AuthorizeSecurityGroupIngressRequest.add_member(:group_id, Shapes::ShapeRef.new(shape: SecurityGroupId, location_name: "GroupId"))
    AuthorizeSecurityGroupIngressRequest.add_member(:group_name, Shapes::ShapeRef.new(shape: SecurityGroupName, location_name: "GroupName"))
    AuthorizeSecurityGroupIngressRequest.add_member(:ip_permissions, Shapes::ShapeRef.new(shape: IpPermissionList, location_name: "IpPermissions"))
    AuthorizeSecurityGroupIngressRequest.add_member(:ip_protocol, Shapes::ShapeRef.new(shape: String, location_name: "IpProtocol"))
    AuthorizeSecurityGroupIngressRequest.add_member(:source_security_group_name, Shapes::ShapeRef.new(shape: String, location_name: "SourceSecurityGroupName"))
    AuthorizeSecurityGroupIngressRequest.add_member(:source_security_group_owner_id, Shapes::ShapeRef.new(shape: String, location_name: "SourceSecurityGroupOwnerId"))
    AuthorizeSecurityGroupIngressRequest.add_member(:to_port, Shapes::ShapeRef.new(shape: Integer, location_name: "ToPort"))
    AuthorizeSecurityGroupIngressRequest.add_member(:tag_specifications, Shapes::ShapeRef.new(shape: TagSpecificationList, location_name: "TagSpecification"))
    AuthorizeSecurityGroupIngressRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "dryRun"))
    AuthorizeSecurityGroupIngressRequest.struct_class = Types::AuthorizeSecurityGroupIngressRequest

    AuthorizeSecurityGroupIngressResult.add_member(:return, Shapes::ShapeRef.new(shape: Boolean, location_name: "return"))
    AuthorizeSecurityGroupIngressResult.add_member(:security_group_rules, Shapes::ShapeRef.new(shape: SecurityGroupRuleList, location_name: "securityGroupRuleSet"))
    AuthorizeSecurityGroupIngressResult.struct_class = Types::AuthorizeSecurityGroupIngressResult

    AvailabilityZone.add_member(:opt_in_status, Shapes::ShapeRef.new(shape: AvailabilityZoneOptInStatus, location_name: "optInStatus"))
    AvailabilityZone.add_member(:messages, Shapes::ShapeRef.new(shape: AvailabilityZoneMessageList, location_name: "messageSet"))
    AvailabilityZone.add_member(:region_name, Shapes::ShapeRef.new(shape: String, location_name: "regionName"))
    AvailabilityZone.add_member(:zone_name, Shapes::ShapeRef.new(shape: String, location_name: "zoneName"))
    AvailabilityZone.add_member(:zone_id, Shapes::ShapeRef.new(shape: String, location_name: "zoneId"))
    AvailabilityZone.add_member(:group_name, Shapes::ShapeRef.new(shape: String, location_name: "groupName"))
    AvailabilityZone.add_member(:network_border_group, Shapes::ShapeRef.new(shape: String, location_name: "networkBorderGroup"))
    AvailabilityZone.add_member(:zone_type, Shapes::ShapeRef.new(shape: String, location_name: "zoneType"))
    AvailabilityZone.add_member(:parent_zone_name, Shapes::ShapeRef.new(shape: String, location_name: "parentZoneName"))
    AvailabilityZone.add_member(:parent_zone_id, Shapes::ShapeRef.new(shape: String, location_name: "parentZoneId"))
    AvailabilityZone.add_member(:group_long_name, Shapes::ShapeRef.new(shape: String, location_name: "groupLongName"))
    AvailabilityZone.add_member(:state, Shapes::ShapeRef.new(shape: AvailabilityZoneState, location_name: "zoneState"))
    AvailabilityZone.struct_class = Types::AvailabilityZone

    AvailabilityZoneList.member = Shapes::ShapeRef.new(shape: AvailabilityZone, location_name: "item")

    AvailabilityZoneMessage.add_member(:message, Shapes::ShapeRef.new(shape: String, location_name: "message"))
    AvailabilityZoneMessage.struct_class = Types::AvailabilityZoneMessage

    AvailabilityZoneMessageList.member = Shapes::ShapeRef.new(shape: AvailabilityZoneMessage, location_name: "item")

    AvailabilityZoneStringList.member = Shapes::ShapeRef.new(shape: String, location_name: "AvailabilityZone")

    AvailableCapacity.add_member(:available_instance_capacity, Shapes::ShapeRef.new(shape: AvailableInstanceCapacityList, location_name: "availableInstanceCapacity"))
    AvailableCapacity.add_member(:available_v_cpus, Shapes::ShapeRef.new(shape: Integer, location_name: "availableVCpus"))
    AvailableCapacity.struct_class = Types::AvailableCapacity

    AvailableInstanceCapacityList.member = Shapes::ShapeRef.new(shape: InstanceCapacity, location_name: "item")

    BandwidthWeightingTypeList.member = Shapes::ShapeRef.new(shape: BandwidthWeightingType, location_name: "item")

    BaselineEbsBandwidthMbps.add_member(:min, Shapes::ShapeRef.new(shape: Integer, location_name: "min"))
    BaselineEbsBandwidthMbps.add_member(:max, Shapes::ShapeRef.new(shape: Integer, location_name: "max"))
    BaselineEbsBandwidthMbps.struct_class = Types::BaselineEbsBandwidthMbps

    BaselineEbsBandwidthMbpsRequest.add_member(:min, Shapes::ShapeRef.new(shape: Integer, location_name: "Min"))
    BaselineEbsBandwidthMbpsRequest.add_member(:max, Shapes::ShapeRef.new(shape: Integer, location_name: "Max"))
    BaselineEbsBandwidthMbpsRequest.struct_class = Types::BaselineEbsBandwidthMbpsRequest

    BaselinePerformanceFactors.add_member(:cpu, Shapes::ShapeRef.new(shape: CpuPerformanceFactor, location_name: "cpu"))
    BaselinePerformanceFactors.struct_class = Types::BaselinePerformanceFactors

    BaselinePerformanceFactorsRequest.add_member(:cpu, Shapes::ShapeRef.new(shape: CpuPerformanceFactorRequest, location_name: "Cpu"))
    BaselinePerformanceFactorsRequest.struct_class = Types::BaselinePerformanceFactorsRequest

    BillingProductList.member = Shapes::ShapeRef.new(shape: String, location_name: "item")

    BlobAttributeValue.add_member(:value, Shapes::ShapeRef.new(shape: Blob, location_name: "value"))
    BlobAttributeValue.struct_class = Types::BlobAttributeValue

    BlockDeviceMapping.add_member(:ebs, Shapes::ShapeRef.new(shape: EbsBlockDevice, location_name: "ebs"))
    BlockDeviceMapping.add_member(:no_device, Shapes::ShapeRef.new(shape: String, location_name: "noDevice"))
    BlockDeviceMapping.add_member(:device_name, Shapes::ShapeRef.new(shape: String, location_name: "deviceName"))
    BlockDeviceMapping.add_member(:virtual_name, Shapes::ShapeRef.new(shape: String, location_name: "virtualName"))
    BlockDeviceMapping.struct_class = Types::BlockDeviceMapping

    BlockDeviceMappingList.member = Shapes::ShapeRef.new(shape: BlockDeviceMapping, location_name: "item")

    BlockDeviceMappingRequestList.member = Shapes::ShapeRef.new(shape: BlockDeviceMapping, location_name: "BlockDeviceMapping")

    BlockDeviceMappingResponse.add_member(:device_name, Shapes::ShapeRef.new(shape: String, location_name: "deviceName"))
    BlockDeviceMappingResponse.add_member(:virtual_name, Shapes::ShapeRef.new(shape: String, location_name: "virtualName"))
    BlockDeviceMappingResponse.add_member(:ebs, Shapes::ShapeRef.new(shape: EbsBlockDeviceResponse, location_name: "ebs"))
    BlockDeviceMappingResponse.add_member(:no_device, Shapes::ShapeRef.new(shape: String, location_name: "noDevice"))
    BlockDeviceMappingResponse.struct_class = Types::BlockDeviceMappingResponse

    BlockDeviceMappingResponseList.member = Shapes::ShapeRef.new(shape: BlockDeviceMappingResponse, location_name: "item")

    BlockPublicAccessStates.add_member(:internet_gateway_block_mode, Shapes::ShapeRef.new(shape: BlockPublicAccessMode, location_name: "internetGatewayBlockMode"))
    BlockPublicAccessStates.struct_class = Types::BlockPublicAccessStates

    BootModeTypeList.member = Shapes::ShapeRef.new(shape: BootModeType, location_name: "item")

    BundleIdStringList.member = Shapes::ShapeRef.new(shape: BundleId, location_name: "BundleId")

    BundleInstanceRequest.add_member(:instance_id, Shapes::ShapeRef.new(shape: InstanceId, required: true, location_name: "InstanceId"))
    BundleInstanceRequest.add_member(:storage, Shapes::ShapeRef.new(shape: Storage, required: true, location_name: "Storage"))
    BundleInstanceRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "dryRun"))
    BundleInstanceRequest.struct_class = Types::BundleInstanceRequest

    BundleInstanceResult.add_member(:bundle_task, Shapes::ShapeRef.new(shape: BundleTask, location_name: "bundleInstanceTask"))
    BundleInstanceResult.struct_class = Types::BundleInstanceResult

    BundleTask.add_member(:instance_id, Shapes::ShapeRef.new(shape: String, location_name: "instanceId"))
    BundleTask.add_member(:bundle_id, Shapes::ShapeRef.new(shape: String, location_name: "bundleId"))
    BundleTask.add_member(:state, Shapes::ShapeRef.new(shape: BundleTaskState, location_name: "state"))
    BundleTask.add_member(:start_time, Shapes::ShapeRef.new(shape: DateTime, location_name: "startTime"))
    BundleTask.add_member(:update_time, Shapes::ShapeRef.new(shape: DateTime, location_name: "updateTime"))
    BundleTask.add_member(:storage, Shapes::ShapeRef.new(shape: Storage, location_name: "storage"))
    BundleTask.add_member(:progress, Shapes::ShapeRef.new(shape: String, location_name: "progress"))
    BundleTask.add_member(:bundle_task_error, Shapes::ShapeRef.new(shape: BundleTaskError, location_name: "error"))
    BundleTask.struct_class = Types::BundleTask

    BundleTaskError.add_member(:code, Shapes::ShapeRef.new(shape: String, location_name: "code"))
    BundleTaskError.add_member(:message, Shapes::ShapeRef.new(shape: String, location_name: "message"))
    BundleTaskError.struct_class = Types::BundleTaskError

    BundleTaskList.member = Shapes::ShapeRef.new(shape: BundleTask, location_name: "item")

    Byoasn.add_member(:asn, Shapes::ShapeRef.new(shape: String, location_name: "asn"))
    Byoasn.add_member(:ipam_id, Shapes::ShapeRef.new(shape: IpamId, location_name: "ipamId"))
    Byoasn.add_member(:status_message, Shapes::ShapeRef.new(shape: String, location_name: "statusMessage"))
    Byoasn.add_member(:state, Shapes::ShapeRef.new(shape: AsnState, location_name: "state"))
    Byoasn.struct_class = Types::Byoasn

    ByoasnSet.member = Shapes::ShapeRef.new(shape: Byoasn, location_name: "item")

    ByoipCidr.add_member(:cidr, Shapes::ShapeRef.new(shape: String, location_name: "cidr"))
    ByoipCidr.add_member(:description, Shapes::ShapeRef.new(shape: String, location_name: "description"))
    ByoipCidr.add_member(:asn_associations, Shapes::ShapeRef.new(shape: AsnAssociationSet, location_name: "asnAssociationSet"))
    ByoipCidr.add_member(:status_message, Shapes::ShapeRef.new(shape: String, location_name: "statusMessage"))
    ByoipCidr.add_member(:state, Shapes::ShapeRef.new(shape: ByoipCidrState, location_name: "state"))
    ByoipCidr.add_member(:network_border_group, Shapes::ShapeRef.new(shape: String, location_name: "networkBorderGroup"))
    ByoipCidr.struct_class = Types::ByoipCidr

    ByoipCidrSet.member = Shapes::ShapeRef.new(shape: ByoipCidr, location_name: "item")

    CancelBundleTaskRequest.add_member(:bundle_id, Shapes::ShapeRef.new(shape: BundleId, required: true, location_name: "BundleId"))
    CancelBundleTaskRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "dryRun"))
    CancelBundleTaskRequest.struct_class = Types::CancelBundleTaskRequest

    CancelBundleTaskResult.add_member(:bundle_task, Shapes::ShapeRef.new(shape: BundleTask, location_name: "bundleInstanceTask"))
    CancelBundleTaskResult.struct_class = Types::CancelBundleTaskResult

    CancelCapacityReservationFleetError.add_member(:code, Shapes::ShapeRef.new(shape: CancelCapacityReservationFleetErrorCode, location_name: "code"))
    CancelCapacityReservationFleetError.add_member(:message, Shapes::ShapeRef.new(shape: CancelCapacityReservationFleetErrorMessage, location_name: "message"))
    CancelCapacityReservationFleetError.struct_class = Types::CancelCapacityReservationFleetError

    CancelCapacityReservationFleetsRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    CancelCapacityReservationFleetsRequest.add_member(:capacity_reservation_fleet_ids, Shapes::ShapeRef.new(shape: CapacityReservationFleetIdSet, required: true, location_name: "CapacityReservationFleetId"))
    CancelCapacityReservationFleetsRequest.struct_class = Types::CancelCapacityReservationFleetsRequest

    CancelCapacityReservationFleetsResult.add_member(:successful_fleet_cancellations, Shapes::ShapeRef.new(shape: CapacityReservationFleetCancellationStateSet, location_name: "successfulFleetCancellationSet"))
    CancelCapacityReservationFleetsResult.add_member(:failed_fleet_cancellations, Shapes::ShapeRef.new(shape: FailedCapacityReservationFleetCancellationResultSet, location_name: "failedFleetCancellationSet"))
    CancelCapacityReservationFleetsResult.struct_class = Types::CancelCapacityReservationFleetsResult

    CancelCapacityReservationRequest.add_member(:capacity_reservation_id, Shapes::ShapeRef.new(shape: CapacityReservationId, required: true, location_name: "CapacityReservationId"))
    CancelCapacityReservationRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    CancelCapacityReservationRequest.struct_class = Types::CancelCapacityReservationRequest

    CancelCapacityReservationResult.add_member(:return, Shapes::ShapeRef.new(shape: Boolean, location_name: "return"))
    CancelCapacityReservationResult.struct_class = Types::CancelCapacityReservationResult

    CancelConversionRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "dryRun"))
    CancelConversionRequest.add_member(:conversion_task_id, Shapes::ShapeRef.new(shape: ConversionTaskId, required: true, location_name: "conversionTaskId"))
    CancelConversionRequest.add_member(:reason_message, Shapes::ShapeRef.new(shape: String, location_name: "reasonMessage"))
    CancelConversionRequest.struct_class = Types::CancelConversionRequest

    CancelDeclarativePoliciesReportRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    CancelDeclarativePoliciesReportRequest.add_member(:report_id, Shapes::ShapeRef.new(shape: DeclarativePoliciesReportId, required: true, location_name: "ReportId"))
    CancelDeclarativePoliciesReportRequest.struct_class = Types::CancelDeclarativePoliciesReportRequest

    CancelDeclarativePoliciesReportResult.add_member(:return, Shapes::ShapeRef.new(shape: Boolean, location_name: "return"))
    CancelDeclarativePoliciesReportResult.struct_class = Types::CancelDeclarativePoliciesReportResult

    CancelExportTaskRequest.add_member(:export_task_id, Shapes::ShapeRef.new(shape: ExportVmTaskId, required: true, location_name: "exportTaskId"))
    CancelExportTaskRequest.struct_class = Types::CancelExportTaskRequest

    CancelImageLaunchPermissionRequest.add_member(:image_id, Shapes::ShapeRef.new(shape: ImageId, required: true, location_name: "ImageId"))
    CancelImageLaunchPermissionRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    CancelImageLaunchPermissionRequest.struct_class = Types::CancelImageLaunchPermissionRequest

    CancelImageLaunchPermissionResult.add_member(:return, Shapes::ShapeRef.new(shape: Boolean, location_name: "return"))
    CancelImageLaunchPermissionResult.struct_class = Types::CancelImageLaunchPermissionResult

    CancelImportTaskRequest.add_member(:cancel_reason, Shapes::ShapeRef.new(shape: String, location_name: "CancelReason"))
    CancelImportTaskRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    CancelImportTaskRequest.add_member(:import_task_id, Shapes::ShapeRef.new(shape: ImportTaskId, location_name: "ImportTaskId"))
    CancelImportTaskRequest.struct_class = Types::CancelImportTaskRequest

    CancelImportTaskResult.add_member(:import_task_id, Shapes::ShapeRef.new(shape: String, location_name: "importTaskId"))
    CancelImportTaskResult.add_member(:previous_state, Shapes::ShapeRef.new(shape: String, location_name: "previousState"))
    CancelImportTaskResult.add_member(:state, Shapes::ShapeRef.new(shape: String, location_name: "state"))
    CancelImportTaskResult.struct_class = Types::CancelImportTaskResult

    CancelReservedInstancesListingRequest.add_member(:reserved_instances_listing_id, Shapes::ShapeRef.new(shape: ReservedInstancesListingId, required: true, location_name: "reservedInstancesListingId"))
    CancelReservedInstancesListingRequest.struct_class = Types::CancelReservedInstancesListingRequest

    CancelReservedInstancesListingResult.add_member(:reserved_instances_listings, Shapes::ShapeRef.new(shape: ReservedInstancesListingList, location_name: "reservedInstancesListingsSet"))
    CancelReservedInstancesListingResult.struct_class = Types::CancelReservedInstancesListingResult

    CancelSpotFleetRequestsError.add_member(:code, Shapes::ShapeRef.new(shape: CancelBatchErrorCode, location_name: "code"))
    CancelSpotFleetRequestsError.add_member(:message, Shapes::ShapeRef.new(shape: String, location_name: "message"))
    CancelSpotFleetRequestsError.struct_class = Types::CancelSpotFleetRequestsError

    CancelSpotFleetRequestsErrorItem.add_member(:error, Shapes::ShapeRef.new(shape: CancelSpotFleetRequestsError, location_name: "error"))
    CancelSpotFleetRequestsErrorItem.add_member(:spot_fleet_request_id, Shapes::ShapeRef.new(shape: String, location_name: "spotFleetRequestId"))
    CancelSpotFleetRequestsErrorItem.struct_class = Types::CancelSpotFleetRequestsErrorItem

    CancelSpotFleetRequestsErrorSet.member = Shapes::ShapeRef.new(shape: CancelSpotFleetRequestsErrorItem, location_name: "item")

    CancelSpotFleetRequestsRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "dryRun"))
    CancelSpotFleetRequestsRequest.add_member(:spot_fleet_request_ids, Shapes::ShapeRef.new(shape: SpotFleetRequestIdList, required: true, location_name: "spotFleetRequestId"))
    CancelSpotFleetRequestsRequest.add_member(:terminate_instances, Shapes::ShapeRef.new(shape: Boolean, required: true, location_name: "terminateInstances"))
    CancelSpotFleetRequestsRequest.struct_class = Types::CancelSpotFleetRequestsRequest

    CancelSpotFleetRequestsResponse.add_member(:successful_fleet_requests, Shapes::ShapeRef.new(shape: CancelSpotFleetRequestsSuccessSet, location_name: "successfulFleetRequestSet"))
    CancelSpotFleetRequestsResponse.add_member(:unsuccessful_fleet_requests, Shapes::ShapeRef.new(shape: CancelSpotFleetRequestsErrorSet, location_name: "unsuccessfulFleetRequestSet"))
    CancelSpotFleetRequestsResponse.struct_class = Types::CancelSpotFleetRequestsResponse

    CancelSpotFleetRequestsSuccessItem.add_member(:current_spot_fleet_request_state, Shapes::ShapeRef.new(shape: BatchState, location_name: "currentSpotFleetRequestState"))
    CancelSpotFleetRequestsSuccessItem.add_member(:previous_spot_fleet_request_state, Shapes::ShapeRef.new(shape: BatchState, location_name: "previousSpotFleetRequestState"))
    CancelSpotFleetRequestsSuccessItem.add_member(:spot_fleet_request_id, Shapes::ShapeRef.new(shape: String, location_name: "spotFleetRequestId"))
    CancelSpotFleetRequestsSuccessItem.struct_class = Types::CancelSpotFleetRequestsSuccessItem

    CancelSpotFleetRequestsSuccessSet.member = Shapes::ShapeRef.new(shape: CancelSpotFleetRequestsSuccessItem, location_name: "item")

    CancelSpotInstanceRequestsRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "dryRun"))
    CancelSpotInstanceRequestsRequest.add_member(:spot_instance_request_ids, Shapes::ShapeRef.new(shape: SpotInstanceRequestIdList, required: true, location_name: "SpotInstanceRequestId"))
    CancelSpotInstanceRequestsRequest.struct_class = Types::CancelSpotInstanceRequestsRequest

    CancelSpotInstanceRequestsResult.add_member(:cancelled_spot_instance_requests, Shapes::ShapeRef.new(shape: CancelledSpotInstanceRequestList, location_name: "spotInstanceRequestSet"))
    CancelSpotInstanceRequestsResult.struct_class = Types::CancelSpotInstanceRequestsResult

    CancelledSpotInstanceRequest.add_member(:spot_instance_request_id, Shapes::ShapeRef.new(shape: String, location_name: "spotInstanceRequestId"))
    CancelledSpotInstanceRequest.add_member(:state, Shapes::ShapeRef.new(shape: CancelSpotInstanceRequestState, location_name: "state"))
    CancelledSpotInstanceRequest.struct_class = Types::CancelledSpotInstanceRequest

    CancelledSpotInstanceRequestList.member = Shapes::ShapeRef.new(shape: CancelledSpotInstanceRequest, location_name: "item")

    CapacityAllocation.add_member(:allocation_type, Shapes::ShapeRef.new(shape: AllocationType, location_name: "allocationType"))
    CapacityAllocation.add_member(:count, Shapes::ShapeRef.new(shape: Integer, location_name: "count"))
    CapacityAllocation.struct_class = Types::CapacityAllocation

    CapacityAllocations.member = Shapes::ShapeRef.new(shape: CapacityAllocation, location_name: "item")

    CapacityBlockExtension.add_member(:capacity_reservation_id, Shapes::ShapeRef.new(shape: CapacityReservationId, location_name: "capacityReservationId"))
    CapacityBlockExtension.add_member(:instance_type, Shapes::ShapeRef.new(shape: String, location_name: "instanceType"))
    CapacityBlockExtension.add_member(:instance_count, Shapes::ShapeRef.new(shape: Integer, location_name: "instanceCount"))
    CapacityBlockExtension.add_member(:availability_zone, Shapes::ShapeRef.new(shape: AvailabilityZoneName, location_name: "availabilityZone"))
    CapacityBlockExtension.add_member(:availability_zone_id, Shapes::ShapeRef.new(shape: AvailabilityZoneId, location_name: "availabilityZoneId"))
    CapacityBlockExtension.add_member(:capacity_block_extension_offering_id, Shapes::ShapeRef.new(shape: OfferingId, location_name: "capacityBlockExtensionOfferingId"))
    CapacityBlockExtension.add_member(:capacity_block_extension_duration_hours, Shapes::ShapeRef.new(shape: Integer, location_name: "capacityBlockExtensionDurationHours"))
    CapacityBlockExtension.add_member(:capacity_block_extension_status, Shapes::ShapeRef.new(shape: CapacityBlockExtensionStatus, location_name: "capacityBlockExtensionStatus"))
    CapacityBlockExtension.add_member(:capacity_block_extension_purchase_date, Shapes::ShapeRef.new(shape: MillisecondDateTime, location_name: "capacityBlockExtensionPurchaseDate"))
    CapacityBlockExtension.add_member(:capacity_block_extension_start_date, Shapes::ShapeRef.new(shape: MillisecondDateTime, location_name: "capacityBlockExtensionStartDate"))
    CapacityBlockExtension.add_member(:capacity_block_extension_end_date, Shapes::ShapeRef.new(shape: MillisecondDateTime, location_name: "capacityBlockExtensionEndDate"))
    CapacityBlockExtension.add_member(:upfront_fee, Shapes::ShapeRef.new(shape: String, location_name: "upfrontFee"))
    CapacityBlockExtension.add_member(:currency_code, Shapes::ShapeRef.new(shape: String, location_name: "currencyCode"))
    CapacityBlockExtension.struct_class = Types::CapacityBlockExtension

    CapacityBlockExtensionOffering.add_member(:capacity_block_extension_offering_id, Shapes::ShapeRef.new(shape: OfferingId, location_name: "capacityBlockExtensionOfferingId"))
    CapacityBlockExtensionOffering.add_member(:instance_type, Shapes::ShapeRef.new(shape: String, location_name: "instanceType"))
    CapacityBlockExtensionOffering.add_member(:instance_count, Shapes::ShapeRef.new(shape: Integer, location_name: "instanceCount"))
    CapacityBlockExtensionOffering.add_member(:availability_zone, Shapes::ShapeRef.new(shape: AvailabilityZoneName, location_name: "availabilityZone"))
    CapacityBlockExtensionOffering.add_member(:availability_zone_id, Shapes::ShapeRef.new(shape: AvailabilityZoneId, location_name: "availabilityZoneId"))
    CapacityBlockExtensionOffering.add_member(:start_date, Shapes::ShapeRef.new(shape: MillisecondDateTime, location_name: "startDate"))
    CapacityBlockExtensionOffering.add_member(:capacity_block_extension_start_date, Shapes::ShapeRef.new(shape: MillisecondDateTime, location_name: "capacityBlockExtensionStartDate"))
    CapacityBlockExtensionOffering.add_member(:capacity_block_extension_end_date, Shapes::ShapeRef.new(shape: MillisecondDateTime, location_name: "capacityBlockExtensionEndDate"))
    CapacityBlockExtensionOffering.add_member(:capacity_block_extension_duration_hours, Shapes::ShapeRef.new(shape: Integer, location_name: "capacityBlockExtensionDurationHours"))
    CapacityBlockExtensionOffering.add_member(:upfront_fee, Shapes::ShapeRef.new(shape: String, location_name: "upfrontFee"))
    CapacityBlockExtensionOffering.add_member(:currency_code, Shapes::ShapeRef.new(shape: String, location_name: "currencyCode"))
    CapacityBlockExtensionOffering.add_member(:tenancy, Shapes::ShapeRef.new(shape: CapacityReservationTenancy, location_name: "tenancy"))
    CapacityBlockExtensionOffering.struct_class = Types::CapacityBlockExtensionOffering

    CapacityBlockExtensionOfferingSet.member = Shapes::ShapeRef.new(shape: CapacityBlockExtensionOffering, location_name: "item")

    CapacityBlockExtensionSet.member = Shapes::ShapeRef.new(shape: CapacityBlockExtension, location_name: "item")

    CapacityBlockOffering.add_member(:capacity_block_offering_id, Shapes::ShapeRef.new(shape: OfferingId, location_name: "capacityBlockOfferingId"))
    CapacityBlockOffering.add_member(:instance_type, Shapes::ShapeRef.new(shape: String, location_name: "instanceType"))
    CapacityBlockOffering.add_member(:availability_zone, Shapes::ShapeRef.new(shape: String, location_name: "availabilityZone"))
    CapacityBlockOffering.add_member(:instance_count, Shapes::ShapeRef.new(shape: Integer, location_name: "instanceCount"))
    CapacityBlockOffering.add_member(:start_date, Shapes::ShapeRef.new(shape: MillisecondDateTime, location_name: "startDate"))
    CapacityBlockOffering.add_member(:end_date, Shapes::ShapeRef.new(shape: MillisecondDateTime, location_name: "endDate"))
    CapacityBlockOffering.add_member(:capacity_block_duration_hours, Shapes::ShapeRef.new(shape: Integer, location_name: "capacityBlockDurationHours"))
    CapacityBlockOffering.add_member(:upfront_fee, Shapes::ShapeRef.new(shape: String, location_name: "upfrontFee"))
    CapacityBlockOffering.add_member(:currency_code, Shapes::ShapeRef.new(shape: String, location_name: "currencyCode"))
    CapacityBlockOffering.add_member(:tenancy, Shapes::ShapeRef.new(shape: CapacityReservationTenancy, location_name: "tenancy"))
    CapacityBlockOffering.add_member(:capacity_block_duration_minutes, Shapes::ShapeRef.new(shape: Integer, location_name: "capacityBlockDurationMinutes"))
    CapacityBlockOffering.struct_class = Types::CapacityBlockOffering

    CapacityBlockOfferingSet.member = Shapes::ShapeRef.new(shape: CapacityBlockOffering, location_name: "item")

    CapacityReservation.add_member(:capacity_reservation_id, Shapes::ShapeRef.new(shape: String, location_name: "capacityReservationId"))
    CapacityReservation.add_member(:owner_id, Shapes::ShapeRef.new(shape: String, location_name: "ownerId"))
    CapacityReservation.add_member(:capacity_reservation_arn, Shapes::ShapeRef.new(shape: String, location_name: "capacityReservationArn"))
    CapacityReservation.add_member(:availability_zone_id, Shapes::ShapeRef.new(shape: String, location_name: "availabilityZoneId"))
    CapacityReservation.add_member(:instance_type, Shapes::ShapeRef.new(shape: String, location_name: "instanceType"))
    CapacityReservation.add_member(:instance_platform, Shapes::ShapeRef.new(shape: CapacityReservationInstancePlatform, location_name: "instancePlatform"))
    CapacityReservation.add_member(:availability_zone, Shapes::ShapeRef.new(shape: String, location_name: "availabilityZone"))
    CapacityReservation.add_member(:tenancy, Shapes::ShapeRef.new(shape: CapacityReservationTenancy, location_name: "tenancy"))
    CapacityReservation.add_member(:total_instance_count, Shapes::ShapeRef.new(shape: Integer, location_name: "totalInstanceCount"))
    CapacityReservation.add_member(:available_instance_count, Shapes::ShapeRef.new(shape: Integer, location_name: "availableInstanceCount"))
    CapacityReservation.add_member(:ebs_optimized, Shapes::ShapeRef.new(shape: Boolean, location_name: "ebsOptimized"))
    CapacityReservation.add_member(:ephemeral_storage, Shapes::ShapeRef.new(shape: Boolean, location_name: "ephemeralStorage"))
    CapacityReservation.add_member(:state, Shapes::ShapeRef.new(shape: CapacityReservationState, location_name: "state"))
    CapacityReservation.add_member(:start_date, Shapes::ShapeRef.new(shape: MillisecondDateTime, location_name: "startDate"))
    CapacityReservation.add_member(:end_date, Shapes::ShapeRef.new(shape: DateTime, location_name: "endDate"))
    CapacityReservation.add_member(:end_date_type, Shapes::ShapeRef.new(shape: EndDateType, location_name: "endDateType"))
    CapacityReservation.add_member(:instance_match_criteria, Shapes::ShapeRef.new(shape: InstanceMatchCriteria, location_name: "instanceMatchCriteria"))
    CapacityReservation.add_member(:create_date, Shapes::ShapeRef.new(shape: DateTime, location_name: "createDate"))
    CapacityReservation.add_member(:tags, Shapes::ShapeRef.new(shape: TagList, location_name: "tagSet"))
    CapacityReservation.add_member(:outpost_arn, Shapes::ShapeRef.new(shape: OutpostArn, location_name: "outpostArn"))
    CapacityReservation.add_member(:capacity_reservation_fleet_id, Shapes::ShapeRef.new(shape: String, location_name: "capacityReservationFleetId"))
    CapacityReservation.add_member(:placement_group_arn, Shapes::ShapeRef.new(shape: PlacementGroupArn, location_name: "placementGroupArn"))
    CapacityReservation.add_member(:capacity_allocations, Shapes::ShapeRef.new(shape: CapacityAllocations, location_name: "capacityAllocationSet"))
    CapacityReservation.add_member(:reservation_type, Shapes::ShapeRef.new(shape: CapacityReservationType, location_name: "reservationType"))
    CapacityReservation.add_member(:unused_reservation_billing_owner_id, Shapes::ShapeRef.new(shape: AccountID, location_name: "unusedReservationBillingOwnerId"))
    CapacityReservation.add_member(:commitment_info, Shapes::ShapeRef.new(shape: CapacityReservationCommitmentInfo, location_name: "commitmentInfo"))
    CapacityReservation.add_member(:delivery_preference, Shapes::ShapeRef.new(shape: CapacityReservationDeliveryPreference, location_name: "deliveryPreference"))
    CapacityReservation.struct_class = Types::CapacityReservation

    CapacityReservationBillingRequest.add_member(:capacity_reservation_id, Shapes::ShapeRef.new(shape: String, location_name: "capacityReservationId"))
    CapacityReservationBillingRequest.add_member(:requested_by, Shapes::ShapeRef.new(shape: String, location_name: "requestedBy"))
    CapacityReservationBillingRequest.add_member(:unused_reservation_billing_owner_id, Shapes::ShapeRef.new(shape: AccountID, location_name: "unusedReservationBillingOwnerId"))
    CapacityReservationBillingRequest.add_member(:last_update_time, Shapes::ShapeRef.new(shape: MillisecondDateTime, location_name: "lastUpdateTime"))
    CapacityReservationBillingRequest.add_member(:status, Shapes::ShapeRef.new(shape: CapacityReservationBillingRequestStatus, location_name: "status"))
    CapacityReservationBillingRequest.add_member(:status_message, Shapes::ShapeRef.new(shape: String, location_name: "statusMessage"))
    CapacityReservationBillingRequest.add_member(:capacity_reservation_info, Shapes::ShapeRef.new(shape: CapacityReservationInfo, location_name: "capacityReservationInfo"))
    CapacityReservationBillingRequest.struct_class = Types::CapacityReservationBillingRequest

    CapacityReservationBillingRequestSet.member = Shapes::ShapeRef.new(shape: CapacityReservationBillingRequest, location_name: "item")

    CapacityReservationCommitmentInfo.add_member(:committed_instance_count, Shapes::ShapeRef.new(shape: Integer, location_name: "committedInstanceCount"))
    CapacityReservationCommitmentInfo.add_member(:commitment_end_date, Shapes::ShapeRef.new(shape: MillisecondDateTime, location_name: "commitmentEndDate"))
    CapacityReservationCommitmentInfo.struct_class = Types::CapacityReservationCommitmentInfo

    CapacityReservationFleet.add_member(:capacity_reservation_fleet_id, Shapes::ShapeRef.new(shape: CapacityReservationFleetId, location_name: "capacityReservationFleetId"))
    CapacityReservationFleet.add_member(:capacity_reservation_fleet_arn, Shapes::ShapeRef.new(shape: String, location_name: "capacityReservationFleetArn"))
    CapacityReservationFleet.add_member(:state, Shapes::ShapeRef.new(shape: CapacityReservationFleetState, location_name: "state"))
    CapacityReservationFleet.add_member(:total_target_capacity, Shapes::ShapeRef.new(shape: Integer, location_name: "totalTargetCapacity"))
    CapacityReservationFleet.add_member(:total_fulfilled_capacity, Shapes::ShapeRef.new(shape: Double, location_name: "totalFulfilledCapacity"))
    CapacityReservationFleet.add_member(:tenancy, Shapes::ShapeRef.new(shape: FleetCapacityReservationTenancy, location_name: "tenancy"))
    CapacityReservationFleet.add_member(:end_date, Shapes::ShapeRef.new(shape: MillisecondDateTime, location_name: "endDate"))
    CapacityReservationFleet.add_member(:create_time, Shapes::ShapeRef.new(shape: MillisecondDateTime, location_name: "createTime"))
    CapacityReservationFleet.add_member(:instance_match_criteria, Shapes::ShapeRef.new(shape: FleetInstanceMatchCriteria, location_name: "instanceMatchCriteria"))
    CapacityReservationFleet.add_member(:allocation_strategy, Shapes::ShapeRef.new(shape: String, location_name: "allocationStrategy"))
    CapacityReservationFleet.add_member(:instance_type_specifications, Shapes::ShapeRef.new(shape: FleetCapacityReservationSet, location_name: "instanceTypeSpecificationSet"))
    CapacityReservationFleet.add_member(:tags, Shapes::ShapeRef.new(shape: TagList, location_name: "tagSet"))
    CapacityReservationFleet.struct_class = Types::CapacityReservationFleet

    CapacityReservationFleetCancellationState.add_member(:current_fleet_state, Shapes::ShapeRef.new(shape: CapacityReservationFleetState, location_name: "currentFleetState"))
    CapacityReservationFleetCancellationState.add_member(:previous_fleet_state, Shapes::ShapeRef.new(shape: CapacityReservationFleetState, location_name: "previousFleetState"))
    CapacityReservationFleetCancellationState.add_member(:capacity_reservation_fleet_id, Shapes::ShapeRef.new(shape: CapacityReservationFleetId, location_name: "capacityReservationFleetId"))
    CapacityReservationFleetCancellationState.struct_class = Types::CapacityReservationFleetCancellationState

    CapacityReservationFleetCancellationStateSet.member = Shapes::ShapeRef.new(shape: CapacityReservationFleetCancellationState, location_name: "item")

    CapacityReservationFleetIdSet.member = Shapes::ShapeRef.new(shape: CapacityReservationFleetId, location_name: "item")

    CapacityReservationFleetSet.member = Shapes::ShapeRef.new(shape: CapacityReservationFleet, location_name: "item")

    CapacityReservationGroup.add_member(:group_arn, Shapes::ShapeRef.new(shape: String, location_name: "groupArn"))
    CapacityReservationGroup.add_member(:owner_id, Shapes::ShapeRef.new(shape: String, location_name: "ownerId"))
    CapacityReservationGroup.struct_class = Types::CapacityReservationGroup

    CapacityReservationGroupSet.member = Shapes::ShapeRef.new(shape: CapacityReservationGroup, location_name: "item")

    CapacityReservationIdSet.member = Shapes::ShapeRef.new(shape: CapacityReservationId, location_name: "item")

    CapacityReservationInfo.add_member(:instance_type, Shapes::ShapeRef.new(shape: String, location_name: "instanceType"))
    CapacityReservationInfo.add_member(:availability_zone, Shapes::ShapeRef.new(shape: AvailabilityZoneName, location_name: "availabilityZone"))
    CapacityReservationInfo.add_member(:tenancy, Shapes::ShapeRef.new(shape: CapacityReservationTenancy, location_name: "tenancy"))
    CapacityReservationInfo.struct_class = Types::CapacityReservationInfo

    CapacityReservationOptions.add_member(:usage_strategy, Shapes::ShapeRef.new(shape: FleetCapacityReservationUsageStrategy, location_name: "usageStrategy"))
    CapacityReservationOptions.struct_class = Types::CapacityReservationOptions

    CapacityReservationOptionsRequest.add_member(:usage_strategy, Shapes::ShapeRef.new(shape: FleetCapacityReservationUsageStrategy, location_name: "UsageStrategy"))
    CapacityReservationOptionsRequest.struct_class = Types::CapacityReservationOptionsRequest

    CapacityReservationSet.member = Shapes::ShapeRef.new(shape: CapacityReservation, location_name: "item")

    CapacityReservationSpecification.add_member(:capacity_reservation_preference, Shapes::ShapeRef.new(shape: CapacityReservationPreference, location_name: "CapacityReservationPreference"))
    CapacityReservationSpecification.add_member(:capacity_reservation_target, Shapes::ShapeRef.new(shape: CapacityReservationTarget, location_name: "CapacityReservationTarget"))
    CapacityReservationSpecification.struct_class = Types::CapacityReservationSpecification

    CapacityReservationSpecificationResponse.add_member(:capacity_reservation_preference, Shapes::ShapeRef.new(shape: CapacityReservationPreference, location_name: "capacityReservationPreference"))
    CapacityReservationSpecificationResponse.add_member(:capacity_reservation_target, Shapes::ShapeRef.new(shape: CapacityReservationTargetResponse, location_name: "capacityReservationTarget"))
    CapacityReservationSpecificationResponse.struct_class = Types::CapacityReservationSpecificationResponse

    CapacityReservationTarget.add_member(:capacity_reservation_id, Shapes::ShapeRef.new(shape: CapacityReservationId, location_name: "CapacityReservationId"))
    CapacityReservationTarget.add_member(:capacity_reservation_resource_group_arn, Shapes::ShapeRef.new(shape: String, location_name: "CapacityReservationResourceGroupArn"))
    CapacityReservationTarget.struct_class = Types::CapacityReservationTarget

    CapacityReservationTargetResponse.add_member(:capacity_reservation_id, Shapes::ShapeRef.new(shape: String, location_name: "capacityReservationId"))
    CapacityReservationTargetResponse.add_member(:capacity_reservation_resource_group_arn, Shapes::ShapeRef.new(shape: String, location_name: "capacityReservationResourceGroupArn"))
    CapacityReservationTargetResponse.struct_class = Types::CapacityReservationTargetResponse

    CarrierGateway.add_member(:carrier_gateway_id, Shapes::ShapeRef.new(shape: CarrierGatewayId, location_name: "carrierGatewayId"))
    CarrierGateway.add_member(:vpc_id, Shapes::ShapeRef.new(shape: VpcId, location_name: "vpcId"))
    CarrierGateway.add_member(:state, Shapes::ShapeRef.new(shape: CarrierGatewayState, location_name: "state"))
    CarrierGateway.add_member(:owner_id, Shapes::ShapeRef.new(shape: String, location_name: "ownerId"))
    CarrierGateway.add_member(:tags, Shapes::ShapeRef.new(shape: TagList, location_name: "tagSet"))
    CarrierGateway.struct_class = Types::CarrierGateway

    CarrierGatewayIdSet.member = Shapes::ShapeRef.new(shape: CarrierGatewayId)

    CarrierGatewaySet.member = Shapes::ShapeRef.new(shape: CarrierGateway, location_name: "item")

    CertificateAuthentication.add_member(:client_root_certificate_chain, Shapes::ShapeRef.new(shape: String, location_name: "clientRootCertificateChain"))
    CertificateAuthentication.struct_class = Types::CertificateAuthentication

    CertificateAuthenticationRequest.add_member(:client_root_certificate_chain_arn, Shapes::ShapeRef.new(shape: String, location_name: "ClientRootCertificateChainArn"))
    CertificateAuthenticationRequest.struct_class = Types::CertificateAuthenticationRequest

    CidrAuthorizationContext.add_member(:message, Shapes::ShapeRef.new(shape: String, required: true, location_name: "Message"))
    CidrAuthorizationContext.add_member(:signature, Shapes::ShapeRef.new(shape: String, required: true, location_name: "Signature"))
    CidrAuthorizationContext.struct_class = Types::CidrAuthorizationContext

    CidrBlock.add_member(:cidr_block, Shapes::ShapeRef.new(shape: String, location_name: "cidrBlock"))
    CidrBlock.struct_class = Types::CidrBlock

    CidrBlockSet.member = Shapes::ShapeRef.new(shape: CidrBlock, location_name: "item")

    ClassicLinkDnsSupport.add_member(:classic_link_dns_supported, Shapes::ShapeRef.new(shape: Boolean, location_name: "classicLinkDnsSupported"))
    ClassicLinkDnsSupport.add_member(:vpc_id, Shapes::ShapeRef.new(shape: String, location_name: "vpcId"))
    ClassicLinkDnsSupport.struct_class = Types::ClassicLinkDnsSupport

    ClassicLinkDnsSupportList.member = Shapes::ShapeRef.new(shape: ClassicLinkDnsSupport, location_name: "item")

    ClassicLinkInstance.add_member(:groups, Shapes::ShapeRef.new(shape: GroupIdentifierList, location_name: "groupSet"))
    ClassicLinkInstance.add_member(:instance_id, Shapes::ShapeRef.new(shape: String, location_name: "instanceId"))
    ClassicLinkInstance.add_member(:tags, Shapes::ShapeRef.new(shape: TagList, location_name: "tagSet"))
    ClassicLinkInstance.add_member(:vpc_id, Shapes::ShapeRef.new(shape: String, location_name: "vpcId"))
    ClassicLinkInstance.struct_class = Types::ClassicLinkInstance

    ClassicLinkInstanceList.member = Shapes::ShapeRef.new(shape: ClassicLinkInstance, location_name: "item")

    ClassicLoadBalancer.add_member(:name, Shapes::ShapeRef.new(shape: String, location_name: "name"))
    ClassicLoadBalancer.struct_class = Types::ClassicLoadBalancer

    ClassicLoadBalancers.member = Shapes::ShapeRef.new(shape: ClassicLoadBalancer, location_name: "item")

    ClassicLoadBalancersConfig.add_member(:classic_load_balancers, Shapes::ShapeRef.new(shape: ClassicLoadBalancers, location_name: "classicLoadBalancers"))
    ClassicLoadBalancersConfig.struct_class = Types::ClassicLoadBalancersConfig

    ClientCertificateRevocationListStatus.add_member(:code, Shapes::ShapeRef.new(shape: ClientCertificateRevocationListStatusCode, location_name: "code"))
    ClientCertificateRevocationListStatus.add_member(:message, Shapes::ShapeRef.new(shape: String, location_name: "message"))
    ClientCertificateRevocationListStatus.struct_class = Types::ClientCertificateRevocationListStatus

    ClientConnectOptions.add_member(:enabled, Shapes::ShapeRef.new(shape: Boolean, location_name: "Enabled"))
    ClientConnectOptions.add_member(:lambda_function_arn, Shapes::ShapeRef.new(shape: String, location_name: "LambdaFunctionArn"))
    ClientConnectOptions.struct_class = Types::ClientConnectOptions

    ClientConnectResponseOptions.add_member(:enabled, Shapes::ShapeRef.new(shape: Boolean, location_name: "enabled"))
    ClientConnectResponseOptions.add_member(:lambda_function_arn, Shapes::ShapeRef.new(shape: String, location_name: "lambdaFunctionArn"))
    ClientConnectResponseOptions.add_member(:status, Shapes::ShapeRef.new(shape: ClientVpnEndpointAttributeStatus, location_name: "status"))
    ClientConnectResponseOptions.struct_class = Types::ClientConnectResponseOptions

    ClientData.add_member(:comment, Shapes::ShapeRef.new(shape: String, location_name: "Comment"))
    ClientData.add_member(:upload_end, Shapes::ShapeRef.new(shape: DateTime, location_name: "UploadEnd"))
    ClientData.add_member(:upload_size, Shapes::ShapeRef.new(shape: Double, location_name: "UploadSize"))
    ClientData.add_member(:upload_start, Shapes::ShapeRef.new(shape: DateTime, location_name: "UploadStart"))
    ClientData.struct_class = Types::ClientData

    ClientLoginBannerOptions.add_member(:enabled, Shapes::ShapeRef.new(shape: Boolean, location_name: "Enabled"))
    ClientLoginBannerOptions.add_member(:banner_text, Shapes::ShapeRef.new(shape: String, location_name: "BannerText"))
    ClientLoginBannerOptions.struct_class = Types::ClientLoginBannerOptions

    ClientLoginBannerResponseOptions.add_member(:enabled, Shapes::ShapeRef.new(shape: Boolean, location_name: "enabled"))
    ClientLoginBannerResponseOptions.add_member(:banner_text, Shapes::ShapeRef.new(shape: String, location_name: "bannerText"))
    ClientLoginBannerResponseOptions.struct_class = Types::ClientLoginBannerResponseOptions

    ClientVpnAuthentication.add_member(:type, Shapes::ShapeRef.new(shape: ClientVpnAuthenticationType, location_name: "type"))
    ClientVpnAuthentication.add_member(:active_directory, Shapes::ShapeRef.new(shape: DirectoryServiceAuthentication, location_name: "activeDirectory"))
    ClientVpnAuthentication.add_member(:mutual_authentication, Shapes::ShapeRef.new(shape: CertificateAuthentication, location_name: "mutualAuthentication"))
    ClientVpnAuthentication.add_member(:federated_authentication, Shapes::ShapeRef.new(shape: FederatedAuthentication, location_name: "federatedAuthentication"))
    ClientVpnAuthentication.struct_class = Types::ClientVpnAuthentication

    ClientVpnAuthenticationList.member = Shapes::ShapeRef.new(shape: ClientVpnAuthentication, location_name: "item")

    ClientVpnAuthenticationRequest.add_member(:type, Shapes::ShapeRef.new(shape: ClientVpnAuthenticationType, location_name: "Type"))
    ClientVpnAuthenticationRequest.add_member(:active_directory, Shapes::ShapeRef.new(shape: DirectoryServiceAuthenticationRequest, location_name: "ActiveDirectory"))
    ClientVpnAuthenticationRequest.add_member(:mutual_authentication, Shapes::ShapeRef.new(shape: CertificateAuthenticationRequest, location_name: "MutualAuthentication"))
    ClientVpnAuthenticationRequest.add_member(:federated_authentication, Shapes::ShapeRef.new(shape: FederatedAuthenticationRequest, location_name: "FederatedAuthentication"))
    ClientVpnAuthenticationRequest.struct_class = Types::ClientVpnAuthenticationRequest

    ClientVpnAuthenticationRequestList.member = Shapes::ShapeRef.new(shape: ClientVpnAuthenticationRequest)

    ClientVpnAuthorizationRuleStatus.add_member(:code, Shapes::ShapeRef.new(shape: ClientVpnAuthorizationRuleStatusCode, location_name: "code"))
    ClientVpnAuthorizationRuleStatus.add_member(:message, Shapes::ShapeRef.new(shape: String, location_name: "message"))
    ClientVpnAuthorizationRuleStatus.struct_class = Types::ClientVpnAuthorizationRuleStatus

    ClientVpnConnection.add_member(:client_vpn_endpoint_id, Shapes::ShapeRef.new(shape: String, location_name: "clientVpnEndpointId"))
    ClientVpnConnection.add_member(:timestamp, Shapes::ShapeRef.new(shape: String, location_name: "timestamp"))
    ClientVpnConnection.add_member(:connection_id, Shapes::ShapeRef.new(shape: String, location_name: "connectionId"))
    ClientVpnConnection.add_member(:username, Shapes::ShapeRef.new(shape: String, location_name: "username"))
    ClientVpnConnection.add_member(:connection_established_time, Shapes::ShapeRef.new(shape: String, location_name: "connectionEstablishedTime"))
    ClientVpnConnection.add_member(:ingress_bytes, Shapes::ShapeRef.new(shape: String, location_name: "ingressBytes"))
    ClientVpnConnection.add_member(:egress_bytes, Shapes::ShapeRef.new(shape: String, location_name: "egressBytes"))
    ClientVpnConnection.add_member(:ingress_packets, Shapes::ShapeRef.new(shape: String, location_name: "ingressPackets"))
    ClientVpnConnection.add_member(:egress_packets, Shapes::ShapeRef.new(shape: String, location_name: "egressPackets"))
    ClientVpnConnection.add_member(:client_ip, Shapes::ShapeRef.new(shape: String, location_name: "clientIp"))
    ClientVpnConnection.add_member(:common_name, Shapes::ShapeRef.new(shape: String, location_name: "commonName"))
    ClientVpnConnection.add_member(:status, Shapes::ShapeRef.new(shape: ClientVpnConnectionStatus, location_name: "status"))
    ClientVpnConnection.add_member(:connection_end_time, Shapes::ShapeRef.new(shape: String, location_name: "connectionEndTime"))
    ClientVpnConnection.add_member(:posture_compliance_statuses, Shapes::ShapeRef.new(shape: ValueStringList, location_name: "postureComplianceStatusSet"))
    ClientVpnConnection.struct_class = Types::ClientVpnConnection

    ClientVpnConnectionSet.member = Shapes::ShapeRef.new(shape: ClientVpnConnection, location_name: "item")

    ClientVpnConnectionStatus.add_member(:code, Shapes::ShapeRef.new(shape: ClientVpnConnectionStatusCode, location_name: "code"))
    ClientVpnConnectionStatus.add_member(:message, Shapes::ShapeRef.new(shape: String, location_name: "message"))
    ClientVpnConnectionStatus.struct_class = Types::ClientVpnConnectionStatus

    ClientVpnEndpoint.add_member(:client_vpn_endpoint_id, Shapes::ShapeRef.new(shape: String, location_name: "clientVpnEndpointId"))
    ClientVpnEndpoint.add_member(:description, Shapes::ShapeRef.new(shape: String, location_name: "description"))
    ClientVpnEndpoint.add_member(:status, Shapes::ShapeRef.new(shape: ClientVpnEndpointStatus, location_name: "status"))
    ClientVpnEndpoint.add_member(:creation_time, Shapes::ShapeRef.new(shape: String, location_name: "creationTime"))
    ClientVpnEndpoint.add_member(:deletion_time, Shapes::ShapeRef.new(shape: String, location_name: "deletionTime"))
    ClientVpnEndpoint.add_member(:dns_name, Shapes::ShapeRef.new(shape: String, location_name: "dnsName"))
    ClientVpnEndpoint.add_member(:client_cidr_block, Shapes::ShapeRef.new(shape: String, location_name: "clientCidrBlock"))
    ClientVpnEndpoint.add_member(:dns_servers, Shapes::ShapeRef.new(shape: ValueStringList, location_name: "dnsServer"))
    ClientVpnEndpoint.add_member(:split_tunnel, Shapes::ShapeRef.new(shape: Boolean, location_name: "splitTunnel"))
    ClientVpnEndpoint.add_member(:vpn_protocol, Shapes::ShapeRef.new(shape: VpnProtocol, location_name: "vpnProtocol"))
    ClientVpnEndpoint.add_member(:transport_protocol, Shapes::ShapeRef.new(shape: TransportProtocol, location_name: "transportProtocol"))
    ClientVpnEndpoint.add_member(:vpn_port, Shapes::ShapeRef.new(shape: Integer, location_name: "vpnPort"))
    ClientVpnEndpoint.add_member(:associated_target_networks, Shapes::ShapeRef.new(shape: AssociatedTargetNetworkSet, deprecated: true, location_name: "associatedTargetNetwork", metadata: {"deprecatedMessage"=>"This property is deprecated. To view the target networks associated with a Client VPN endpoint, call DescribeClientVpnTargetNetworks and inspect the clientVpnTargetNetworks response element."}))
    ClientVpnEndpoint.add_member(:server_certificate_arn, Shapes::ShapeRef.new(shape: String, location_name: "serverCertificateArn"))
    ClientVpnEndpoint.add_member(:authentication_options, Shapes::ShapeRef.new(shape: ClientVpnAuthenticationList, location_name: "authenticationOptions"))
    ClientVpnEndpoint.add_member(:connection_log_options, Shapes::ShapeRef.new(shape: ConnectionLogResponseOptions, location_name: "connectionLogOptions"))
    ClientVpnEndpoint.add_member(:tags, Shapes::ShapeRef.new(shape: TagList, location_name: "tagSet"))
    ClientVpnEndpoint.add_member(:security_group_ids, Shapes::ShapeRef.new(shape: ClientVpnSecurityGroupIdSet, location_name: "securityGroupIdSet"))
    ClientVpnEndpoint.add_member(:vpc_id, Shapes::ShapeRef.new(shape: VpcId, location_name: "vpcId"))
    ClientVpnEndpoint.add_member(:self_service_portal_url, Shapes::ShapeRef.new(shape: String, location_name: "selfServicePortalUrl"))
    ClientVpnEndpoint.add_member(:client_connect_options, Shapes::ShapeRef.new(shape: ClientConnectResponseOptions, location_name: "clientConnectOptions"))
    ClientVpnEndpoint.add_member(:session_timeout_hours, Shapes::ShapeRef.new(shape: Integer, location_name: "sessionTimeoutHours"))
    ClientVpnEndpoint.add_member(:client_login_banner_options, Shapes::ShapeRef.new(shape: ClientLoginBannerResponseOptions, location_name: "clientLoginBannerOptions"))
    ClientVpnEndpoint.add_member(:disconnect_on_session_timeout, Shapes::ShapeRef.new(shape: Boolean, location_name: "disconnectOnSessionTimeout"))
    ClientVpnEndpoint.struct_class = Types::ClientVpnEndpoint

    ClientVpnEndpointAttributeStatus.add_member(:code, Shapes::ShapeRef.new(shape: ClientVpnEndpointAttributeStatusCode, location_name: "code"))
    ClientVpnEndpointAttributeStatus.add_member(:message, Shapes::ShapeRef.new(shape: String, location_name: "message"))
    ClientVpnEndpointAttributeStatus.struct_class = Types::ClientVpnEndpointAttributeStatus

    ClientVpnEndpointIdList.member = Shapes::ShapeRef.new(shape: ClientVpnEndpointId, location_name: "item")

    ClientVpnEndpointStatus.add_member(:code, Shapes::ShapeRef.new(shape: ClientVpnEndpointStatusCode, location_name: "code"))
    ClientVpnEndpointStatus.add_member(:message, Shapes::ShapeRef.new(shape: String, location_name: "message"))
    ClientVpnEndpointStatus.struct_class = Types::ClientVpnEndpointStatus

    ClientVpnRoute.add_member(:client_vpn_endpoint_id, Shapes::ShapeRef.new(shape: String, location_name: "clientVpnEndpointId"))
    ClientVpnRoute.add_member(:destination_cidr, Shapes::ShapeRef.new(shape: String, location_name: "destinationCidr"))
    ClientVpnRoute.add_member(:target_subnet, Shapes::ShapeRef.new(shape: String, location_name: "targetSubnet"))
    ClientVpnRoute.add_member(:type, Shapes::ShapeRef.new(shape: String, location_name: "type"))
    ClientVpnRoute.add_member(:origin, Shapes::ShapeRef.new(shape: String, location_name: "origin"))
    ClientVpnRoute.add_member(:status, Shapes::ShapeRef.new(shape: ClientVpnRouteStatus, location_name: "status"))
    ClientVpnRoute.add_member(:description, Shapes::ShapeRef.new(shape: String, location_name: "description"))
    ClientVpnRoute.struct_class = Types::ClientVpnRoute

    ClientVpnRouteSet.member = Shapes::ShapeRef.new(shape: ClientVpnRoute, location_name: "item")

    ClientVpnRouteStatus.add_member(:code, Shapes::ShapeRef.new(shape: ClientVpnRouteStatusCode, location_name: "code"))
    ClientVpnRouteStatus.add_member(:message, Shapes::ShapeRef.new(shape: String, location_name: "message"))
    ClientVpnRouteStatus.struct_class = Types::ClientVpnRouteStatus

    ClientVpnSecurityGroupIdSet.member = Shapes::ShapeRef.new(shape: SecurityGroupId, location_name: "item")

    CloudWatchLogOptions.add_member(:log_enabled, Shapes::ShapeRef.new(shape: Boolean, location_name: "logEnabled"))
    CloudWatchLogOptions.add_member(:log_group_arn, Shapes::ShapeRef.new(shape: String, location_name: "logGroupArn"))
    CloudWatchLogOptions.add_member(:log_output_format, Shapes::ShapeRef.new(shape: String, location_name: "logOutputFormat"))
    CloudWatchLogOptions.struct_class = Types::CloudWatchLogOptions

    CloudWatchLogOptionsSpecification.add_member(:log_enabled, Shapes::ShapeRef.new(shape: Boolean, location_name: "LogEnabled"))
    CloudWatchLogOptionsSpecification.add_member(:log_group_arn, Shapes::ShapeRef.new(shape: CloudWatchLogGroupArn, location_name: "LogGroupArn"))
    CloudWatchLogOptionsSpecification.add_member(:log_output_format, Shapes::ShapeRef.new(shape: String, location_name: "LogOutputFormat"))
    CloudWatchLogOptionsSpecification.struct_class = Types::CloudWatchLogOptionsSpecification

    CoipAddressUsage.add_member(:allocation_id, Shapes::ShapeRef.new(shape: String, location_name: "allocationId"))
    CoipAddressUsage.add_member(:aws_account_id, Shapes::ShapeRef.new(shape: String, location_name: "awsAccountId"))
    CoipAddressUsage.add_member(:aws_service, Shapes::ShapeRef.new(shape: String, location_name: "awsService"))
    CoipAddressUsage.add_member(:co_ip, Shapes::ShapeRef.new(shape: String, location_name: "coIp"))
    CoipAddressUsage.struct_class = Types::CoipAddressUsage

    CoipAddressUsageSet.member = Shapes::ShapeRef.new(shape: CoipAddressUsage, location_name: "item")

    CoipCidr.add_member(:cidr, Shapes::ShapeRef.new(shape: String, location_name: "cidr"))
    CoipCidr.add_member(:coip_pool_id, Shapes::ShapeRef.new(shape: Ipv4PoolCoipId, location_name: "coipPoolId"))
    CoipCidr.add_member(:local_gateway_route_table_id, Shapes::ShapeRef.new(shape: String, location_name: "localGatewayRouteTableId"))
    CoipCidr.struct_class = Types::CoipCidr

    CoipPool.add_member(:pool_id, Shapes::ShapeRef.new(shape: Ipv4PoolCoipId, location_name: "poolId"))
    CoipPool.add_member(:pool_cidrs, Shapes::ShapeRef.new(shape: ValueStringList, location_name: "poolCidrSet"))
    CoipPool.add_member(:local_gateway_route_table_id, Shapes::ShapeRef.new(shape: LocalGatewayRoutetableId, location_name: "localGatewayRouteTableId"))
    CoipPool.add_member(:tags, Shapes::ShapeRef.new(shape: TagList, location_name: "tagSet"))
    CoipPool.add_member(:pool_arn, Shapes::ShapeRef.new(shape: ResourceArn, location_name: "poolArn"))
    CoipPool.struct_class = Types::CoipPool

    CoipPoolIdSet.member = Shapes::ShapeRef.new(shape: Ipv4PoolCoipId, location_name: "item")

    CoipPoolSet.member = Shapes::ShapeRef.new(shape: CoipPool, location_name: "item")

    ConfirmProductInstanceRequest.add_member(:instance_id, Shapes::ShapeRef.new(shape: InstanceId, required: true, location_name: "InstanceId"))
    ConfirmProductInstanceRequest.add_member(:product_code, Shapes::ShapeRef.new(shape: String, required: true, location_name: "ProductCode"))
    ConfirmProductInstanceRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "dryRun"))
    ConfirmProductInstanceRequest.struct_class = Types::ConfirmProductInstanceRequest

    ConfirmProductInstanceResult.add_member(:return, Shapes::ShapeRef.new(shape: Boolean, location_name: "return"))
    ConfirmProductInstanceResult.add_member(:owner_id, Shapes::ShapeRef.new(shape: String, location_name: "ownerId"))
    ConfirmProductInstanceResult.struct_class = Types::ConfirmProductInstanceResult

    ConnectionLogOptions.add_member(:enabled, Shapes::ShapeRef.new(shape: Boolean, location_name: "Enabled"))
    ConnectionLogOptions.add_member(:cloudwatch_log_group, Shapes::ShapeRef.new(shape: String, location_name: "CloudwatchLogGroup"))
    ConnectionLogOptions.add_member(:cloudwatch_log_stream, Shapes::ShapeRef.new(shape: String, location_name: "CloudwatchLogStream"))
    ConnectionLogOptions.struct_class = Types::ConnectionLogOptions

    ConnectionLogResponseOptions.add_member(:enabled, Shapes::ShapeRef.new(shape: Boolean, location_name: "Enabled"))
    ConnectionLogResponseOptions.add_member(:cloudwatch_log_group, Shapes::ShapeRef.new(shape: String, location_name: "CloudwatchLogGroup"))
    ConnectionLogResponseOptions.add_member(:cloudwatch_log_stream, Shapes::ShapeRef.new(shape: String, location_name: "CloudwatchLogStream"))
    ConnectionLogResponseOptions.struct_class = Types::ConnectionLogResponseOptions

    ConnectionNotification.add_member(:connection_notification_id, Shapes::ShapeRef.new(shape: String, location_name: "connectionNotificationId"))
    ConnectionNotification.add_member(:service_id, Shapes::ShapeRef.new(shape: String, location_name: "serviceId"))
    ConnectionNotification.add_member(:vpc_endpoint_id, Shapes::ShapeRef.new(shape: String, location_name: "vpcEndpointId"))
    ConnectionNotification.add_member(:connection_notification_type, Shapes::ShapeRef.new(shape: ConnectionNotificationType, location_name: "connectionNotificationType"))
    ConnectionNotification.add_member(:connection_notification_arn, Shapes::ShapeRef.new(shape: String, location_name: "connectionNotificationArn"))
    ConnectionNotification.add_member(:connection_events, Shapes::ShapeRef.new(shape: ValueStringList, location_name: "connectionEvents"))
    ConnectionNotification.add_member(:connection_notification_state, Shapes::ShapeRef.new(shape: ConnectionNotificationState, location_name: "connectionNotificationState"))
    ConnectionNotification.add_member(:service_region, Shapes::ShapeRef.new(shape: String, location_name: "serviceRegion"))
    ConnectionNotification.struct_class = Types::ConnectionNotification

    ConnectionNotificationIdsList.member = Shapes::ShapeRef.new(shape: ConnectionNotificationId, location_name: "item")

    ConnectionNotificationSet.member = Shapes::ShapeRef.new(shape: ConnectionNotification, location_name: "item")

    ConnectionTrackingConfiguration.add_member(:tcp_established_timeout, Shapes::ShapeRef.new(shape: Integer, location_name: "tcpEstablishedTimeout"))
    ConnectionTrackingConfiguration.add_member(:udp_stream_timeout, Shapes::ShapeRef.new(shape: Integer, location_name: "udpStreamTimeout"))
    ConnectionTrackingConfiguration.add_member(:udp_timeout, Shapes::ShapeRef.new(shape: Integer, location_name: "udpTimeout"))
    ConnectionTrackingConfiguration.struct_class = Types::ConnectionTrackingConfiguration

    ConnectionTrackingSpecification.add_member(:tcp_established_timeout, Shapes::ShapeRef.new(shape: Integer, location_name: "tcpEstablishedTimeout"))
    ConnectionTrackingSpecification.add_member(:udp_timeout, Shapes::ShapeRef.new(shape: Integer, location_name: "udpTimeout"))
    ConnectionTrackingSpecification.add_member(:udp_stream_timeout, Shapes::ShapeRef.new(shape: Integer, location_name: "udpStreamTimeout"))
    ConnectionTrackingSpecification.struct_class = Types::ConnectionTrackingSpecification

    ConnectionTrackingSpecificationRequest.add_member(:tcp_established_timeout, Shapes::ShapeRef.new(shape: Integer, location_name: "TcpEstablishedTimeout"))
    ConnectionTrackingSpecificationRequest.add_member(:udp_stream_timeout, Shapes::ShapeRef.new(shape: Integer, location_name: "UdpStreamTimeout"))
    ConnectionTrackingSpecificationRequest.add_member(:udp_timeout, Shapes::ShapeRef.new(shape: Integer, location_name: "UdpTimeout"))
    ConnectionTrackingSpecificationRequest.struct_class = Types::ConnectionTrackingSpecificationRequest

    ConnectionTrackingSpecificationResponse.add_member(:tcp_established_timeout, Shapes::ShapeRef.new(shape: Integer, location_name: "tcpEstablishedTimeout"))
    ConnectionTrackingSpecificationResponse.add_member(:udp_stream_timeout, Shapes::ShapeRef.new(shape: Integer, location_name: "udpStreamTimeout"))
    ConnectionTrackingSpecificationResponse.add_member(:udp_timeout, Shapes::ShapeRef.new(shape: Integer, location_name: "udpTimeout"))
    ConnectionTrackingSpecificationResponse.struct_class = Types::ConnectionTrackingSpecificationResponse

    ConversionIdStringList.member = Shapes::ShapeRef.new(shape: ConversionTaskId, location_name: "item")

    ConversionTask.add_member(:conversion_task_id, Shapes::ShapeRef.new(shape: String, location_name: "conversionTaskId"))
    ConversionTask.add_member(:expiration_time, Shapes::ShapeRef.new(shape: String, location_name: "expirationTime"))
    ConversionTask.add_member(:import_instance, Shapes::ShapeRef.new(shape: ImportInstanceTaskDetails, location_name: "importInstance"))
    ConversionTask.add_member(:import_volume, Shapes::ShapeRef.new(shape: ImportVolumeTaskDetails, location_name: "importVolume"))
    ConversionTask.add_member(:state, Shapes::ShapeRef.new(shape: ConversionTaskState, location_name: "state"))
    ConversionTask.add_member(:status_message, Shapes::ShapeRef.new(shape: String, location_name: "statusMessage"))
    ConversionTask.add_member(:tags, Shapes::ShapeRef.new(shape: TagList, location_name: "tagSet"))
    ConversionTask.struct_class = Types::ConversionTask

    CopyFpgaImageRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    CopyFpgaImageRequest.add_member(:source_fpga_image_id, Shapes::ShapeRef.new(shape: String, required: true, location_name: "SourceFpgaImageId"))
    CopyFpgaImageRequest.add_member(:description, Shapes::ShapeRef.new(shape: String, location_name: "Description"))
    CopyFpgaImageRequest.add_member(:name, Shapes::ShapeRef.new(shape: String, location_name: "Name"))
    CopyFpgaImageRequest.add_member(:source_region, Shapes::ShapeRef.new(shape: String, required: true, location_name: "SourceRegion"))
    CopyFpgaImageRequest.add_member(:client_token, Shapes::ShapeRef.new(shape: String, location_name: "ClientToken"))
    CopyFpgaImageRequest.struct_class = Types::CopyFpgaImageRequest

    CopyFpgaImageResult.add_member(:fpga_image_id, Shapes::ShapeRef.new(shape: String, location_name: "fpgaImageId"))
    CopyFpgaImageResult.struct_class = Types::CopyFpgaImageResult

    CopyImageRequest.add_member(:client_token, Shapes::ShapeRef.new(shape: String, location_name: "ClientToken"))
    CopyImageRequest.add_member(:description, Shapes::ShapeRef.new(shape: String, location_name: "Description"))
    CopyImageRequest.add_member(:encrypted, Shapes::ShapeRef.new(shape: Boolean, location_name: "encrypted"))
    CopyImageRequest.add_member(:kms_key_id, Shapes::ShapeRef.new(shape: KmsKeyId, location_name: "kmsKeyId"))
    CopyImageRequest.add_member(:name, Shapes::ShapeRef.new(shape: String, required: true, location_name: "Name"))
    CopyImageRequest.add_member(:source_image_id, Shapes::ShapeRef.new(shape: String, required: true, location_name: "SourceImageId"))
    CopyImageRequest.add_member(:source_region, Shapes::ShapeRef.new(shape: String, required: true, location_name: "SourceRegion"))
    CopyImageRequest.add_member(:destination_outpost_arn, Shapes::ShapeRef.new(shape: String, location_name: "DestinationOutpostArn"))
    CopyImageRequest.add_member(:copy_image_tags, Shapes::ShapeRef.new(shape: Boolean, location_name: "CopyImageTags"))
    CopyImageRequest.add_member(:tag_specifications, Shapes::ShapeRef.new(shape: TagSpecificationList, location_name: "TagSpecification"))
    CopyImageRequest.add_member(:snapshot_copy_completion_duration_minutes, Shapes::ShapeRef.new(shape: Long, location_name: "SnapshotCopyCompletionDurationMinutes"))
    CopyImageRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "dryRun"))
    CopyImageRequest.struct_class = Types::CopyImageRequest

    CopyImageResult.add_member(:image_id, Shapes::ShapeRef.new(shape: String, location_name: "imageId"))
    CopyImageResult.struct_class = Types::CopyImageResult

    CopySnapshotRequest.add_member(:description, Shapes::ShapeRef.new(shape: String, location_name: "Description"))
    CopySnapshotRequest.add_member(:destination_outpost_arn, Shapes::ShapeRef.new(shape: String, location_name: "DestinationOutpostArn"))
    CopySnapshotRequest.add_member(:destination_region, Shapes::ShapeRef.new(shape: String, location_name: "destinationRegion"))
    CopySnapshotRequest.add_member(:encrypted, Shapes::ShapeRef.new(shape: Boolean, location_name: "encrypted"))
    CopySnapshotRequest.add_member(:kms_key_id, Shapes::ShapeRef.new(shape: KmsKeyId, location_name: "kmsKeyId"))
    CopySnapshotRequest.add_member(:presigned_url, Shapes::ShapeRef.new(shape: CopySnapshotRequestPSU, location_name: "presignedUrl"))
    CopySnapshotRequest.add_member(:source_region, Shapes::ShapeRef.new(shape: String, required: true, location_name: "SourceRegion"))
    CopySnapshotRequest.add_member(:source_snapshot_id, Shapes::ShapeRef.new(shape: String, required: true, location_name: "SourceSnapshotId"))
    CopySnapshotRequest.add_member(:tag_specifications, Shapes::ShapeRef.new(shape: TagSpecificationList, location_name: "TagSpecification"))
    CopySnapshotRequest.add_member(:completion_duration_minutes, Shapes::ShapeRef.new(shape: SnapshotCompletionDurationMinutesRequest, location_name: "CompletionDurationMinutes"))
    CopySnapshotRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "dryRun"))
    CopySnapshotRequest.struct_class = Types::CopySnapshotRequest

    CopySnapshotResult.add_member(:tags, Shapes::ShapeRef.new(shape: TagList, location_name: "tagSet"))
    CopySnapshotResult.add_member(:snapshot_id, Shapes::ShapeRef.new(shape: String, location_name: "snapshotId"))
    CopySnapshotResult.struct_class = Types::CopySnapshotResult

    CoreCountList.member = Shapes::ShapeRef.new(shape: CoreCount, location_name: "item")

    CpuManufacturerSet.member = Shapes::ShapeRef.new(shape: CpuManufacturer, location_name: "item")

    CpuOptions.add_member(:core_count, Shapes::ShapeRef.new(shape: Integer, location_name: "coreCount"))
    CpuOptions.add_member(:threads_per_core, Shapes::ShapeRef.new(shape: Integer, location_name: "threadsPerCore"))
    CpuOptions.add_member(:amd_sev_snp, Shapes::ShapeRef.new(shape: AmdSevSnpSpecification, location_name: "amdSevSnp"))
    CpuOptions.struct_class = Types::CpuOptions

    CpuOptionsRequest.add_member(:core_count, Shapes::ShapeRef.new(shape: Integer, location_name: "CoreCount"))
    CpuOptionsRequest.add_member(:threads_per_core, Shapes::ShapeRef.new(shape: Integer, location_name: "ThreadsPerCore"))
    CpuOptionsRequest.add_member(:amd_sev_snp, Shapes::ShapeRef.new(shape: AmdSevSnpSpecification, location_name: "AmdSevSnp"))
    CpuOptionsRequest.struct_class = Types::CpuOptionsRequest

    CpuPerformanceFactor.add_member(:references, Shapes::ShapeRef.new(shape: PerformanceFactorReferenceSet, location_name: "referenceSet"))
    CpuPerformanceFactor.struct_class = Types::CpuPerformanceFactor

    CpuPerformanceFactorRequest.add_member(:references, Shapes::ShapeRef.new(shape: PerformanceFactorReferenceSetRequest, location_name: "Reference"))
    CpuPerformanceFactorRequest.struct_class = Types::CpuPerformanceFactorRequest

    CreateCapacityReservationBySplittingRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    CreateCapacityReservationBySplittingRequest.add_member(:client_token, Shapes::ShapeRef.new(shape: String, location_name: "ClientToken", metadata: {"idempotencyToken"=>true}))
    CreateCapacityReservationBySplittingRequest.add_member(:source_capacity_reservation_id, Shapes::ShapeRef.new(shape: CapacityReservationId, required: true, location_name: "SourceCapacityReservationId"))
    CreateCapacityReservationBySplittingRequest.add_member(:instance_count, Shapes::ShapeRef.new(shape: Integer, required: true, location_name: "InstanceCount"))
    CreateCapacityReservationBySplittingRequest.add_member(:tag_specifications, Shapes::ShapeRef.new(shape: TagSpecificationList, location_name: "TagSpecification"))
    CreateCapacityReservationBySplittingRequest.struct_class = Types::CreateCapacityReservationBySplittingRequest

    CreateCapacityReservationBySplittingResult.add_member(:source_capacity_reservation, Shapes::ShapeRef.new(shape: CapacityReservation, location_name: "sourceCapacityReservation"))
    CreateCapacityReservationBySplittingResult.add_member(:destination_capacity_reservation, Shapes::ShapeRef.new(shape: CapacityReservation, location_name: "destinationCapacityReservation"))
    CreateCapacityReservationBySplittingResult.add_member(:instance_count, Shapes::ShapeRef.new(shape: Integer, location_name: "instanceCount"))
    CreateCapacityReservationBySplittingResult.struct_class = Types::CreateCapacityReservationBySplittingResult

    CreateCapacityReservationFleetRequest.add_member(:allocation_strategy, Shapes::ShapeRef.new(shape: String, location_name: "AllocationStrategy"))
    CreateCapacityReservationFleetRequest.add_member(:client_token, Shapes::ShapeRef.new(shape: String, location_name: "ClientToken", metadata: {"idempotencyToken"=>true}))
    CreateCapacityReservationFleetRequest.add_member(:instance_type_specifications, Shapes::ShapeRef.new(shape: ReservationFleetInstanceSpecificationList, required: true, location_name: "InstanceTypeSpecification"))
    CreateCapacityReservationFleetRequest.add_member(:tenancy, Shapes::ShapeRef.new(shape: FleetCapacityReservationTenancy, location_name: "Tenancy"))
    CreateCapacityReservationFleetRequest.add_member(:total_target_capacity, Shapes::ShapeRef.new(shape: Integer, required: true, location_name: "TotalTargetCapacity"))
    CreateCapacityReservationFleetRequest.add_member(:end_date, Shapes::ShapeRef.new(shape: MillisecondDateTime, location_name: "EndDate"))
    CreateCapacityReservationFleetRequest.add_member(:instance_match_criteria, Shapes::ShapeRef.new(shape: FleetInstanceMatchCriteria, location_name: "InstanceMatchCriteria"))
    CreateCapacityReservationFleetRequest.add_member(:tag_specifications, Shapes::ShapeRef.new(shape: TagSpecificationList, location_name: "TagSpecification"))
    CreateCapacityReservationFleetRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    CreateCapacityReservationFleetRequest.struct_class = Types::CreateCapacityReservationFleetRequest

    CreateCapacityReservationFleetResult.add_member(:capacity_reservation_fleet_id, Shapes::ShapeRef.new(shape: CapacityReservationFleetId, location_name: "capacityReservationFleetId"))
    CreateCapacityReservationFleetResult.add_member(:state, Shapes::ShapeRef.new(shape: CapacityReservationFleetState, location_name: "state"))
    CreateCapacityReservationFleetResult.add_member(:total_target_capacity, Shapes::ShapeRef.new(shape: Integer, location_name: "totalTargetCapacity"))
    CreateCapacityReservationFleetResult.add_member(:total_fulfilled_capacity, Shapes::ShapeRef.new(shape: Double, location_name: "totalFulfilledCapacity"))
    CreateCapacityReservationFleetResult.add_member(:instance_match_criteria, Shapes::ShapeRef.new(shape: FleetInstanceMatchCriteria, location_name: "instanceMatchCriteria"))
    CreateCapacityReservationFleetResult.add_member(:allocation_strategy, Shapes::ShapeRef.new(shape: String, location_name: "allocationStrategy"))
    CreateCapacityReservationFleetResult.add_member(:create_time, Shapes::ShapeRef.new(shape: MillisecondDateTime, location_name: "createTime"))
    CreateCapacityReservationFleetResult.add_member(:end_date, Shapes::ShapeRef.new(shape: MillisecondDateTime, location_name: "endDate"))
    CreateCapacityReservationFleetResult.add_member(:tenancy, Shapes::ShapeRef.new(shape: FleetCapacityReservationTenancy, location_name: "tenancy"))
    CreateCapacityReservationFleetResult.add_member(:fleet_capacity_reservations, Shapes::ShapeRef.new(shape: FleetCapacityReservationSet, location_name: "fleetCapacityReservationSet"))
    CreateCapacityReservationFleetResult.add_member(:tags, Shapes::ShapeRef.new(shape: TagList, location_name: "tagSet"))
    CreateCapacityReservationFleetResult.struct_class = Types::CreateCapacityReservationFleetResult

    CreateCapacityReservationRequest.add_member(:client_token, Shapes::ShapeRef.new(shape: String, location_name: "ClientToken"))
    CreateCapacityReservationRequest.add_member(:instance_type, Shapes::ShapeRef.new(shape: String, required: true, location_name: "InstanceType"))
    CreateCapacityReservationRequest.add_member(:instance_platform, Shapes::ShapeRef.new(shape: CapacityReservationInstancePlatform, required: true, location_name: "InstancePlatform"))
    CreateCapacityReservationRequest.add_member(:availability_zone, Shapes::ShapeRef.new(shape: AvailabilityZoneName, location_name: "AvailabilityZone"))
    CreateCapacityReservationRequest.add_member(:availability_zone_id, Shapes::ShapeRef.new(shape: AvailabilityZoneId, location_name: "AvailabilityZoneId"))
    CreateCapacityReservationRequest.add_member(:tenancy, Shapes::ShapeRef.new(shape: CapacityReservationTenancy, location_name: "Tenancy"))
    CreateCapacityReservationRequest.add_member(:instance_count, Shapes::ShapeRef.new(shape: Integer, required: true, location_name: "InstanceCount"))
    CreateCapacityReservationRequest.add_member(:ebs_optimized, Shapes::ShapeRef.new(shape: Boolean, location_name: "EbsOptimized"))
    CreateCapacityReservationRequest.add_member(:ephemeral_storage, Shapes::ShapeRef.new(shape: Boolean, location_name: "EphemeralStorage"))
    CreateCapacityReservationRequest.add_member(:end_date, Shapes::ShapeRef.new(shape: DateTime, location_name: "EndDate"))
    CreateCapacityReservationRequest.add_member(:end_date_type, Shapes::ShapeRef.new(shape: EndDateType, location_name: "EndDateType"))
    CreateCapacityReservationRequest.add_member(:instance_match_criteria, Shapes::ShapeRef.new(shape: InstanceMatchCriteria, location_name: "InstanceMatchCriteria"))
    CreateCapacityReservationRequest.add_member(:tag_specifications, Shapes::ShapeRef.new(shape: TagSpecificationList, location_name: "TagSpecifications"))
    CreateCapacityReservationRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    CreateCapacityReservationRequest.add_member(:outpost_arn, Shapes::ShapeRef.new(shape: OutpostArn, location_name: "OutpostArn"))
    CreateCapacityReservationRequest.add_member(:placement_group_arn, Shapes::ShapeRef.new(shape: PlacementGroupArn, location_name: "PlacementGroupArn"))
    CreateCapacityReservationRequest.add_member(:start_date, Shapes::ShapeRef.new(shape: MillisecondDateTime, location_name: "StartDate"))
    CreateCapacityReservationRequest.add_member(:commitment_duration, Shapes::ShapeRef.new(shape: CapacityReservationCommitmentDuration, location_name: "CommitmentDuration"))
    CreateCapacityReservationRequest.add_member(:delivery_preference, Shapes::ShapeRef.new(shape: CapacityReservationDeliveryPreference, location_name: "DeliveryPreference"))
    CreateCapacityReservationRequest.struct_class = Types::CreateCapacityReservationRequest

    CreateCapacityReservationResult.add_member(:capacity_reservation, Shapes::ShapeRef.new(shape: CapacityReservation, location_name: "capacityReservation"))
    CreateCapacityReservationResult.struct_class = Types::CreateCapacityReservationResult

    CreateCarrierGatewayRequest.add_member(:vpc_id, Shapes::ShapeRef.new(shape: VpcId, required: true, location_name: "VpcId"))
    CreateCarrierGatewayRequest.add_member(:tag_specifications, Shapes::ShapeRef.new(shape: TagSpecificationList, location_name: "TagSpecification"))
    CreateCarrierGatewayRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    CreateCarrierGatewayRequest.add_member(:client_token, Shapes::ShapeRef.new(shape: String, location_name: "ClientToken", metadata: {"idempotencyToken"=>true}))
    CreateCarrierGatewayRequest.struct_class = Types::CreateCarrierGatewayRequest

    CreateCarrierGatewayResult.add_member(:carrier_gateway, Shapes::ShapeRef.new(shape: CarrierGateway, location_name: "carrierGateway"))
    CreateCarrierGatewayResult.struct_class = Types::CreateCarrierGatewayResult

    CreateClientVpnEndpointRequest.add_member(:client_cidr_block, Shapes::ShapeRef.new(shape: String, required: true, location_name: "ClientCidrBlock"))
    CreateClientVpnEndpointRequest.add_member(:server_certificate_arn, Shapes::ShapeRef.new(shape: String, required: true, location_name: "ServerCertificateArn"))
    CreateClientVpnEndpointRequest.add_member(:authentication_options, Shapes::ShapeRef.new(shape: ClientVpnAuthenticationRequestList, required: true, location_name: "Authentication"))
    CreateClientVpnEndpointRequest.add_member(:connection_log_options, Shapes::ShapeRef.new(shape: ConnectionLogOptions, required: true, location_name: "ConnectionLogOptions"))
    CreateClientVpnEndpointRequest.add_member(:dns_servers, Shapes::ShapeRef.new(shape: ValueStringList, location_name: "DnsServers"))
    CreateClientVpnEndpointRequest.add_member(:transport_protocol, Shapes::ShapeRef.new(shape: TransportProtocol, location_name: "TransportProtocol"))
    CreateClientVpnEndpointRequest.add_member(:vpn_port, Shapes::ShapeRef.new(shape: Integer, location_name: "VpnPort"))
    CreateClientVpnEndpointRequest.add_member(:description, Shapes::ShapeRef.new(shape: String, location_name: "Description"))
    CreateClientVpnEndpointRequest.add_member(:split_tunnel, Shapes::ShapeRef.new(shape: Boolean, location_name: "SplitTunnel"))
    CreateClientVpnEndpointRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    CreateClientVpnEndpointRequest.add_member(:client_token, Shapes::ShapeRef.new(shape: String, location_name: "ClientToken", metadata: {"idempotencyToken"=>true}))
    CreateClientVpnEndpointRequest.add_member(:tag_specifications, Shapes::ShapeRef.new(shape: TagSpecificationList, location_name: "TagSpecification"))
    CreateClientVpnEndpointRequest.add_member(:security_group_ids, Shapes::ShapeRef.new(shape: ClientVpnSecurityGroupIdSet, location_name: "SecurityGroupId"))
    CreateClientVpnEndpointRequest.add_member(:vpc_id, Shapes::ShapeRef.new(shape: VpcId, location_name: "VpcId"))
    CreateClientVpnEndpointRequest.add_member(:self_service_portal, Shapes::ShapeRef.new(shape: SelfServicePortal, location_name: "SelfServicePortal"))
    CreateClientVpnEndpointRequest.add_member(:client_connect_options, Shapes::ShapeRef.new(shape: ClientConnectOptions, location_name: "ClientConnectOptions"))
    CreateClientVpnEndpointRequest.add_member(:session_timeout_hours, Shapes::ShapeRef.new(shape: Integer, location_name: "SessionTimeoutHours"))
    CreateClientVpnEndpointRequest.add_member(:client_login_banner_options, Shapes::ShapeRef.new(shape: ClientLoginBannerOptions, location_name: "ClientLoginBannerOptions"))
    CreateClientVpnEndpointRequest.add_member(:disconnect_on_session_timeout, Shapes::ShapeRef.new(shape: Boolean, location_name: "DisconnectOnSessionTimeout"))
    CreateClientVpnEndpointRequest.struct_class = Types::CreateClientVpnEndpointRequest

    CreateClientVpnEndpointResult.add_member(:client_vpn_endpoint_id, Shapes::ShapeRef.new(shape: String, location_name: "clientVpnEndpointId"))
    CreateClientVpnEndpointResult.add_member(:status, Shapes::ShapeRef.new(shape: ClientVpnEndpointStatus, location_name: "status"))
    CreateClientVpnEndpointResult.add_member(:dns_name, Shapes::ShapeRef.new(shape: String, location_name: "dnsName"))
    CreateClientVpnEndpointResult.struct_class = Types::CreateClientVpnEndpointResult

    CreateClientVpnRouteRequest.add_member(:client_vpn_endpoint_id, Shapes::ShapeRef.new(shape: ClientVpnEndpointId, required: true, location_name: "ClientVpnEndpointId"))
    CreateClientVpnRouteRequest.add_member(:destination_cidr_block, Shapes::ShapeRef.new(shape: String, required: true, location_name: "DestinationCidrBlock"))
    CreateClientVpnRouteRequest.add_member(:target_vpc_subnet_id, Shapes::ShapeRef.new(shape: SubnetId, required: true, location_name: "TargetVpcSubnetId"))
    CreateClientVpnRouteRequest.add_member(:description, Shapes::ShapeRef.new(shape: String, location_name: "Description"))
    CreateClientVpnRouteRequest.add_member(:client_token, Shapes::ShapeRef.new(shape: String, location_name: "ClientToken", metadata: {"idempotencyToken"=>true}))
    CreateClientVpnRouteRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    CreateClientVpnRouteRequest.struct_class = Types::CreateClientVpnRouteRequest

    CreateClientVpnRouteResult.add_member(:status, Shapes::ShapeRef.new(shape: ClientVpnRouteStatus, location_name: "status"))
    CreateClientVpnRouteResult.struct_class = Types::CreateClientVpnRouteResult

    CreateCoipCidrRequest.add_member(:cidr, Shapes::ShapeRef.new(shape: String, required: true, location_name: "Cidr"))
    CreateCoipCidrRequest.add_member(:coip_pool_id, Shapes::ShapeRef.new(shape: Ipv4PoolCoipId, required: true, location_name: "CoipPoolId"))
    CreateCoipCidrRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    CreateCoipCidrRequest.struct_class = Types::CreateCoipCidrRequest

    CreateCoipCidrResult.add_member(:coip_cidr, Shapes::ShapeRef.new(shape: CoipCidr, location_name: "coipCidr"))
    CreateCoipCidrResult.struct_class = Types::CreateCoipCidrResult

    CreateCoipPoolRequest.add_member(:local_gateway_route_table_id, Shapes::ShapeRef.new(shape: LocalGatewayRoutetableId, required: true, location_name: "LocalGatewayRouteTableId"))
    CreateCoipPoolRequest.add_member(:tag_specifications, Shapes::ShapeRef.new(shape: TagSpecificationList, location_name: "TagSpecification"))
    CreateCoipPoolRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    CreateCoipPoolRequest.struct_class = Types::CreateCoipPoolRequest

    CreateCoipPoolResult.add_member(:coip_pool, Shapes::ShapeRef.new(shape: CoipPool, location_name: "coipPool"))
    CreateCoipPoolResult.struct_class = Types::CreateCoipPoolResult

    CreateCustomerGatewayRequest.add_member(:bgp_asn, Shapes::ShapeRef.new(shape: Integer, location_name: "BgpAsn"))
    CreateCustomerGatewayRequest.add_member(:public_ip, Shapes::ShapeRef.new(shape: String, location_name: "PublicIp"))
    CreateCustomerGatewayRequest.add_member(:certificate_arn, Shapes::ShapeRef.new(shape: String, location_name: "CertificateArn"))
    CreateCustomerGatewayRequest.add_member(:type, Shapes::ShapeRef.new(shape: GatewayType, required: true, location_name: "Type"))
    CreateCustomerGatewayRequest.add_member(:tag_specifications, Shapes::ShapeRef.new(shape: TagSpecificationList, location_name: "TagSpecification"))
    CreateCustomerGatewayRequest.add_member(:device_name, Shapes::ShapeRef.new(shape: String, location_name: "DeviceName"))
    CreateCustomerGatewayRequest.add_member(:ip_address, Shapes::ShapeRef.new(shape: String, location_name: "IpAddress"))
    CreateCustomerGatewayRequest.add_member(:bgp_asn_extended, Shapes::ShapeRef.new(shape: Long, location_name: "BgpAsnExtended"))
    CreateCustomerGatewayRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "dryRun"))
    CreateCustomerGatewayRequest.struct_class = Types::CreateCustomerGatewayRequest

    CreateCustomerGatewayResult.add_member(:customer_gateway, Shapes::ShapeRef.new(shape: CustomerGateway, location_name: "customerGateway"))
    CreateCustomerGatewayResult.struct_class = Types::CreateCustomerGatewayResult

    CreateDefaultSubnetRequest.add_member(:availability_zone, Shapes::ShapeRef.new(shape: AvailabilityZoneName, required: true, location_name: "AvailabilityZone"))
    CreateDefaultSubnetRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    CreateDefaultSubnetRequest.add_member(:ipv_6_native, Shapes::ShapeRef.new(shape: Boolean, location_name: "Ipv6Native"))
    CreateDefaultSubnetRequest.struct_class = Types::CreateDefaultSubnetRequest

    CreateDefaultSubnetResult.add_member(:subnet, Shapes::ShapeRef.new(shape: Subnet, location_name: "subnet"))
    CreateDefaultSubnetResult.struct_class = Types::CreateDefaultSubnetResult

    CreateDefaultVpcRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    CreateDefaultVpcRequest.struct_class = Types::CreateDefaultVpcRequest

    CreateDefaultVpcResult.add_member(:vpc, Shapes::ShapeRef.new(shape: Vpc, location_name: "vpc"))
    CreateDefaultVpcResult.struct_class = Types::CreateDefaultVpcResult

    CreateDhcpOptionsRequest.add_member(:dhcp_configurations, Shapes::ShapeRef.new(shape: NewDhcpConfigurationList, required: true, location_name: "dhcpConfiguration"))
    CreateDhcpOptionsRequest.add_member(:tag_specifications, Shapes::ShapeRef.new(shape: TagSpecificationList, location_name: "TagSpecification"))
    CreateDhcpOptionsRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "dryRun"))
    CreateDhcpOptionsRequest.struct_class = Types::CreateDhcpOptionsRequest

    CreateDhcpOptionsResult.add_member(:dhcp_options, Shapes::ShapeRef.new(shape: DhcpOptions, location_name: "dhcpOptions"))
    CreateDhcpOptionsResult.struct_class = Types::CreateDhcpOptionsResult

    CreateEgressOnlyInternetGatewayRequest.add_member(:client_token, Shapes::ShapeRef.new(shape: String, location_name: "ClientToken"))
    CreateEgressOnlyInternetGatewayRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    CreateEgressOnlyInternetGatewayRequest.add_member(:vpc_id, Shapes::ShapeRef.new(shape: VpcId, required: true, location_name: "VpcId"))
    CreateEgressOnlyInternetGatewayRequest.add_member(:tag_specifications, Shapes::ShapeRef.new(shape: TagSpecificationList, location_name: "TagSpecification"))
    CreateEgressOnlyInternetGatewayRequest.struct_class = Types::CreateEgressOnlyInternetGatewayRequest

    CreateEgressOnlyInternetGatewayResult.add_member(:client_token, Shapes::ShapeRef.new(shape: String, location_name: "clientToken"))
    CreateEgressOnlyInternetGatewayResult.add_member(:egress_only_internet_gateway, Shapes::ShapeRef.new(shape: EgressOnlyInternetGateway, location_name: "egressOnlyInternetGateway"))
    CreateEgressOnlyInternetGatewayResult.struct_class = Types::CreateEgressOnlyInternetGatewayResult

    CreateFleetError.add_member(:launch_template_and_overrides, Shapes::ShapeRef.new(shape: LaunchTemplateAndOverridesResponse, location_name: "launchTemplateAndOverrides"))
    CreateFleetError.add_member(:lifecycle, Shapes::ShapeRef.new(shape: InstanceLifecycle, location_name: "lifecycle"))
    CreateFleetError.add_member(:error_code, Shapes::ShapeRef.new(shape: String, location_name: "errorCode"))
    CreateFleetError.add_member(:error_message, Shapes::ShapeRef.new(shape: String, location_name: "errorMessage"))
    CreateFleetError.struct_class = Types::CreateFleetError

    CreateFleetErrorsSet.member = Shapes::ShapeRef.new(shape: CreateFleetError, location_name: "item")

    CreateFleetInstance.add_member(:launch_template_and_overrides, Shapes::ShapeRef.new(shape: LaunchTemplateAndOverridesResponse, location_name: "launchTemplateAndOverrides"))
    CreateFleetInstance.add_member(:lifecycle, Shapes::ShapeRef.new(shape: InstanceLifecycle, location_name: "lifecycle"))
    CreateFleetInstance.add_member(:instance_ids, Shapes::ShapeRef.new(shape: InstanceIdsSet, location_name: "instanceIds"))
    CreateFleetInstance.add_member(:instance_type, Shapes::ShapeRef.new(shape: InstanceType, location_name: "instanceType"))
    CreateFleetInstance.add_member(:platform, Shapes::ShapeRef.new(shape: PlatformValues, location_name: "platform"))
    CreateFleetInstance.struct_class = Types::CreateFleetInstance

    CreateFleetInstancesSet.member = Shapes::ShapeRef.new(shape: CreateFleetInstance, location_name: "item")

    CreateFleetRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    CreateFleetRequest.add_member(:client_token, Shapes::ShapeRef.new(shape: String, location_name: "ClientToken", metadata: {"idempotencyToken"=>true}))
    CreateFleetRequest.add_member(:spot_options, Shapes::ShapeRef.new(shape: SpotOptionsRequest, location_name: "SpotOptions"))
    CreateFleetRequest.add_member(:on_demand_options, Shapes::ShapeRef.new(shape: OnDemandOptionsRequest, location_name: "OnDemandOptions"))
    CreateFleetRequest.add_member(:excess_capacity_termination_policy, Shapes::ShapeRef.new(shape: FleetExcessCapacityTerminationPolicy, location_name: "ExcessCapacityTerminationPolicy"))
    CreateFleetRequest.add_member(:launch_template_configs, Shapes::ShapeRef.new(shape: FleetLaunchTemplateConfigListRequest, required: true, location_name: "LaunchTemplateConfigs"))
    CreateFleetRequest.add_member(:target_capacity_specification, Shapes::ShapeRef.new(shape: TargetCapacitySpecificationRequest, required: true, location_name: "TargetCapacitySpecification"))
    CreateFleetRequest.add_member(:terminate_instances_with_expiration, Shapes::ShapeRef.new(shape: Boolean, location_name: "TerminateInstancesWithExpiration"))
    CreateFleetRequest.add_member(:type, Shapes::ShapeRef.new(shape: FleetType, location_name: "Type"))
    CreateFleetRequest.add_member(:valid_from, Shapes::ShapeRef.new(shape: DateTime, location_name: "ValidFrom"))
    CreateFleetRequest.add_member(:valid_until, Shapes::ShapeRef.new(shape: DateTime, location_name: "ValidUntil"))
    CreateFleetRequest.add_member(:replace_unhealthy_instances, Shapes::ShapeRef.new(shape: Boolean, location_name: "ReplaceUnhealthyInstances"))
    CreateFleetRequest.add_member(:tag_specifications, Shapes::ShapeRef.new(shape: TagSpecificationList, location_name: "TagSpecification"))
    CreateFleetRequest.add_member(:context, Shapes::ShapeRef.new(shape: String, location_name: "Context"))
    CreateFleetRequest.struct_class = Types::CreateFleetRequest

    CreateFleetResult.add_member(:fleet_id, Shapes::ShapeRef.new(shape: FleetId, location_name: "fleetId"))
    CreateFleetResult.add_member(:errors, Shapes::ShapeRef.new(shape: CreateFleetErrorsSet, location_name: "errorSet"))
    CreateFleetResult.add_member(:instances, Shapes::ShapeRef.new(shape: CreateFleetInstancesSet, location_name: "fleetInstanceSet"))
    CreateFleetResult.struct_class = Types::CreateFleetResult

    CreateFlowLogsRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    CreateFlowLogsRequest.add_member(:client_token, Shapes::ShapeRef.new(shape: String, location_name: "ClientToken"))
    CreateFlowLogsRequest.add_member(:deliver_logs_permission_arn, Shapes::ShapeRef.new(shape: String, location_name: "DeliverLogsPermissionArn"))
    CreateFlowLogsRequest.add_member(:deliver_cross_account_role, Shapes::ShapeRef.new(shape: String, location_name: "DeliverCrossAccountRole"))
    CreateFlowLogsRequest.add_member(:log_group_name, Shapes::ShapeRef.new(shape: String, location_name: "LogGroupName"))
    CreateFlowLogsRequest.add_member(:resource_ids, Shapes::ShapeRef.new(shape: FlowLogResourceIds, required: true, location_name: "ResourceId"))
    CreateFlowLogsRequest.add_member(:resource_type, Shapes::ShapeRef.new(shape: FlowLogsResourceType, required: true, location_name: "ResourceType"))
    CreateFlowLogsRequest.add_member(:traffic_type, Shapes::ShapeRef.new(shape: TrafficType, location_name: "TrafficType"))
    CreateFlowLogsRequest.add_member(:log_destination_type, Shapes::ShapeRef.new(shape: LogDestinationType, location_name: "LogDestinationType"))
    CreateFlowLogsRequest.add_member(:log_destination, Shapes::ShapeRef.new(shape: String, location_name: "LogDestination"))
    CreateFlowLogsRequest.add_member(:log_format, Shapes::ShapeRef.new(shape: String, location_name: "LogFormat"))
    CreateFlowLogsRequest.add_member(:tag_specifications, Shapes::ShapeRef.new(shape: TagSpecificationList, location_name: "TagSpecification"))
    CreateFlowLogsRequest.add_member(:max_aggregation_interval, Shapes::ShapeRef.new(shape: Integer, location_name: "MaxAggregationInterval"))
    CreateFlowLogsRequest.add_member(:destination_options, Shapes::ShapeRef.new(shape: DestinationOptionsRequest, location_name: "DestinationOptions"))
    CreateFlowLogsRequest.struct_class = Types::CreateFlowLogsRequest

    CreateFlowLogsResult.add_member(:client_token, Shapes::ShapeRef.new(shape: String, location_name: "clientToken"))
    CreateFlowLogsResult.add_member(:flow_log_ids, Shapes::ShapeRef.new(shape: ValueStringList, location_name: "flowLogIdSet"))
    CreateFlowLogsResult.add_member(:unsuccessful, Shapes::ShapeRef.new(shape: UnsuccessfulItemSet, location_name: "unsuccessful"))
    CreateFlowLogsResult.struct_class = Types::CreateFlowLogsResult

    CreateFpgaImageRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    CreateFpgaImageRequest.add_member(:input_storage_location, Shapes::ShapeRef.new(shape: StorageLocation, required: true, location_name: "InputStorageLocation"))
    CreateFpgaImageRequest.add_member(:logs_storage_location, Shapes::ShapeRef.new(shape: StorageLocation, location_name: "LogsStorageLocation"))
    CreateFpgaImageRequest.add_member(:description, Shapes::ShapeRef.new(shape: String, location_name: "Description"))
    CreateFpgaImageRequest.add_member(:name, Shapes::ShapeRef.new(shape: String, location_name: "Name"))
    CreateFpgaImageRequest.add_member(:client_token, Shapes::ShapeRef.new(shape: String, location_name: "ClientToken"))
    CreateFpgaImageRequest.add_member(:tag_specifications, Shapes::ShapeRef.new(shape: TagSpecificationList, location_name: "TagSpecification"))
    CreateFpgaImageRequest.struct_class = Types::CreateFpgaImageRequest

    CreateFpgaImageResult.add_member(:fpga_image_id, Shapes::ShapeRef.new(shape: String, location_name: "fpgaImageId"))
    CreateFpgaImageResult.add_member(:fpga_image_global_id, Shapes::ShapeRef.new(shape: String, location_name: "fpgaImageGlobalId"))
    CreateFpgaImageResult.struct_class = Types::CreateFpgaImageResult

    CreateImageRequest.add_member(:tag_specifications, Shapes::ShapeRef.new(shape: TagSpecificationList, location_name: "TagSpecification"))
    CreateImageRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "dryRun"))
    CreateImageRequest.add_member(:instance_id, Shapes::ShapeRef.new(shape: InstanceId, required: true, location_name: "instanceId"))
    CreateImageRequest.add_member(:name, Shapes::ShapeRef.new(shape: String, required: true, location_name: "name"))
    CreateImageRequest.add_member(:description, Shapes::ShapeRef.new(shape: String, location_name: "description"))
    CreateImageRequest.add_member(:no_reboot, Shapes::ShapeRef.new(shape: Boolean, location_name: "noReboot"))
    CreateImageRequest.add_member(:block_device_mappings, Shapes::ShapeRef.new(shape: BlockDeviceMappingRequestList, location_name: "blockDeviceMapping"))
    CreateImageRequest.struct_class = Types::CreateImageRequest

    CreateImageResult.add_member(:image_id, Shapes::ShapeRef.new(shape: String, location_name: "imageId"))
    CreateImageResult.struct_class = Types::CreateImageResult

    CreateInstanceConnectEndpointRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    CreateInstanceConnectEndpointRequest.add_member(:subnet_id, Shapes::ShapeRef.new(shape: SubnetId, required: true, location_name: "SubnetId"))
    CreateInstanceConnectEndpointRequest.add_member(:security_group_ids, Shapes::ShapeRef.new(shape: SecurityGroupIdStringListRequest, location_name: "SecurityGroupId"))
    CreateInstanceConnectEndpointRequest.add_member(:preserve_client_ip, Shapes::ShapeRef.new(shape: Boolean, location_name: "PreserveClientIp"))
    CreateInstanceConnectEndpointRequest.add_member(:client_token, Shapes::ShapeRef.new(shape: String, location_name: "ClientToken", metadata: {"idempotencyToken"=>true}))
    CreateInstanceConnectEndpointRequest.add_member(:tag_specifications, Shapes::ShapeRef.new(shape: TagSpecificationList, location_name: "TagSpecification"))
    CreateInstanceConnectEndpointRequest.struct_class = Types::CreateInstanceConnectEndpointRequest

    CreateInstanceConnectEndpointResult.add_member(:instance_connect_endpoint, Shapes::ShapeRef.new(shape: Ec2InstanceConnectEndpoint, location_name: "instanceConnectEndpoint"))
    CreateInstanceConnectEndpointResult.add_member(:client_token, Shapes::ShapeRef.new(shape: String, location_name: "clientToken"))
    CreateInstanceConnectEndpointResult.struct_class = Types::CreateInstanceConnectEndpointResult

    CreateInstanceEventWindowRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    CreateInstanceEventWindowRequest.add_member(:name, Shapes::ShapeRef.new(shape: String, location_name: "Name"))
    CreateInstanceEventWindowRequest.add_member(:time_ranges, Shapes::ShapeRef.new(shape: InstanceEventWindowTimeRangeRequestSet, location_name: "TimeRange"))
    CreateInstanceEventWindowRequest.add_member(:cron_expression, Shapes::ShapeRef.new(shape: InstanceEventWindowCronExpression, location_name: "CronExpression"))
    CreateInstanceEventWindowRequest.add_member(:tag_specifications, Shapes::ShapeRef.new(shape: TagSpecificationList, location_name: "TagSpecification"))
    CreateInstanceEventWindowRequest.struct_class = Types::CreateInstanceEventWindowRequest

    CreateInstanceEventWindowResult.add_member(:instance_event_window, Shapes::ShapeRef.new(shape: InstanceEventWindow, location_name: "instanceEventWindow"))
    CreateInstanceEventWindowResult.struct_class = Types::CreateInstanceEventWindowResult

    CreateInstanceExportTaskRequest.add_member(:tag_specifications, Shapes::ShapeRef.new(shape: TagSpecificationList, location_name: "TagSpecification"))
    CreateInstanceExportTaskRequest.add_member(:description, Shapes::ShapeRef.new(shape: String, location_name: "description"))
    CreateInstanceExportTaskRequest.add_member(:instance_id, Shapes::ShapeRef.new(shape: InstanceId, required: true, location_name: "instanceId"))
    CreateInstanceExportTaskRequest.add_member(:target_environment, Shapes::ShapeRef.new(shape: ExportEnvironment, required: true, location_name: "targetEnvironment"))
    CreateInstanceExportTaskRequest.add_member(:export_to_s3_task, Shapes::ShapeRef.new(shape: ExportToS3TaskSpecification, required: true, location_name: "exportToS3"))
    CreateInstanceExportTaskRequest.struct_class = Types::CreateInstanceExportTaskRequest

    CreateInstanceExportTaskResult.add_member(:export_task, Shapes::ShapeRef.new(shape: ExportTask, location_name: "exportTask"))
    CreateInstanceExportTaskResult.struct_class = Types::CreateInstanceExportTaskResult

    CreateInternetGatewayRequest.add_member(:tag_specifications, Shapes::ShapeRef.new(shape: TagSpecificationList, location_name: "TagSpecification"))
    CreateInternetGatewayRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "dryRun"))
    CreateInternetGatewayRequest.struct_class = Types::CreateInternetGatewayRequest

    CreateInternetGatewayResult.add_member(:internet_gateway, Shapes::ShapeRef.new(shape: InternetGateway, location_name: "internetGateway"))
    CreateInternetGatewayResult.struct_class = Types::CreateInternetGatewayResult

    CreateIpamExternalResourceVerificationTokenRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    CreateIpamExternalResourceVerificationTokenRequest.add_member(:ipam_id, Shapes::ShapeRef.new(shape: IpamId, required: true, location_name: "IpamId"))
    CreateIpamExternalResourceVerificationTokenRequest.add_member(:tag_specifications, Shapes::ShapeRef.new(shape: TagSpecificationList, location_name: "TagSpecification"))
    CreateIpamExternalResourceVerificationTokenRequest.add_member(:client_token, Shapes::ShapeRef.new(shape: String, location_name: "ClientToken", metadata: {"idempotencyToken"=>true}))
    CreateIpamExternalResourceVerificationTokenRequest.struct_class = Types::CreateIpamExternalResourceVerificationTokenRequest

    CreateIpamExternalResourceVerificationTokenResult.add_member(:ipam_external_resource_verification_token, Shapes::ShapeRef.new(shape: IpamExternalResourceVerificationToken, location_name: "ipamExternalResourceVerificationToken"))
    CreateIpamExternalResourceVerificationTokenResult.struct_class = Types::CreateIpamExternalResourceVerificationTokenResult

    CreateIpamPoolRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    CreateIpamPoolRequest.add_member(:ipam_scope_id, Shapes::ShapeRef.new(shape: IpamScopeId, required: true, location_name: "IpamScopeId"))
    CreateIpamPoolRequest.add_member(:locale, Shapes::ShapeRef.new(shape: String, location_name: "Locale"))
    CreateIpamPoolRequest.add_member(:source_ipam_pool_id, Shapes::ShapeRef.new(shape: IpamPoolId, location_name: "SourceIpamPoolId"))
    CreateIpamPoolRequest.add_member(:description, Shapes::ShapeRef.new(shape: String, location_name: "Description"))
    CreateIpamPoolRequest.add_member(:address_family, Shapes::ShapeRef.new(shape: AddressFamily, required: true, location_name: "AddressFamily"))
    CreateIpamPoolRequest.add_member(:auto_import, Shapes::ShapeRef.new(shape: Boolean, location_name: "AutoImport"))
    CreateIpamPoolRequest.add_member(:publicly_advertisable, Shapes::ShapeRef.new(shape: Boolean, location_name: "PubliclyAdvertisable"))
    CreateIpamPoolRequest.add_member(:allocation_min_netmask_length, Shapes::ShapeRef.new(shape: IpamNetmaskLength, location_name: "AllocationMinNetmaskLength"))
    CreateIpamPoolRequest.add_member(:allocation_max_netmask_length, Shapes::ShapeRef.new(shape: IpamNetmaskLength, location_name: "AllocationMaxNetmaskLength"))
    CreateIpamPoolRequest.add_member(:allocation_default_netmask_length, Shapes::ShapeRef.new(shape: IpamNetmaskLength, location_name: "AllocationDefaultNetmaskLength"))
    CreateIpamPoolRequest.add_member(:allocation_resource_tags, Shapes::ShapeRef.new(shape: RequestIpamResourceTagList, location_name: "AllocationResourceTag"))
    CreateIpamPoolRequest.add_member(:tag_specifications, Shapes::ShapeRef.new(shape: TagSpecificationList, location_name: "TagSpecification"))
    CreateIpamPoolRequest.add_member(:client_token, Shapes::ShapeRef.new(shape: String, location_name: "ClientToken", metadata: {"idempotencyToken"=>true}))
    CreateIpamPoolRequest.add_member(:aws_service, Shapes::ShapeRef.new(shape: IpamPoolAwsService, location_name: "AwsService"))
    CreateIpamPoolRequest.add_member(:public_ip_source, Shapes::ShapeRef.new(shape: IpamPoolPublicIpSource, location_name: "PublicIpSource"))
    CreateIpamPoolRequest.add_member(:source_resource, Shapes::ShapeRef.new(shape: IpamPoolSourceResourceRequest, location_name: "SourceResource"))
    CreateIpamPoolRequest.struct_class = Types::CreateIpamPoolRequest

    CreateIpamPoolResult.add_member(:ipam_pool, Shapes::ShapeRef.new(shape: IpamPool, location_name: "ipamPool"))
    CreateIpamPoolResult.struct_class = Types::CreateIpamPoolResult

    CreateIpamRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    CreateIpamRequest.add_member(:description, Shapes::ShapeRef.new(shape: String, location_name: "Description"))
    CreateIpamRequest.add_member(:operating_regions, Shapes::ShapeRef.new(shape: AddIpamOperatingRegionSet, location_name: "OperatingRegion"))
    CreateIpamRequest.add_member(:tag_specifications, Shapes::ShapeRef.new(shape: TagSpecificationList, location_name: "TagSpecification"))
    CreateIpamRequest.add_member(:client_token, Shapes::ShapeRef.new(shape: String, location_name: "ClientToken", metadata: {"idempotencyToken"=>true}))
    CreateIpamRequest.add_member(:tier, Shapes::ShapeRef.new(shape: IpamTier, location_name: "Tier"))
    CreateIpamRequest.add_member(:enable_private_gua, Shapes::ShapeRef.new(shape: Boolean, location_name: "EnablePrivateGua"))
    CreateIpamRequest.struct_class = Types::CreateIpamRequest

    CreateIpamResourceDiscoveryRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    CreateIpamResourceDiscoveryRequest.add_member(:description, Shapes::ShapeRef.new(shape: String, location_name: "Description"))
    CreateIpamResourceDiscoveryRequest.add_member(:operating_regions, Shapes::ShapeRef.new(shape: AddIpamOperatingRegionSet, location_name: "OperatingRegion"))
    CreateIpamResourceDiscoveryRequest.add_member(:tag_specifications, Shapes::ShapeRef.new(shape: TagSpecificationList, location_name: "TagSpecification"))
    CreateIpamResourceDiscoveryRequest.add_member(:client_token, Shapes::ShapeRef.new(shape: String, location_name: "ClientToken", metadata: {"idempotencyToken"=>true}))
    CreateIpamResourceDiscoveryRequest.struct_class = Types::CreateIpamResourceDiscoveryRequest

    CreateIpamResourceDiscoveryResult.add_member(:ipam_resource_discovery, Shapes::ShapeRef.new(shape: IpamResourceDiscovery, location_name: "ipamResourceDiscovery"))
    CreateIpamResourceDiscoveryResult.struct_class = Types::CreateIpamResourceDiscoveryResult

    CreateIpamResult.add_member(:ipam, Shapes::ShapeRef.new(shape: Ipam, location_name: "ipam"))
    CreateIpamResult.struct_class = Types::CreateIpamResult

    CreateIpamScopeRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    CreateIpamScopeRequest.add_member(:ipam_id, Shapes::ShapeRef.new(shape: IpamId, required: true, location_name: "IpamId"))
    CreateIpamScopeRequest.add_member(:description, Shapes::ShapeRef.new(shape: String, location_name: "Description"))
    CreateIpamScopeRequest.add_member(:tag_specifications, Shapes::ShapeRef.new(shape: TagSpecificationList, location_name: "TagSpecification"))
    CreateIpamScopeRequest.add_member(:client_token, Shapes::ShapeRef.new(shape: String, location_name: "ClientToken", metadata: {"idempotencyToken"=>true}))
    CreateIpamScopeRequest.struct_class = Types::CreateIpamScopeRequest

    CreateIpamScopeResult.add_member(:ipam_scope, Shapes::ShapeRef.new(shape: IpamScope, location_name: "ipamScope"))
    CreateIpamScopeResult.struct_class = Types::CreateIpamScopeResult

    CreateKeyPairRequest.add_member(:key_name, Shapes::ShapeRef.new(shape: String, required: true, location_name: "KeyName"))
    CreateKeyPairRequest.add_member(:key_type, Shapes::ShapeRef.new(shape: KeyType, location_name: "KeyType"))
    CreateKeyPairRequest.add_member(:tag_specifications, Shapes::ShapeRef.new(shape: TagSpecificationList, location_name: "TagSpecification"))
    CreateKeyPairRequest.add_member(:key_format, Shapes::ShapeRef.new(shape: KeyFormat, location_name: "KeyFormat"))
    CreateKeyPairRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "dryRun"))
    CreateKeyPairRequest.struct_class = Types::CreateKeyPairRequest

    CreateLaunchTemplateRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    CreateLaunchTemplateRequest.add_member(:client_token, Shapes::ShapeRef.new(shape: String, location_name: "ClientToken"))
    CreateLaunchTemplateRequest.add_member(:launch_template_name, Shapes::ShapeRef.new(shape: LaunchTemplateName, required: true, location_name: "LaunchTemplateName"))
    CreateLaunchTemplateRequest.add_member(:version_description, Shapes::ShapeRef.new(shape: VersionDescription, location_name: "VersionDescription"))
    CreateLaunchTemplateRequest.add_member(:launch_template_data, Shapes::ShapeRef.new(shape: RequestLaunchTemplateData, required: true, location_name: "LaunchTemplateData"))
    CreateLaunchTemplateRequest.add_member(:operator, Shapes::ShapeRef.new(shape: OperatorRequest, location_name: "Operator"))
    CreateLaunchTemplateRequest.add_member(:tag_specifications, Shapes::ShapeRef.new(shape: TagSpecificationList, location_name: "TagSpecification"))
    CreateLaunchTemplateRequest.struct_class = Types::CreateLaunchTemplateRequest

    CreateLaunchTemplateResult.add_member(:launch_template, Shapes::ShapeRef.new(shape: LaunchTemplate, location_name: "launchTemplate"))
    CreateLaunchTemplateResult.add_member(:warning, Shapes::ShapeRef.new(shape: ValidationWarning, location_name: "warning"))
    CreateLaunchTemplateResult.struct_class = Types::CreateLaunchTemplateResult

    CreateLaunchTemplateVersionRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    CreateLaunchTemplateVersionRequest.add_member(:client_token, Shapes::ShapeRef.new(shape: String, location_name: "ClientToken"))
    CreateLaunchTemplateVersionRequest.add_member(:launch_template_id, Shapes::ShapeRef.new(shape: LaunchTemplateId, location_name: "LaunchTemplateId"))
    CreateLaunchTemplateVersionRequest.add_member(:launch_template_name, Shapes::ShapeRef.new(shape: LaunchTemplateName, location_name: "LaunchTemplateName"))
    CreateLaunchTemplateVersionRequest.add_member(:source_version, Shapes::ShapeRef.new(shape: String, location_name: "SourceVersion"))
    CreateLaunchTemplateVersionRequest.add_member(:version_description, Shapes::ShapeRef.new(shape: VersionDescription, location_name: "VersionDescription"))
    CreateLaunchTemplateVersionRequest.add_member(:launch_template_data, Shapes::ShapeRef.new(shape: RequestLaunchTemplateData, required: true, location_name: "LaunchTemplateData"))
    CreateLaunchTemplateVersionRequest.add_member(:resolve_alias, Shapes::ShapeRef.new(shape: Boolean, location_name: "ResolveAlias"))
    CreateLaunchTemplateVersionRequest.struct_class = Types::CreateLaunchTemplateVersionRequest

    CreateLaunchTemplateVersionResult.add_member(:launch_template_version, Shapes::ShapeRef.new(shape: LaunchTemplateVersion, location_name: "launchTemplateVersion"))
    CreateLaunchTemplateVersionResult.add_member(:warning, Shapes::ShapeRef.new(shape: ValidationWarning, location_name: "warning"))
    CreateLaunchTemplateVersionResult.struct_class = Types::CreateLaunchTemplateVersionResult

    CreateLocalGatewayRouteRequest.add_member(:destination_cidr_block, Shapes::ShapeRef.new(shape: String, location_name: "DestinationCidrBlock"))
    CreateLocalGatewayRouteRequest.add_member(:local_gateway_route_table_id, Shapes::ShapeRef.new(shape: LocalGatewayRoutetableId, required: true, location_name: "LocalGatewayRouteTableId"))
    CreateLocalGatewayRouteRequest.add_member(:local_gateway_virtual_interface_group_id, Shapes::ShapeRef.new(shape: LocalGatewayVirtualInterfaceGroupId, location_name: "LocalGatewayVirtualInterfaceGroupId"))
    CreateLocalGatewayRouteRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    CreateLocalGatewayRouteRequest.add_member(:network_interface_id, Shapes::ShapeRef.new(shape: NetworkInterfaceId, location_name: "NetworkInterfaceId"))
    CreateLocalGatewayRouteRequest.add_member(:destination_prefix_list_id, Shapes::ShapeRef.new(shape: PrefixListResourceId, location_name: "DestinationPrefixListId"))
    CreateLocalGatewayRouteRequest.struct_class = Types::CreateLocalGatewayRouteRequest

    CreateLocalGatewayRouteResult.add_member(:route, Shapes::ShapeRef.new(shape: LocalGatewayRoute, location_name: "route"))
    CreateLocalGatewayRouteResult.struct_class = Types::CreateLocalGatewayRouteResult

    CreateLocalGatewayRouteTableRequest.add_member(:local_gateway_id, Shapes::ShapeRef.new(shape: LocalGatewayId, required: true, location_name: "LocalGatewayId"))
    CreateLocalGatewayRouteTableRequest.add_member(:mode, Shapes::ShapeRef.new(shape: LocalGatewayRouteTableMode, location_name: "Mode"))
    CreateLocalGatewayRouteTableRequest.add_member(:tag_specifications, Shapes::ShapeRef.new(shape: TagSpecificationList, location_name: "TagSpecification"))
    CreateLocalGatewayRouteTableRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    CreateLocalGatewayRouteTableRequest.struct_class = Types::CreateLocalGatewayRouteTableRequest

    CreateLocalGatewayRouteTableResult.add_member(:local_gateway_route_table, Shapes::ShapeRef.new(shape: LocalGatewayRouteTable, location_name: "localGatewayRouteTable"))
    CreateLocalGatewayRouteTableResult.struct_class = Types::CreateLocalGatewayRouteTableResult

    CreateLocalGatewayRouteTableVirtualInterfaceGroupAssociationRequest.add_member(:local_gateway_route_table_id, Shapes::ShapeRef.new(shape: LocalGatewayRoutetableId, required: true, location_name: "LocalGatewayRouteTableId"))
    CreateLocalGatewayRouteTableVirtualInterfaceGroupAssociationRequest.add_member(:local_gateway_virtual_interface_group_id, Shapes::ShapeRef.new(shape: LocalGatewayVirtualInterfaceGroupId, required: true, location_name: "LocalGatewayVirtualInterfaceGroupId"))
    CreateLocalGatewayRouteTableVirtualInterfaceGroupAssociationRequest.add_member(:tag_specifications, Shapes::ShapeRef.new(shape: TagSpecificationList, location_name: "TagSpecification"))
    CreateLocalGatewayRouteTableVirtualInterfaceGroupAssociationRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    CreateLocalGatewayRouteTableVirtualInterfaceGroupAssociationRequest.struct_class = Types::CreateLocalGatewayRouteTableVirtualInterfaceGroupAssociationRequest

    CreateLocalGatewayRouteTableVirtualInterfaceGroupAssociationResult.add_member(:local_gateway_route_table_virtual_interface_group_association, Shapes::ShapeRef.new(shape: LocalGatewayRouteTableVirtualInterfaceGroupAssociation, location_name: "localGatewayRouteTableVirtualInterfaceGroupAssociation"))
    CreateLocalGatewayRouteTableVirtualInterfaceGroupAssociationResult.struct_class = Types::CreateLocalGatewayRouteTableVirtualInterfaceGroupAssociationResult

    CreateLocalGatewayRouteTableVpcAssociationRequest.add_member(:local_gateway_route_table_id, Shapes::ShapeRef.new(shape: LocalGatewayRoutetableId, required: true, location_name: "LocalGatewayRouteTableId"))
    CreateLocalGatewayRouteTableVpcAssociationRequest.add_member(:vpc_id, Shapes::ShapeRef.new(shape: VpcId, required: true, location_name: "VpcId"))
    CreateLocalGatewayRouteTableVpcAssociationRequest.add_member(:tag_specifications, Shapes::ShapeRef.new(shape: TagSpecificationList, location_name: "TagSpecification"))
    CreateLocalGatewayRouteTableVpcAssociationRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    CreateLocalGatewayRouteTableVpcAssociationRequest.struct_class = Types::CreateLocalGatewayRouteTableVpcAssociationRequest

    CreateLocalGatewayRouteTableVpcAssociationResult.add_member(:local_gateway_route_table_vpc_association, Shapes::ShapeRef.new(shape: LocalGatewayRouteTableVpcAssociation, location_name: "localGatewayRouteTableVpcAssociation"))
    CreateLocalGatewayRouteTableVpcAssociationResult.struct_class = Types::CreateLocalGatewayRouteTableVpcAssociationResult

    CreateManagedPrefixListRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    CreateManagedPrefixListRequest.add_member(:prefix_list_name, Shapes::ShapeRef.new(shape: String, required: true, location_name: "PrefixListName"))
    CreateManagedPrefixListRequest.add_member(:entries, Shapes::ShapeRef.new(shape: AddPrefixListEntries, location_name: "Entry"))
    CreateManagedPrefixListRequest.add_member(:max_entries, Shapes::ShapeRef.new(shape: Integer, required: true, location_name: "MaxEntries"))
    CreateManagedPrefixListRequest.add_member(:tag_specifications, Shapes::ShapeRef.new(shape: TagSpecificationList, location_name: "TagSpecification"))
    CreateManagedPrefixListRequest.add_member(:address_family, Shapes::ShapeRef.new(shape: String, required: true, location_name: "AddressFamily"))
    CreateManagedPrefixListRequest.add_member(:client_token, Shapes::ShapeRef.new(shape: String, location_name: "ClientToken", metadata: {"idempotencyToken"=>true}))
    CreateManagedPrefixListRequest.struct_class = Types::CreateManagedPrefixListRequest

    CreateManagedPrefixListResult.add_member(:prefix_list, Shapes::ShapeRef.new(shape: ManagedPrefixList, location_name: "prefixList"))
    CreateManagedPrefixListResult.struct_class = Types::CreateManagedPrefixListResult

    CreateNatGatewayRequest.add_member(:allocation_id, Shapes::ShapeRef.new(shape: AllocationId, location_name: "AllocationId"))
    CreateNatGatewayRequest.add_member(:client_token, Shapes::ShapeRef.new(shape: String, location_name: "ClientToken", metadata: {"idempotencyToken"=>true}))
    CreateNatGatewayRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    CreateNatGatewayRequest.add_member(:subnet_id, Shapes::ShapeRef.new(shape: SubnetId, required: true, location_name: "SubnetId"))
    CreateNatGatewayRequest.add_member(:tag_specifications, Shapes::ShapeRef.new(shape: TagSpecificationList, location_name: "TagSpecification"))
    CreateNatGatewayRequest.add_member(:connectivity_type, Shapes::ShapeRef.new(shape: ConnectivityType, location_name: "ConnectivityType"))
    CreateNatGatewayRequest.add_member(:private_ip_address, Shapes::ShapeRef.new(shape: String, location_name: "PrivateIpAddress"))
    CreateNatGatewayRequest.add_member(:secondary_allocation_ids, Shapes::ShapeRef.new(shape: AllocationIdList, location_name: "SecondaryAllocationId"))
    CreateNatGatewayRequest.add_member(:secondary_private_ip_addresses, Shapes::ShapeRef.new(shape: IpList, location_name: "SecondaryPrivateIpAddress"))
    CreateNatGatewayRequest.add_member(:secondary_private_ip_address_count, Shapes::ShapeRef.new(shape: PrivateIpAddressCount, location_name: "SecondaryPrivateIpAddressCount"))
    CreateNatGatewayRequest.struct_class = Types::CreateNatGatewayRequest

    CreateNatGatewayResult.add_member(:client_token, Shapes::ShapeRef.new(shape: String, location_name: "clientToken"))
    CreateNatGatewayResult.add_member(:nat_gateway, Shapes::ShapeRef.new(shape: NatGateway, location_name: "natGateway"))
    CreateNatGatewayResult.struct_class = Types::CreateNatGatewayResult

    CreateNetworkAclEntryRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "dryRun"))
    CreateNetworkAclEntryRequest.add_member(:network_acl_id, Shapes::ShapeRef.new(shape: NetworkAclId, required: true, location_name: "networkAclId"))
    CreateNetworkAclEntryRequest.add_member(:rule_number, Shapes::ShapeRef.new(shape: Integer, required: true, location_name: "ruleNumber"))
    CreateNetworkAclEntryRequest.add_member(:protocol, Shapes::ShapeRef.new(shape: String, required: true, location_name: "protocol"))
    CreateNetworkAclEntryRequest.add_member(:rule_action, Shapes::ShapeRef.new(shape: RuleAction, required: true, location_name: "ruleAction"))
    CreateNetworkAclEntryRequest.add_member(:egress, Shapes::ShapeRef.new(shape: Boolean, required: true, location_name: "egress"))
    CreateNetworkAclEntryRequest.add_member(:cidr_block, Shapes::ShapeRef.new(shape: String, location_name: "cidrBlock"))
    CreateNetworkAclEntryRequest.add_member(:ipv_6_cidr_block, Shapes::ShapeRef.new(shape: String, location_name: "ipv6CidrBlock"))
    CreateNetworkAclEntryRequest.add_member(:icmp_type_code, Shapes::ShapeRef.new(shape: IcmpTypeCode, location_name: "Icmp"))
    CreateNetworkAclEntryRequest.add_member(:port_range, Shapes::ShapeRef.new(shape: PortRange, location_name: "portRange"))
    CreateNetworkAclEntryRequest.struct_class = Types::CreateNetworkAclEntryRequest

    CreateNetworkAclRequest.add_member(:tag_specifications, Shapes::ShapeRef.new(shape: TagSpecificationList, location_name: "TagSpecification"))
    CreateNetworkAclRequest.add_member(:client_token, Shapes::ShapeRef.new(shape: String, location_name: "ClientToken", metadata: {"idempotencyToken"=>true}))
    CreateNetworkAclRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "dryRun"))
    CreateNetworkAclRequest.add_member(:vpc_id, Shapes::ShapeRef.new(shape: VpcId, required: true, location_name: "vpcId"))
    CreateNetworkAclRequest.struct_class = Types::CreateNetworkAclRequest

    CreateNetworkAclResult.add_member(:network_acl, Shapes::ShapeRef.new(shape: NetworkAcl, location_name: "networkAcl"))
    CreateNetworkAclResult.add_member(:client_token, Shapes::ShapeRef.new(shape: String, location_name: "clientToken"))
    CreateNetworkAclResult.struct_class = Types::CreateNetworkAclResult

    CreateNetworkInsightsAccessScopeRequest.add_member(:match_paths, Shapes::ShapeRef.new(shape: AccessScopePathListRequest, location_name: "MatchPath"))
    CreateNetworkInsightsAccessScopeRequest.add_member(:exclude_paths, Shapes::ShapeRef.new(shape: AccessScopePathListRequest, location_name: "ExcludePath"))
    CreateNetworkInsightsAccessScopeRequest.add_member(:client_token, Shapes::ShapeRef.new(shape: String, required: true, location_name: "ClientToken", metadata: {"idempotencyToken"=>true}))
    CreateNetworkInsightsAccessScopeRequest.add_member(:tag_specifications, Shapes::ShapeRef.new(shape: TagSpecificationList, location_name: "TagSpecification"))
    CreateNetworkInsightsAccessScopeRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    CreateNetworkInsightsAccessScopeRequest.struct_class = Types::CreateNetworkInsightsAccessScopeRequest

    CreateNetworkInsightsAccessScopeResult.add_member(:network_insights_access_scope, Shapes::ShapeRef.new(shape: NetworkInsightsAccessScope, location_name: "networkInsightsAccessScope"))
    CreateNetworkInsightsAccessScopeResult.add_member(:network_insights_access_scope_content, Shapes::ShapeRef.new(shape: NetworkInsightsAccessScopeContent, location_name: "networkInsightsAccessScopeContent"))
    CreateNetworkInsightsAccessScopeResult.struct_class = Types::CreateNetworkInsightsAccessScopeResult

    CreateNetworkInsightsPathRequest.add_member(:source_ip, Shapes::ShapeRef.new(shape: IpAddress, location_name: "SourceIp"))
    CreateNetworkInsightsPathRequest.add_member(:destination_ip, Shapes::ShapeRef.new(shape: IpAddress, location_name: "DestinationIp"))
    CreateNetworkInsightsPathRequest.add_member(:source, Shapes::ShapeRef.new(shape: NetworkInsightsResourceId, required: true, location_name: "Source"))
    CreateNetworkInsightsPathRequest.add_member(:destination, Shapes::ShapeRef.new(shape: NetworkInsightsResourceId, location_name: "Destination"))
    CreateNetworkInsightsPathRequest.add_member(:protocol, Shapes::ShapeRef.new(shape: Protocol, required: true, location_name: "Protocol"))
    CreateNetworkInsightsPathRequest.add_member(:destination_port, Shapes::ShapeRef.new(shape: Port, location_name: "DestinationPort"))
    CreateNetworkInsightsPathRequest.add_member(:tag_specifications, Shapes::ShapeRef.new(shape: TagSpecificationList, location_name: "TagSpecification"))
    CreateNetworkInsightsPathRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    CreateNetworkInsightsPathRequest.add_member(:client_token, Shapes::ShapeRef.new(shape: String, required: true, location_name: "ClientToken", metadata: {"idempotencyToken"=>true}))
    CreateNetworkInsightsPathRequest.add_member(:filter_at_source, Shapes::ShapeRef.new(shape: PathRequestFilter, location_name: "FilterAtSource"))
    CreateNetworkInsightsPathRequest.add_member(:filter_at_destination, Shapes::ShapeRef.new(shape: PathRequestFilter, location_name: "FilterAtDestination"))
    CreateNetworkInsightsPathRequest.struct_class = Types::CreateNetworkInsightsPathRequest

    CreateNetworkInsightsPathResult.add_member(:network_insights_path, Shapes::ShapeRef.new(shape: NetworkInsightsPath, location_name: "networkInsightsPath"))
    CreateNetworkInsightsPathResult.struct_class = Types::CreateNetworkInsightsPathResult

    CreateNetworkInterfacePermissionRequest.add_member(:network_interface_id, Shapes::ShapeRef.new(shape: NetworkInterfaceId, required: true, location_name: "NetworkInterfaceId"))
    CreateNetworkInterfacePermissionRequest.add_member(:aws_account_id, Shapes::ShapeRef.new(shape: String, location_name: "AwsAccountId"))
    CreateNetworkInterfacePermissionRequest.add_member(:aws_service, Shapes::ShapeRef.new(shape: String, location_name: "AwsService"))
    CreateNetworkInterfacePermissionRequest.add_member(:permission, Shapes::ShapeRef.new(shape: InterfacePermissionType, required: true, location_name: "Permission"))
    CreateNetworkInterfacePermissionRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    CreateNetworkInterfacePermissionRequest.struct_class = Types::CreateNetworkInterfacePermissionRequest

    CreateNetworkInterfacePermissionResult.add_member(:interface_permission, Shapes::ShapeRef.new(shape: NetworkInterfacePermission, location_name: "interfacePermission"))
    CreateNetworkInterfacePermissionResult.struct_class = Types::CreateNetworkInterfacePermissionResult

    CreateNetworkInterfaceRequest.add_member(:ipv_4_prefixes, Shapes::ShapeRef.new(shape: Ipv4PrefixList, location_name: "Ipv4Prefix"))
    CreateNetworkInterfaceRequest.add_member(:ipv_4_prefix_count, Shapes::ShapeRef.new(shape: Integer, location_name: "Ipv4PrefixCount"))
    CreateNetworkInterfaceRequest.add_member(:ipv_6_prefixes, Shapes::ShapeRef.new(shape: Ipv6PrefixList, location_name: "Ipv6Prefix"))
    CreateNetworkInterfaceRequest.add_member(:ipv_6_prefix_count, Shapes::ShapeRef.new(shape: Integer, location_name: "Ipv6PrefixCount"))
    CreateNetworkInterfaceRequest.add_member(:interface_type, Shapes::ShapeRef.new(shape: NetworkInterfaceCreationType, location_name: "InterfaceType"))
    CreateNetworkInterfaceRequest.add_member(:tag_specifications, Shapes::ShapeRef.new(shape: TagSpecificationList, location_name: "TagSpecification"))
    CreateNetworkInterfaceRequest.add_member(:client_token, Shapes::ShapeRef.new(shape: String, location_name: "ClientToken", metadata: {"idempotencyToken"=>true}))
    CreateNetworkInterfaceRequest.add_member(:enable_primary_ipv_6, Shapes::ShapeRef.new(shape: Boolean, location_name: "EnablePrimaryIpv6"))
    CreateNetworkInterfaceRequest.add_member(:connection_tracking_specification, Shapes::ShapeRef.new(shape: ConnectionTrackingSpecificationRequest, location_name: "ConnectionTrackingSpecification"))
    CreateNetworkInterfaceRequest.add_member(:operator, Shapes::ShapeRef.new(shape: OperatorRequest, location_name: "Operator"))
    CreateNetworkInterfaceRequest.add_member(:subnet_id, Shapes::ShapeRef.new(shape: SubnetId, required: true, location_name: "subnetId"))
    CreateNetworkInterfaceRequest.add_member(:description, Shapes::ShapeRef.new(shape: String, location_name: "description"))
    CreateNetworkInterfaceRequest.add_member(:private_ip_address, Shapes::ShapeRef.new(shape: String, location_name: "privateIpAddress"))
    CreateNetworkInterfaceRequest.add_member(:groups, Shapes::ShapeRef.new(shape: SecurityGroupIdStringList, location_name: "SecurityGroupId"))
    CreateNetworkInterfaceRequest.add_member(:private_ip_addresses, Shapes::ShapeRef.new(shape: PrivateIpAddressSpecificationList, location_name: "privateIpAddresses"))
    CreateNetworkInterfaceRequest.add_member(:secondary_private_ip_address_count, Shapes::ShapeRef.new(shape: Integer, location_name: "secondaryPrivateIpAddressCount"))
    CreateNetworkInterfaceRequest.add_member(:ipv_6_addresses, Shapes::ShapeRef.new(shape: InstanceIpv6AddressList, location_name: "ipv6Addresses"))
    CreateNetworkInterfaceRequest.add_member(:ipv_6_address_count, Shapes::ShapeRef.new(shape: Integer, location_name: "ipv6AddressCount"))
    CreateNetworkInterfaceRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "dryRun"))
    CreateNetworkInterfaceRequest.struct_class = Types::CreateNetworkInterfaceRequest

    CreateNetworkInterfaceResult.add_member(:network_interface, Shapes::ShapeRef.new(shape: NetworkInterface, location_name: "networkInterface"))
    CreateNetworkInterfaceResult.add_member(:client_token, Shapes::ShapeRef.new(shape: String, location_name: "clientToken"))
    CreateNetworkInterfaceResult.struct_class = Types::CreateNetworkInterfaceResult

    CreatePlacementGroupRequest.add_member(:partition_count, Shapes::ShapeRef.new(shape: Integer, location_name: "PartitionCount"))
    CreatePlacementGroupRequest.add_member(:tag_specifications, Shapes::ShapeRef.new(shape: TagSpecificationList, location_name: "TagSpecification"))
    CreatePlacementGroupRequest.add_member(:spread_level, Shapes::ShapeRef.new(shape: SpreadLevel, location_name: "SpreadLevel"))
    CreatePlacementGroupRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "dryRun"))
    CreatePlacementGroupRequest.add_member(:group_name, Shapes::ShapeRef.new(shape: String, location_name: "groupName"))
    CreatePlacementGroupRequest.add_member(:strategy, Shapes::ShapeRef.new(shape: PlacementStrategy, location_name: "strategy"))
    CreatePlacementGroupRequest.struct_class = Types::CreatePlacementGroupRequest

    CreatePlacementGroupResult.add_member(:placement_group, Shapes::ShapeRef.new(shape: PlacementGroup, location_name: "placementGroup"))
    CreatePlacementGroupResult.struct_class = Types::CreatePlacementGroupResult

    CreatePublicIpv4PoolRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    CreatePublicIpv4PoolRequest.add_member(:tag_specifications, Shapes::ShapeRef.new(shape: TagSpecificationList, location_name: "TagSpecification"))
    CreatePublicIpv4PoolRequest.add_member(:network_border_group, Shapes::ShapeRef.new(shape: String, location_name: "NetworkBorderGroup"))
    CreatePublicIpv4PoolRequest.struct_class = Types::CreatePublicIpv4PoolRequest

    CreatePublicIpv4PoolResult.add_member(:pool_id, Shapes::ShapeRef.new(shape: Ipv4PoolEc2Id, location_name: "poolId"))
    CreatePublicIpv4PoolResult.struct_class = Types::CreatePublicIpv4PoolResult

    CreateReplaceRootVolumeTaskRequest.add_member(:instance_id, Shapes::ShapeRef.new(shape: InstanceId, required: true, location_name: "InstanceId"))
    CreateReplaceRootVolumeTaskRequest.add_member(:snapshot_id, Shapes::ShapeRef.new(shape: SnapshotId, location_name: "SnapshotId"))
    CreateReplaceRootVolumeTaskRequest.add_member(:client_token, Shapes::ShapeRef.new(shape: String, location_name: "ClientToken", metadata: {"idempotencyToken"=>true}))
    CreateReplaceRootVolumeTaskRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    CreateReplaceRootVolumeTaskRequest.add_member(:tag_specifications, Shapes::ShapeRef.new(shape: TagSpecificationList, location_name: "TagSpecification"))
    CreateReplaceRootVolumeTaskRequest.add_member(:image_id, Shapes::ShapeRef.new(shape: ImageId, location_name: "ImageId"))
    CreateReplaceRootVolumeTaskRequest.add_member(:delete_replaced_root_volume, Shapes::ShapeRef.new(shape: Boolean, location_name: "DeleteReplacedRootVolume"))
    CreateReplaceRootVolumeTaskRequest.struct_class = Types::CreateReplaceRootVolumeTaskRequest

    CreateReplaceRootVolumeTaskResult.add_member(:replace_root_volume_task, Shapes::ShapeRef.new(shape: ReplaceRootVolumeTask, location_name: "replaceRootVolumeTask"))
    CreateReplaceRootVolumeTaskResult.struct_class = Types::CreateReplaceRootVolumeTaskResult

    CreateReservedInstancesListingRequest.add_member(:reserved_instances_id, Shapes::ShapeRef.new(shape: ReservationId, required: true, location_name: "reservedInstancesId"))
    CreateReservedInstancesListingRequest.add_member(:instance_count, Shapes::ShapeRef.new(shape: Integer, required: true, location_name: "instanceCount"))
    CreateReservedInstancesListingRequest.add_member(:price_schedules, Shapes::ShapeRef.new(shape: PriceScheduleSpecificationList, required: true, location_name: "priceSchedules"))
    CreateReservedInstancesListingRequest.add_member(:client_token, Shapes::ShapeRef.new(shape: String, required: true, location_name: "clientToken"))
    CreateReservedInstancesListingRequest.struct_class = Types::CreateReservedInstancesListingRequest

    CreateReservedInstancesListingResult.add_member(:reserved_instances_listings, Shapes::ShapeRef.new(shape: ReservedInstancesListingList, location_name: "reservedInstancesListingsSet"))
    CreateReservedInstancesListingResult.struct_class = Types::CreateReservedInstancesListingResult

    CreateRestoreImageTaskRequest.add_member(:bucket, Shapes::ShapeRef.new(shape: String, required: true, location_name: "Bucket"))
    CreateRestoreImageTaskRequest.add_member(:object_key, Shapes::ShapeRef.new(shape: String, required: true, location_name: "ObjectKey"))
    CreateRestoreImageTaskRequest.add_member(:name, Shapes::ShapeRef.new(shape: String, location_name: "Name"))
    CreateRestoreImageTaskRequest.add_member(:tag_specifications, Shapes::ShapeRef.new(shape: TagSpecificationList, location_name: "TagSpecification"))
    CreateRestoreImageTaskRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    CreateRestoreImageTaskRequest.struct_class = Types::CreateRestoreImageTaskRequest

    CreateRestoreImageTaskResult.add_member(:image_id, Shapes::ShapeRef.new(shape: String, location_name: "imageId"))
    CreateRestoreImageTaskResult.struct_class = Types::CreateRestoreImageTaskResult

    CreateRouteRequest.add_member(:destination_prefix_list_id, Shapes::ShapeRef.new(shape: PrefixListResourceId, location_name: "DestinationPrefixListId"))
    CreateRouteRequest.add_member(:vpc_endpoint_id, Shapes::ShapeRef.new(shape: VpcEndpointId, location_name: "VpcEndpointId"))
    CreateRouteRequest.add_member(:transit_gateway_id, Shapes::ShapeRef.new(shape: TransitGatewayId, location_name: "TransitGatewayId"))
    CreateRouteRequest.add_member(:local_gateway_id, Shapes::ShapeRef.new(shape: LocalGatewayId, location_name: "LocalGatewayId"))
    CreateRouteRequest.add_member(:carrier_gateway_id, Shapes::ShapeRef.new(shape: CarrierGatewayId, location_name: "CarrierGatewayId"))
    CreateRouteRequest.add_member(:core_network_arn, Shapes::ShapeRef.new(shape: CoreNetworkArn, location_name: "CoreNetworkArn"))
    CreateRouteRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "dryRun"))
    CreateRouteRequest.add_member(:route_table_id, Shapes::ShapeRef.new(shape: RouteTableId, required: true, location_name: "routeTableId"))
    CreateRouteRequest.add_member(:destination_cidr_block, Shapes::ShapeRef.new(shape: String, location_name: "destinationCidrBlock"))
    CreateRouteRequest.add_member(:gateway_id, Shapes::ShapeRef.new(shape: RouteGatewayId, location_name: "gatewayId"))
    CreateRouteRequest.add_member(:destination_ipv_6_cidr_block, Shapes::ShapeRef.new(shape: String, location_name: "destinationIpv6CidrBlock"))
    CreateRouteRequest.add_member(:egress_only_internet_gateway_id, Shapes::ShapeRef.new(shape: EgressOnlyInternetGatewayId, location_name: "egressOnlyInternetGatewayId"))
    CreateRouteRequest.add_member(:instance_id, Shapes::ShapeRef.new(shape: InstanceId, location_name: "instanceId"))
    CreateRouteRequest.add_member(:network_interface_id, Shapes::ShapeRef.new(shape: NetworkInterfaceId, location_name: "networkInterfaceId"))
    CreateRouteRequest.add_member(:vpc_peering_connection_id, Shapes::ShapeRef.new(shape: VpcPeeringConnectionId, location_name: "vpcPeeringConnectionId"))
    CreateRouteRequest.add_member(:nat_gateway_id, Shapes::ShapeRef.new(shape: NatGatewayId, location_name: "natGatewayId"))
    CreateRouteRequest.struct_class = Types::CreateRouteRequest

    CreateRouteResult.add_member(:return, Shapes::ShapeRef.new(shape: Boolean, location_name: "return"))
    CreateRouteResult.struct_class = Types::CreateRouteResult

    CreateRouteTableRequest.add_member(:tag_specifications, Shapes::ShapeRef.new(shape: TagSpecificationList, location_name: "TagSpecification"))
    CreateRouteTableRequest.add_member(:client_token, Shapes::ShapeRef.new(shape: String, location_name: "ClientToken", metadata: {"idempotencyToken"=>true}))
    CreateRouteTableRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "dryRun"))
    CreateRouteTableRequest.add_member(:vpc_id, Shapes::ShapeRef.new(shape: VpcId, required: true, location_name: "vpcId"))
    CreateRouteTableRequest.struct_class = Types::CreateRouteTableRequest

    CreateRouteTableResult.add_member(:route_table, Shapes::ShapeRef.new(shape: RouteTable, location_name: "routeTable"))
    CreateRouteTableResult.add_member(:client_token, Shapes::ShapeRef.new(shape: String, location_name: "clientToken"))
    CreateRouteTableResult.struct_class = Types::CreateRouteTableResult

    CreateSecurityGroupRequest.add_member(:description, Shapes::ShapeRef.new(shape: String, required: true, location_name: "GroupDescription"))
    CreateSecurityGroupRequest.add_member(:group_name, Shapes::ShapeRef.new(shape: String, required: true, location_name: "GroupName"))
    CreateSecurityGroupRequest.add_member(:vpc_id, Shapes::ShapeRef.new(shape: VpcId, location_name: "VpcId"))
    CreateSecurityGroupRequest.add_member(:tag_specifications, Shapes::ShapeRef.new(shape: TagSpecificationList, location_name: "TagSpecification"))
    CreateSecurityGroupRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "dryRun"))
    CreateSecurityGroupRequest.struct_class = Types::CreateSecurityGroupRequest

    CreateSecurityGroupResult.add_member(:group_id, Shapes::ShapeRef.new(shape: String, location_name: "groupId"))
    CreateSecurityGroupResult.add_member(:tags, Shapes::ShapeRef.new(shape: TagList, location_name: "tagSet"))
    CreateSecurityGroupResult.add_member(:security_group_arn, Shapes::ShapeRef.new(shape: String, location_name: "securityGroupArn"))
    CreateSecurityGroupResult.struct_class = Types::CreateSecurityGroupResult

    CreateSnapshotRequest.add_member(:description, Shapes::ShapeRef.new(shape: String, location_name: "Description"))
    CreateSnapshotRequest.add_member(:outpost_arn, Shapes::ShapeRef.new(shape: String, location_name: "OutpostArn"))
    CreateSnapshotRequest.add_member(:volume_id, Shapes::ShapeRef.new(shape: VolumeId, required: true, location_name: "VolumeId"))
    CreateSnapshotRequest.add_member(:tag_specifications, Shapes::ShapeRef.new(shape: TagSpecificationList, location_name: "TagSpecification"))
    CreateSnapshotRequest.add_member(:location, Shapes::ShapeRef.new(shape: SnapshotLocationEnum, location_name: "Location"))
    CreateSnapshotRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "dryRun"))
    CreateSnapshotRequest.struct_class = Types::CreateSnapshotRequest

    CreateSnapshotsRequest.add_member(:description, Shapes::ShapeRef.new(shape: String, location_name: "Description"))
    CreateSnapshotsRequest.add_member(:instance_specification, Shapes::ShapeRef.new(shape: InstanceSpecification, required: true, location_name: "InstanceSpecification"))
    CreateSnapshotsRequest.add_member(:outpost_arn, Shapes::ShapeRef.new(shape: String, location_name: "OutpostArn"))
    CreateSnapshotsRequest.add_member(:tag_specifications, Shapes::ShapeRef.new(shape: TagSpecificationList, location_name: "TagSpecification"))
    CreateSnapshotsRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    CreateSnapshotsRequest.add_member(:copy_tags_from_source, Shapes::ShapeRef.new(shape: CopyTagsFromSource, location_name: "CopyTagsFromSource"))
    CreateSnapshotsRequest.add_member(:location, Shapes::ShapeRef.new(shape: SnapshotLocationEnum, location_name: "Location"))
    CreateSnapshotsRequest.struct_class = Types::CreateSnapshotsRequest

    CreateSnapshotsResult.add_member(:snapshots, Shapes::ShapeRef.new(shape: SnapshotSet, location_name: "snapshotSet"))
    CreateSnapshotsResult.struct_class = Types::CreateSnapshotsResult

    CreateSpotDatafeedSubscriptionRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "dryRun"))
    CreateSpotDatafeedSubscriptionRequest.add_member(:bucket, Shapes::ShapeRef.new(shape: String, required: true, location_name: "bucket"))
    CreateSpotDatafeedSubscriptionRequest.add_member(:prefix, Shapes::ShapeRef.new(shape: String, location_name: "prefix"))
    CreateSpotDatafeedSubscriptionRequest.struct_class = Types::CreateSpotDatafeedSubscriptionRequest

    CreateSpotDatafeedSubscriptionResult.add_member(:spot_datafeed_subscription, Shapes::ShapeRef.new(shape: SpotDatafeedSubscription, location_name: "spotDatafeedSubscription"))
    CreateSpotDatafeedSubscriptionResult.struct_class = Types::CreateSpotDatafeedSubscriptionResult

    CreateStoreImageTaskRequest.add_member(:image_id, Shapes::ShapeRef.new(shape: ImageId, required: true, location_name: "ImageId"))
    CreateStoreImageTaskRequest.add_member(:bucket, Shapes::ShapeRef.new(shape: String, required: true, location_name: "Bucket"))
    CreateStoreImageTaskRequest.add_member(:s3_object_tags, Shapes::ShapeRef.new(shape: S3ObjectTagList, location_name: "S3ObjectTag"))
    CreateStoreImageTaskRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    CreateStoreImageTaskRequest.struct_class = Types::CreateStoreImageTaskRequest

    CreateStoreImageTaskResult.add_member(:object_key, Shapes::ShapeRef.new(shape: String, location_name: "objectKey"))
    CreateStoreImageTaskResult.struct_class = Types::CreateStoreImageTaskResult

    CreateSubnetCidrReservationRequest.add_member(:subnet_id, Shapes::ShapeRef.new(shape: SubnetId, required: true, location_name: "SubnetId"))
    CreateSubnetCidrReservationRequest.add_member(:cidr, Shapes::ShapeRef.new(shape: String, required: true, location_name: "Cidr"))
    CreateSubnetCidrReservationRequest.add_member(:reservation_type, Shapes::ShapeRef.new(shape: SubnetCidrReservationType, required: true, location_name: "ReservationType"))
    CreateSubnetCidrReservationRequest.add_member(:description, Shapes::ShapeRef.new(shape: String, location_name: "Description"))
    CreateSubnetCidrReservationRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    CreateSubnetCidrReservationRequest.add_member(:tag_specifications, Shapes::ShapeRef.new(shape: TagSpecificationList, location_name: "TagSpecification"))
    CreateSubnetCidrReservationRequest.struct_class = Types::CreateSubnetCidrReservationRequest

    CreateSubnetCidrReservationResult.add_member(:subnet_cidr_reservation, Shapes::ShapeRef.new(shape: SubnetCidrReservation, location_name: "subnetCidrReservation"))
    CreateSubnetCidrReservationResult.struct_class = Types::CreateSubnetCidrReservationResult

    CreateSubnetRequest.add_member(:tag_specifications, Shapes::ShapeRef.new(shape: TagSpecificationList, location_name: "TagSpecification"))
    CreateSubnetRequest.add_member(:availability_zone, Shapes::ShapeRef.new(shape: String, location_name: "AvailabilityZone"))
    CreateSubnetRequest.add_member(:availability_zone_id, Shapes::ShapeRef.new(shape: String, location_name: "AvailabilityZoneId"))
    CreateSubnetRequest.add_member(:cidr_block, Shapes::ShapeRef.new(shape: String, location_name: "CidrBlock"))
    CreateSubnetRequest.add_member(:ipv_6_cidr_block, Shapes::ShapeRef.new(shape: String, location_name: "Ipv6CidrBlock"))
    CreateSubnetRequest.add_member(:outpost_arn, Shapes::ShapeRef.new(shape: String, location_name: "OutpostArn"))
    CreateSubnetRequest.add_member(:vpc_id, Shapes::ShapeRef.new(shape: VpcId, required: true, location_name: "VpcId"))
    CreateSubnetRequest.add_member(:ipv_6_native, Shapes::ShapeRef.new(shape: Boolean, location_name: "Ipv6Native"))
    CreateSubnetRequest.add_member(:ipv_4_ipam_pool_id, Shapes::ShapeRef.new(shape: IpamPoolId, location_name: "Ipv4IpamPoolId"))
    CreateSubnetRequest.add_member(:ipv_4_netmask_length, Shapes::ShapeRef.new(shape: NetmaskLength, location_name: "Ipv4NetmaskLength"))
    CreateSubnetRequest.add_member(:ipv_6_ipam_pool_id, Shapes::ShapeRef.new(shape: IpamPoolId, location_name: "Ipv6IpamPoolId"))
    CreateSubnetRequest.add_member(:ipv_6_netmask_length, Shapes::ShapeRef.new(shape: NetmaskLength, location_name: "Ipv6NetmaskLength"))
    CreateSubnetRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "dryRun"))
    CreateSubnetRequest.struct_class = Types::CreateSubnetRequest

    CreateSubnetResult.add_member(:subnet, Shapes::ShapeRef.new(shape: Subnet, location_name: "subnet"))
    CreateSubnetResult.struct_class = Types::CreateSubnetResult

    CreateTagsRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "dryRun"))
    CreateTagsRequest.add_member(:resources, Shapes::ShapeRef.new(shape: ResourceIdList, required: true, location_name: "ResourceId"))
    CreateTagsRequest.add_member(:tags, Shapes::ShapeRef.new(shape: TagList, required: true, location_name: "Tag"))
    CreateTagsRequest.struct_class = Types::CreateTagsRequest

    CreateTrafficMirrorFilterRequest.add_member(:description, Shapes::ShapeRef.new(shape: String, location_name: "Description"))
    CreateTrafficMirrorFilterRequest.add_member(:tag_specifications, Shapes::ShapeRef.new(shape: TagSpecificationList, location_name: "TagSpecification"))
    CreateTrafficMirrorFilterRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    CreateTrafficMirrorFilterRequest.add_member(:client_token, Shapes::ShapeRef.new(shape: String, location_name: "ClientToken", metadata: {"idempotencyToken"=>true}))
    CreateTrafficMirrorFilterRequest.struct_class = Types::CreateTrafficMirrorFilterRequest

    CreateTrafficMirrorFilterResult.add_member(:traffic_mirror_filter, Shapes::ShapeRef.new(shape: TrafficMirrorFilter, location_name: "trafficMirrorFilter"))
    CreateTrafficMirrorFilterResult.add_member(:client_token, Shapes::ShapeRef.new(shape: String, location_name: "clientToken"))
    CreateTrafficMirrorFilterResult.struct_class = Types::CreateTrafficMirrorFilterResult

    CreateTrafficMirrorFilterRuleRequest.add_member(:traffic_mirror_filter_id, Shapes::ShapeRef.new(shape: TrafficMirrorFilterId, required: true, location_name: "TrafficMirrorFilterId"))
    CreateTrafficMirrorFilterRuleRequest.add_member(:traffic_direction, Shapes::ShapeRef.new(shape: TrafficDirection, required: true, location_name: "TrafficDirection"))
    CreateTrafficMirrorFilterRuleRequest.add_member(:rule_number, Shapes::ShapeRef.new(shape: Integer, required: true, location_name: "RuleNumber"))
    CreateTrafficMirrorFilterRuleRequest.add_member(:rule_action, Shapes::ShapeRef.new(shape: TrafficMirrorRuleAction, required: true, location_name: "RuleAction"))
    CreateTrafficMirrorFilterRuleRequest.add_member(:destination_port_range, Shapes::ShapeRef.new(shape: TrafficMirrorPortRangeRequest, location_name: "DestinationPortRange"))
    CreateTrafficMirrorFilterRuleRequest.add_member(:source_port_range, Shapes::ShapeRef.new(shape: TrafficMirrorPortRangeRequest, location_name: "SourcePortRange"))
    CreateTrafficMirrorFilterRuleRequest.add_member(:protocol, Shapes::ShapeRef.new(shape: Integer, location_name: "Protocol"))
    CreateTrafficMirrorFilterRuleRequest.add_member(:destination_cidr_block, Shapes::ShapeRef.new(shape: String, required: true, location_name: "DestinationCidrBlock"))
    CreateTrafficMirrorFilterRuleRequest.add_member(:source_cidr_block, Shapes::ShapeRef.new(shape: String, required: true, location_name: "SourceCidrBlock"))
    CreateTrafficMirrorFilterRuleRequest.add_member(:description, Shapes::ShapeRef.new(shape: String, location_name: "Description"))
    CreateTrafficMirrorFilterRuleRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    CreateTrafficMirrorFilterRuleRequest.add_member(:client_token, Shapes::ShapeRef.new(shape: String, location_name: "ClientToken", metadata: {"idempotencyToken"=>true}))
    CreateTrafficMirrorFilterRuleRequest.add_member(:tag_specifications, Shapes::ShapeRef.new(shape: TagSpecificationList, location_name: "TagSpecification"))
    CreateTrafficMirrorFilterRuleRequest.struct_class = Types::CreateTrafficMirrorFilterRuleRequest

    CreateTrafficMirrorFilterRuleResult.add_member(:traffic_mirror_filter_rule, Shapes::ShapeRef.new(shape: TrafficMirrorFilterRule, location_name: "trafficMirrorFilterRule"))
    CreateTrafficMirrorFilterRuleResult.add_member(:client_token, Shapes::ShapeRef.new(shape: String, location_name: "clientToken"))
    CreateTrafficMirrorFilterRuleResult.struct_class = Types::CreateTrafficMirrorFilterRuleResult

    CreateTrafficMirrorSessionRequest.add_member(:network_interface_id, Shapes::ShapeRef.new(shape: NetworkInterfaceId, required: true, location_name: "NetworkInterfaceId"))
    CreateTrafficMirrorSessionRequest.add_member(:traffic_mirror_target_id, Shapes::ShapeRef.new(shape: TrafficMirrorTargetId, required: true, location_name: "TrafficMirrorTargetId"))
    CreateTrafficMirrorSessionRequest.add_member(:traffic_mirror_filter_id, Shapes::ShapeRef.new(shape: TrafficMirrorFilterId, required: true, location_name: "TrafficMirrorFilterId"))
    CreateTrafficMirrorSessionRequest.add_member(:packet_length, Shapes::ShapeRef.new(shape: Integer, location_name: "PacketLength"))
    CreateTrafficMirrorSessionRequest.add_member(:session_number, Shapes::ShapeRef.new(shape: Integer, required: true, location_name: "SessionNumber"))
    CreateTrafficMirrorSessionRequest.add_member(:virtual_network_id, Shapes::ShapeRef.new(shape: Integer, location_name: "VirtualNetworkId"))
    CreateTrafficMirrorSessionRequest.add_member(:description, Shapes::ShapeRef.new(shape: String, location_name: "Description"))
    CreateTrafficMirrorSessionRequest.add_member(:tag_specifications, Shapes::ShapeRef.new(shape: TagSpecificationList, location_name: "TagSpecification"))
    CreateTrafficMirrorSessionRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    CreateTrafficMirrorSessionRequest.add_member(:client_token, Shapes::ShapeRef.new(shape: String, location_name: "ClientToken", metadata: {"idempotencyToken"=>true}))
    CreateTrafficMirrorSessionRequest.struct_class = Types::CreateTrafficMirrorSessionRequest

    CreateTrafficMirrorSessionResult.add_member(:traffic_mirror_session, Shapes::ShapeRef.new(shape: TrafficMirrorSession, location_name: "trafficMirrorSession"))
    CreateTrafficMirrorSessionResult.add_member(:client_token, Shapes::ShapeRef.new(shape: String, location_name: "clientToken"))
    CreateTrafficMirrorSessionResult.struct_class = Types::CreateTrafficMirrorSessionResult

    CreateTrafficMirrorTargetRequest.add_member(:network_interface_id, Shapes::ShapeRef.new(shape: NetworkInterfaceId, location_name: "NetworkInterfaceId"))
    CreateTrafficMirrorTargetRequest.add_member(:network_load_balancer_arn, Shapes::ShapeRef.new(shape: String, location_name: "NetworkLoadBalancerArn"))
    CreateTrafficMirrorTargetRequest.add_member(:description, Shapes::ShapeRef.new(shape: String, location_name: "Description"))
    CreateTrafficMirrorTargetRequest.add_member(:tag_specifications, Shapes::ShapeRef.new(shape: TagSpecificationList, location_name: "TagSpecification"))
    CreateTrafficMirrorTargetRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    CreateTrafficMirrorTargetRequest.add_member(:client_token, Shapes::ShapeRef.new(shape: String, location_name: "ClientToken", metadata: {"idempotencyToken"=>true}))
    CreateTrafficMirrorTargetRequest.add_member(:gateway_load_balancer_endpoint_id, Shapes::ShapeRef.new(shape: VpcEndpointId, location_name: "GatewayLoadBalancerEndpointId"))
    CreateTrafficMirrorTargetRequest.struct_class = Types::CreateTrafficMirrorTargetRequest

    CreateTrafficMirrorTargetResult.add_member(:traffic_mirror_target, Shapes::ShapeRef.new(shape: TrafficMirrorTarget, location_name: "trafficMirrorTarget"))
    CreateTrafficMirrorTargetResult.add_member(:client_token, Shapes::ShapeRef.new(shape: String, location_name: "clientToken"))
    CreateTrafficMirrorTargetResult.struct_class = Types::CreateTrafficMirrorTargetResult

    CreateTransitGatewayConnectPeerRequest.add_member(:transit_gateway_attachment_id, Shapes::ShapeRef.new(shape: TransitGatewayAttachmentId, required: true, location_name: "TransitGatewayAttachmentId"))
    CreateTransitGatewayConnectPeerRequest.add_member(:transit_gateway_address, Shapes::ShapeRef.new(shape: String, location_name: "TransitGatewayAddress"))
    CreateTransitGatewayConnectPeerRequest.add_member(:peer_address, Shapes::ShapeRef.new(shape: String, required: true, location_name: "PeerAddress"))
    CreateTransitGatewayConnectPeerRequest.add_member(:bgp_options, Shapes::ShapeRef.new(shape: TransitGatewayConnectRequestBgpOptions, location_name: "BgpOptions"))
    CreateTransitGatewayConnectPeerRequest.add_member(:inside_cidr_blocks, Shapes::ShapeRef.new(shape: InsideCidrBlocksStringList, required: true, location_name: "InsideCidrBlocks"))
    CreateTransitGatewayConnectPeerRequest.add_member(:tag_specifications, Shapes::ShapeRef.new(shape: TagSpecificationList, location_name: "TagSpecification"))
    CreateTransitGatewayConnectPeerRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    CreateTransitGatewayConnectPeerRequest.struct_class = Types::CreateTransitGatewayConnectPeerRequest

    CreateTransitGatewayConnectPeerResult.add_member(:transit_gateway_connect_peer, Shapes::ShapeRef.new(shape: TransitGatewayConnectPeer, location_name: "transitGatewayConnectPeer"))
    CreateTransitGatewayConnectPeerResult.struct_class = Types::CreateTransitGatewayConnectPeerResult

    CreateTransitGatewayConnectRequest.add_member(:transport_transit_gateway_attachment_id, Shapes::ShapeRef.new(shape: TransitGatewayAttachmentId, required: true, location_name: "TransportTransitGatewayAttachmentId"))
    CreateTransitGatewayConnectRequest.add_member(:options, Shapes::ShapeRef.new(shape: CreateTransitGatewayConnectRequestOptions, required: true, location_name: "Options"))
    CreateTransitGatewayConnectRequest.add_member(:tag_specifications, Shapes::ShapeRef.new(shape: TagSpecificationList, location_name: "TagSpecification"))
    CreateTransitGatewayConnectRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    CreateTransitGatewayConnectRequest.struct_class = Types::CreateTransitGatewayConnectRequest

    CreateTransitGatewayConnectRequestOptions.add_member(:protocol, Shapes::ShapeRef.new(shape: ProtocolValue, required: true, location_name: "Protocol"))
    CreateTransitGatewayConnectRequestOptions.struct_class = Types::CreateTransitGatewayConnectRequestOptions

    CreateTransitGatewayConnectResult.add_member(:transit_gateway_connect, Shapes::ShapeRef.new(shape: TransitGatewayConnect, location_name: "transitGatewayConnect"))
    CreateTransitGatewayConnectResult.struct_class = Types::CreateTransitGatewayConnectResult

    CreateTransitGatewayMulticastDomainRequest.add_member(:transit_gateway_id, Shapes::ShapeRef.new(shape: TransitGatewayId, required: true, location_name: "TransitGatewayId"))
    CreateTransitGatewayMulticastDomainRequest.add_member(:options, Shapes::ShapeRef.new(shape: CreateTransitGatewayMulticastDomainRequestOptions, location_name: "Options"))
    CreateTransitGatewayMulticastDomainRequest.add_member(:tag_specifications, Shapes::ShapeRef.new(shape: TagSpecificationList, location_name: "TagSpecification"))
    CreateTransitGatewayMulticastDomainRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    CreateTransitGatewayMulticastDomainRequest.struct_class = Types::CreateTransitGatewayMulticastDomainRequest

    CreateTransitGatewayMulticastDomainRequestOptions.add_member(:igmpv_2_support, Shapes::ShapeRef.new(shape: Igmpv2SupportValue, location_name: "Igmpv2Support"))
    CreateTransitGatewayMulticastDomainRequestOptions.add_member(:static_sources_support, Shapes::ShapeRef.new(shape: StaticSourcesSupportValue, location_name: "StaticSourcesSupport"))
    CreateTransitGatewayMulticastDomainRequestOptions.add_member(:auto_accept_shared_associations, Shapes::ShapeRef.new(shape: AutoAcceptSharedAssociationsValue, location_name: "AutoAcceptSharedAssociations"))
    CreateTransitGatewayMulticastDomainRequestOptions.struct_class = Types::CreateTransitGatewayMulticastDomainRequestOptions

    CreateTransitGatewayMulticastDomainResult.add_member(:transit_gateway_multicast_domain, Shapes::ShapeRef.new(shape: TransitGatewayMulticastDomain, location_name: "transitGatewayMulticastDomain"))
    CreateTransitGatewayMulticastDomainResult.struct_class = Types::CreateTransitGatewayMulticastDomainResult

    CreateTransitGatewayPeeringAttachmentRequest.add_member(:transit_gateway_id, Shapes::ShapeRef.new(shape: TransitGatewayId, required: true, location_name: "TransitGatewayId"))
    CreateTransitGatewayPeeringAttachmentRequest.add_member(:peer_transit_gateway_id, Shapes::ShapeRef.new(shape: TransitAssociationGatewayId, required: true, location_name: "PeerTransitGatewayId"))
    CreateTransitGatewayPeeringAttachmentRequest.add_member(:peer_account_id, Shapes::ShapeRef.new(shape: String, required: true, location_name: "PeerAccountId"))
    CreateTransitGatewayPeeringAttachmentRequest.add_member(:peer_region, Shapes::ShapeRef.new(shape: String, required: true, location_name: "PeerRegion"))
    CreateTransitGatewayPeeringAttachmentRequest.add_member(:options, Shapes::ShapeRef.new(shape: CreateTransitGatewayPeeringAttachmentRequestOptions, location_name: "Options"))
    CreateTransitGatewayPeeringAttachmentRequest.add_member(:tag_specifications, Shapes::ShapeRef.new(shape: TagSpecificationList, location_name: "TagSpecification"))
    CreateTransitGatewayPeeringAttachmentRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    CreateTransitGatewayPeeringAttachmentRequest.struct_class = Types::CreateTransitGatewayPeeringAttachmentRequest

    CreateTransitGatewayPeeringAttachmentRequestOptions.add_member(:dynamic_routing, Shapes::ShapeRef.new(shape: DynamicRoutingValue, location_name: "DynamicRouting"))
    CreateTransitGatewayPeeringAttachmentRequestOptions.struct_class = Types::CreateTransitGatewayPeeringAttachmentRequestOptions

    CreateTransitGatewayPeeringAttachmentResult.add_member(:transit_gateway_peering_attachment, Shapes::ShapeRef.new(shape: TransitGatewayPeeringAttachment, location_name: "transitGatewayPeeringAttachment"))
    CreateTransitGatewayPeeringAttachmentResult.struct_class = Types::CreateTransitGatewayPeeringAttachmentResult

    CreateTransitGatewayPolicyTableRequest.add_member(:transit_gateway_id, Shapes::ShapeRef.new(shape: TransitGatewayId, required: true, location_name: "TransitGatewayId"))
    CreateTransitGatewayPolicyTableRequest.add_member(:tag_specifications, Shapes::ShapeRef.new(shape: TagSpecificationList, location_name: "TagSpecifications"))
    CreateTransitGatewayPolicyTableRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    CreateTransitGatewayPolicyTableRequest.struct_class = Types::CreateTransitGatewayPolicyTableRequest

    CreateTransitGatewayPolicyTableResult.add_member(:transit_gateway_policy_table, Shapes::ShapeRef.new(shape: TransitGatewayPolicyTable, location_name: "transitGatewayPolicyTable"))
    CreateTransitGatewayPolicyTableResult.struct_class = Types::CreateTransitGatewayPolicyTableResult

    CreateTransitGatewayPrefixListReferenceRequest.add_member(:transit_gateway_route_table_id, Shapes::ShapeRef.new(shape: TransitGatewayRouteTableId, required: true, location_name: "TransitGatewayRouteTableId"))
    CreateTransitGatewayPrefixListReferenceRequest.add_member(:prefix_list_id, Shapes::ShapeRef.new(shape: PrefixListResourceId, required: true, location_name: "PrefixListId"))
    CreateTransitGatewayPrefixListReferenceRequest.add_member(:transit_gateway_attachment_id, Shapes::ShapeRef.new(shape: TransitGatewayAttachmentId, location_name: "TransitGatewayAttachmentId"))
    CreateTransitGatewayPrefixListReferenceRequest.add_member(:blackhole, Shapes::ShapeRef.new(shape: Boolean, location_name: "Blackhole"))
    CreateTransitGatewayPrefixListReferenceRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    CreateTransitGatewayPrefixListReferenceRequest.struct_class = Types::CreateTransitGatewayPrefixListReferenceRequest

    CreateTransitGatewayPrefixListReferenceResult.add_member(:transit_gateway_prefix_list_reference, Shapes::ShapeRef.new(shape: TransitGatewayPrefixListReference, location_name: "transitGatewayPrefixListReference"))
    CreateTransitGatewayPrefixListReferenceResult.struct_class = Types::CreateTransitGatewayPrefixListReferenceResult

    CreateTransitGatewayRequest.add_member(:description, Shapes::ShapeRef.new(shape: String, location_name: "Description"))
    CreateTransitGatewayRequest.add_member(:options, Shapes::ShapeRef.new(shape: TransitGatewayRequestOptions, location_name: "Options"))
    CreateTransitGatewayRequest.add_member(:tag_specifications, Shapes::ShapeRef.new(shape: TagSpecificationList, location_name: "TagSpecification"))
    CreateTransitGatewayRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    CreateTransitGatewayRequest.struct_class = Types::CreateTransitGatewayRequest

    CreateTransitGatewayResult.add_member(:transit_gateway, Shapes::ShapeRef.new(shape: TransitGateway, location_name: "transitGateway"))
    CreateTransitGatewayResult.struct_class = Types::CreateTransitGatewayResult

    CreateTransitGatewayRouteRequest.add_member(:destination_cidr_block, Shapes::ShapeRef.new(shape: String, required: true, location_name: "DestinationCidrBlock"))
    CreateTransitGatewayRouteRequest.add_member(:transit_gateway_route_table_id, Shapes::ShapeRef.new(shape: TransitGatewayRouteTableId, required: true, location_name: "TransitGatewayRouteTableId"))
    CreateTransitGatewayRouteRequest.add_member(:transit_gateway_attachment_id, Shapes::ShapeRef.new(shape: TransitGatewayAttachmentId, location_name: "TransitGatewayAttachmentId"))
    CreateTransitGatewayRouteRequest.add_member(:blackhole, Shapes::ShapeRef.new(shape: Boolean, location_name: "Blackhole"))
    CreateTransitGatewayRouteRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    CreateTransitGatewayRouteRequest.struct_class = Types::CreateTransitGatewayRouteRequest

    CreateTransitGatewayRouteResult.add_member(:route, Shapes::ShapeRef.new(shape: TransitGatewayRoute, location_name: "route"))
    CreateTransitGatewayRouteResult.struct_class = Types::CreateTransitGatewayRouteResult

    CreateTransitGatewayRouteTableAnnouncementRequest.add_member(:transit_gateway_route_table_id, Shapes::ShapeRef.new(shape: TransitGatewayRouteTableId, required: true, location_name: "TransitGatewayRouteTableId"))
    CreateTransitGatewayRouteTableAnnouncementRequest.add_member(:peering_attachment_id, Shapes::ShapeRef.new(shape: TransitGatewayAttachmentId, required: true, location_name: "PeeringAttachmentId"))
    CreateTransitGatewayRouteTableAnnouncementRequest.add_member(:tag_specifications, Shapes::ShapeRef.new(shape: TagSpecificationList, location_name: "TagSpecification"))
    CreateTransitGatewayRouteTableAnnouncementRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    CreateTransitGatewayRouteTableAnnouncementRequest.struct_class = Types::CreateTransitGatewayRouteTableAnnouncementRequest

    CreateTransitGatewayRouteTableAnnouncementResult.add_member(:transit_gateway_route_table_announcement, Shapes::ShapeRef.new(shape: TransitGatewayRouteTableAnnouncement, location_name: "transitGatewayRouteTableAnnouncement"))
    CreateTransitGatewayRouteTableAnnouncementResult.struct_class = Types::CreateTransitGatewayRouteTableAnnouncementResult

    CreateTransitGatewayRouteTableRequest.add_member(:transit_gateway_id, Shapes::ShapeRef.new(shape: TransitGatewayId, required: true, location_name: "TransitGatewayId"))
    CreateTransitGatewayRouteTableRequest.add_member(:tag_specifications, Shapes::ShapeRef.new(shape: TagSpecificationList, location_name: "TagSpecifications"))
    CreateTransitGatewayRouteTableRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    CreateTransitGatewayRouteTableRequest.struct_class = Types::CreateTransitGatewayRouteTableRequest

    CreateTransitGatewayRouteTableResult.add_member(:transit_gateway_route_table, Shapes::ShapeRef.new(shape: TransitGatewayRouteTable, location_name: "transitGatewayRouteTable"))
    CreateTransitGatewayRouteTableResult.struct_class = Types::CreateTransitGatewayRouteTableResult

    CreateTransitGatewayVpcAttachmentRequest.add_member(:transit_gateway_id, Shapes::ShapeRef.new(shape: TransitGatewayId, required: true, location_name: "TransitGatewayId"))
    CreateTransitGatewayVpcAttachmentRequest.add_member(:vpc_id, Shapes::ShapeRef.new(shape: VpcId, required: true, location_name: "VpcId"))
    CreateTransitGatewayVpcAttachmentRequest.add_member(:subnet_ids, Shapes::ShapeRef.new(shape: TransitGatewaySubnetIdList, required: true, location_name: "SubnetIds"))
    CreateTransitGatewayVpcAttachmentRequest.add_member(:options, Shapes::ShapeRef.new(shape: CreateTransitGatewayVpcAttachmentRequestOptions, location_name: "Options"))
    CreateTransitGatewayVpcAttachmentRequest.add_member(:tag_specifications, Shapes::ShapeRef.new(shape: TagSpecificationList, location_name: "TagSpecifications"))
    CreateTransitGatewayVpcAttachmentRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    CreateTransitGatewayVpcAttachmentRequest.struct_class = Types::CreateTransitGatewayVpcAttachmentRequest

    CreateTransitGatewayVpcAttachmentRequestOptions.add_member(:dns_support, Shapes::ShapeRef.new(shape: DnsSupportValue, location_name: "DnsSupport"))
    CreateTransitGatewayVpcAttachmentRequestOptions.add_member(:security_group_referencing_support, Shapes::ShapeRef.new(shape: SecurityGroupReferencingSupportValue, location_name: "SecurityGroupReferencingSupport"))
    CreateTransitGatewayVpcAttachmentRequestOptions.add_member(:ipv_6_support, Shapes::ShapeRef.new(shape: Ipv6SupportValue, location_name: "Ipv6Support"))
    CreateTransitGatewayVpcAttachmentRequestOptions.add_member(:appliance_mode_support, Shapes::ShapeRef.new(shape: ApplianceModeSupportValue, location_name: "ApplianceModeSupport"))
    CreateTransitGatewayVpcAttachmentRequestOptions.struct_class = Types::CreateTransitGatewayVpcAttachmentRequestOptions

    CreateTransitGatewayVpcAttachmentResult.add_member(:transit_gateway_vpc_attachment, Shapes::ShapeRef.new(shape: TransitGatewayVpcAttachment, location_name: "transitGatewayVpcAttachment"))
    CreateTransitGatewayVpcAttachmentResult.struct_class = Types::CreateTransitGatewayVpcAttachmentResult

    CreateVerifiedAccessEndpointCidrOptions.add_member(:protocol, Shapes::ShapeRef.new(shape: VerifiedAccessEndpointProtocol, location_name: "Protocol"))
    CreateVerifiedAccessEndpointCidrOptions.add_member(:subnet_ids, Shapes::ShapeRef.new(shape: CreateVerifiedAccessEndpointSubnetIdList, location_name: "SubnetId"))
    CreateVerifiedAccessEndpointCidrOptions.add_member(:cidr, Shapes::ShapeRef.new(shape: String, location_name: "Cidr"))
    CreateVerifiedAccessEndpointCidrOptions.add_member(:port_ranges, Shapes::ShapeRef.new(shape: CreateVerifiedAccessEndpointPortRangeList, location_name: "PortRange"))
    CreateVerifiedAccessEndpointCidrOptions.struct_class = Types::CreateVerifiedAccessEndpointCidrOptions

    CreateVerifiedAccessEndpointEniOptions.add_member(:network_interface_id, Shapes::ShapeRef.new(shape: NetworkInterfaceId, location_name: "NetworkInterfaceId"))
    CreateVerifiedAccessEndpointEniOptions.add_member(:protocol, Shapes::ShapeRef.new(shape: VerifiedAccessEndpointProtocol, location_name: "Protocol"))
    CreateVerifiedAccessEndpointEniOptions.add_member(:port, Shapes::ShapeRef.new(shape: VerifiedAccessEndpointPortNumber, location_name: "Port"))
    CreateVerifiedAccessEndpointEniOptions.add_member(:port_ranges, Shapes::ShapeRef.new(shape: CreateVerifiedAccessEndpointPortRangeList, location_name: "PortRange"))
    CreateVerifiedAccessEndpointEniOptions.struct_class = Types::CreateVerifiedAccessEndpointEniOptions

    CreateVerifiedAccessEndpointLoadBalancerOptions.add_member(:protocol, Shapes::ShapeRef.new(shape: VerifiedAccessEndpointProtocol, location_name: "Protocol"))
    CreateVerifiedAccessEndpointLoadBalancerOptions.add_member(:port, Shapes::ShapeRef.new(shape: VerifiedAccessEndpointPortNumber, location_name: "Port"))
    CreateVerifiedAccessEndpointLoadBalancerOptions.add_member(:load_balancer_arn, Shapes::ShapeRef.new(shape: LoadBalancerArn, location_name: "LoadBalancerArn"))
    CreateVerifiedAccessEndpointLoadBalancerOptions.add_member(:subnet_ids, Shapes::ShapeRef.new(shape: CreateVerifiedAccessEndpointSubnetIdList, location_name: "SubnetId"))
    CreateVerifiedAccessEndpointLoadBalancerOptions.add_member(:port_ranges, Shapes::ShapeRef.new(shape: CreateVerifiedAccessEndpointPortRangeList, location_name: "PortRange"))
    CreateVerifiedAccessEndpointLoadBalancerOptions.struct_class = Types::CreateVerifiedAccessEndpointLoadBalancerOptions

    CreateVerifiedAccessEndpointPortRange.add_member(:from_port, Shapes::ShapeRef.new(shape: VerifiedAccessEndpointPortNumber, location_name: "FromPort"))
    CreateVerifiedAccessEndpointPortRange.add_member(:to_port, Shapes::ShapeRef.new(shape: VerifiedAccessEndpointPortNumber, location_name: "ToPort"))
    CreateVerifiedAccessEndpointPortRange.struct_class = Types::CreateVerifiedAccessEndpointPortRange

    CreateVerifiedAccessEndpointPortRangeList.member = Shapes::ShapeRef.new(shape: CreateVerifiedAccessEndpointPortRange, location_name: "item")

    CreateVerifiedAccessEndpointRdsOptions.add_member(:protocol, Shapes::ShapeRef.new(shape: VerifiedAccessEndpointProtocol, location_name: "Protocol"))
    CreateVerifiedAccessEndpointRdsOptions.add_member(:port, Shapes::ShapeRef.new(shape: VerifiedAccessEndpointPortNumber, location_name: "Port"))
    CreateVerifiedAccessEndpointRdsOptions.add_member(:rds_db_instance_arn, Shapes::ShapeRef.new(shape: RdsDbInstanceArn, location_name: "RdsDbInstanceArn"))
    CreateVerifiedAccessEndpointRdsOptions.add_member(:rds_db_cluster_arn, Shapes::ShapeRef.new(shape: RdsDbClusterArn, location_name: "RdsDbClusterArn"))
    CreateVerifiedAccessEndpointRdsOptions.add_member(:rds_db_proxy_arn, Shapes::ShapeRef.new(shape: RdsDbProxyArn, location_name: "RdsDbProxyArn"))
    CreateVerifiedAccessEndpointRdsOptions.add_member(:rds_endpoint, Shapes::ShapeRef.new(shape: String, location_name: "RdsEndpoint"))
    CreateVerifiedAccessEndpointRdsOptions.add_member(:subnet_ids, Shapes::ShapeRef.new(shape: CreateVerifiedAccessEndpointSubnetIdList, location_name: "SubnetId"))
    CreateVerifiedAccessEndpointRdsOptions.struct_class = Types::CreateVerifiedAccessEndpointRdsOptions

    CreateVerifiedAccessEndpointRequest.add_member(:verified_access_group_id, Shapes::ShapeRef.new(shape: VerifiedAccessGroupId, required: true, location_name: "VerifiedAccessGroupId"))
    CreateVerifiedAccessEndpointRequest.add_member(:endpoint_type, Shapes::ShapeRef.new(shape: VerifiedAccessEndpointType, required: true, location_name: "EndpointType"))
    CreateVerifiedAccessEndpointRequest.add_member(:attachment_type, Shapes::ShapeRef.new(shape: VerifiedAccessEndpointAttachmentType, required: true, location_name: "AttachmentType"))
    CreateVerifiedAccessEndpointRequest.add_member(:domain_certificate_arn, Shapes::ShapeRef.new(shape: CertificateArn, location_name: "DomainCertificateArn"))
    CreateVerifiedAccessEndpointRequest.add_member(:application_domain, Shapes::ShapeRef.new(shape: String, location_name: "ApplicationDomain"))
    CreateVerifiedAccessEndpointRequest.add_member(:endpoint_domain_prefix, Shapes::ShapeRef.new(shape: String, location_name: "EndpointDomainPrefix"))
    CreateVerifiedAccessEndpointRequest.add_member(:security_group_ids, Shapes::ShapeRef.new(shape: SecurityGroupIdList, location_name: "SecurityGroupId"))
    CreateVerifiedAccessEndpointRequest.add_member(:load_balancer_options, Shapes::ShapeRef.new(shape: CreateVerifiedAccessEndpointLoadBalancerOptions, location_name: "LoadBalancerOptions"))
    CreateVerifiedAccessEndpointRequest.add_member(:network_interface_options, Shapes::ShapeRef.new(shape: CreateVerifiedAccessEndpointEniOptions, location_name: "NetworkInterfaceOptions"))
    CreateVerifiedAccessEndpointRequest.add_member(:description, Shapes::ShapeRef.new(shape: String, location_name: "Description"))
    CreateVerifiedAccessEndpointRequest.add_member(:policy_document, Shapes::ShapeRef.new(shape: String, location_name: "PolicyDocument"))
    CreateVerifiedAccessEndpointRequest.add_member(:tag_specifications, Shapes::ShapeRef.new(shape: TagSpecificationList, location_name: "TagSpecification"))
    CreateVerifiedAccessEndpointRequest.add_member(:client_token, Shapes::ShapeRef.new(shape: String, location_name: "ClientToken", metadata: {"idempotencyToken"=>true}))
    CreateVerifiedAccessEndpointRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    CreateVerifiedAccessEndpointRequest.add_member(:sse_specification, Shapes::ShapeRef.new(shape: VerifiedAccessSseSpecificationRequest, location_name: "SseSpecification"))
    CreateVerifiedAccessEndpointRequest.add_member(:rds_options, Shapes::ShapeRef.new(shape: CreateVerifiedAccessEndpointRdsOptions, location_name: "RdsOptions"))
    CreateVerifiedAccessEndpointRequest.add_member(:cidr_options, Shapes::ShapeRef.new(shape: CreateVerifiedAccessEndpointCidrOptions, location_name: "CidrOptions"))
    CreateVerifiedAccessEndpointRequest.struct_class = Types::CreateVerifiedAccessEndpointRequest

    CreateVerifiedAccessEndpointResult.add_member(:verified_access_endpoint, Shapes::ShapeRef.new(shape: VerifiedAccessEndpoint, location_name: "verifiedAccessEndpoint"))
    CreateVerifiedAccessEndpointResult.struct_class = Types::CreateVerifiedAccessEndpointResult

    CreateVerifiedAccessEndpointSubnetIdList.member = Shapes::ShapeRef.new(shape: SubnetId, location_name: "item")

    CreateVerifiedAccessGroupRequest.add_member(:verified_access_instance_id, Shapes::ShapeRef.new(shape: VerifiedAccessInstanceId, required: true, location_name: "VerifiedAccessInstanceId"))
    CreateVerifiedAccessGroupRequest.add_member(:description, Shapes::ShapeRef.new(shape: String, location_name: "Description"))
    CreateVerifiedAccessGroupRequest.add_member(:policy_document, Shapes::ShapeRef.new(shape: String, location_name: "PolicyDocument"))
    CreateVerifiedAccessGroupRequest.add_member(:tag_specifications, Shapes::ShapeRef.new(shape: TagSpecificationList, location_name: "TagSpecification"))
    CreateVerifiedAccessGroupRequest.add_member(:client_token, Shapes::ShapeRef.new(shape: String, location_name: "ClientToken", metadata: {"idempotencyToken"=>true}))
    CreateVerifiedAccessGroupRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    CreateVerifiedAccessGroupRequest.add_member(:sse_specification, Shapes::ShapeRef.new(shape: VerifiedAccessSseSpecificationRequest, location_name: "SseSpecification"))
    CreateVerifiedAccessGroupRequest.struct_class = Types::CreateVerifiedAccessGroupRequest

    CreateVerifiedAccessGroupResult.add_member(:verified_access_group, Shapes::ShapeRef.new(shape: VerifiedAccessGroup, location_name: "verifiedAccessGroup"))
    CreateVerifiedAccessGroupResult.struct_class = Types::CreateVerifiedAccessGroupResult

    CreateVerifiedAccessInstanceRequest.add_member(:description, Shapes::ShapeRef.new(shape: String, location_name: "Description"))
    CreateVerifiedAccessInstanceRequest.add_member(:tag_specifications, Shapes::ShapeRef.new(shape: TagSpecificationList, location_name: "TagSpecification"))
    CreateVerifiedAccessInstanceRequest.add_member(:client_token, Shapes::ShapeRef.new(shape: String, location_name: "ClientToken", metadata: {"idempotencyToken"=>true}))
    CreateVerifiedAccessInstanceRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    CreateVerifiedAccessInstanceRequest.add_member(:fips_enabled, Shapes::ShapeRef.new(shape: Boolean, location_name: "FIPSEnabled"))
    CreateVerifiedAccessInstanceRequest.add_member(:cidr_endpoints_custom_sub_domain, Shapes::ShapeRef.new(shape: String, location_name: "CidrEndpointsCustomSubDomain"))
    CreateVerifiedAccessInstanceRequest.struct_class = Types::CreateVerifiedAccessInstanceRequest

    CreateVerifiedAccessInstanceResult.add_member(:verified_access_instance, Shapes::ShapeRef.new(shape: VerifiedAccessInstance, location_name: "verifiedAccessInstance"))
    CreateVerifiedAccessInstanceResult.struct_class = Types::CreateVerifiedAccessInstanceResult

    CreateVerifiedAccessNativeApplicationOidcOptions.add_member(:public_signing_key_endpoint, Shapes::ShapeRef.new(shape: String, location_name: "PublicSigningKeyEndpoint"))
    CreateVerifiedAccessNativeApplicationOidcOptions.add_member(:issuer, Shapes::ShapeRef.new(shape: String, location_name: "Issuer"))
    CreateVerifiedAccessNativeApplicationOidcOptions.add_member(:authorization_endpoint, Shapes::ShapeRef.new(shape: String, location_name: "AuthorizationEndpoint"))
    CreateVerifiedAccessNativeApplicationOidcOptions.add_member(:token_endpoint, Shapes::ShapeRef.new(shape: String, location_name: "TokenEndpoint"))
    CreateVerifiedAccessNativeApplicationOidcOptions.add_member(:user_info_endpoint, Shapes::ShapeRef.new(shape: String, location_name: "UserInfoEndpoint"))
    CreateVerifiedAccessNativeApplicationOidcOptions.add_member(:client_id, Shapes::ShapeRef.new(shape: String, location_name: "ClientId"))
    CreateVerifiedAccessNativeApplicationOidcOptions.add_member(:client_secret, Shapes::ShapeRef.new(shape: ClientSecretType, location_name: "ClientSecret"))
    CreateVerifiedAccessNativeApplicationOidcOptions.add_member(:scope, Shapes::ShapeRef.new(shape: String, location_name: "Scope"))
    CreateVerifiedAccessNativeApplicationOidcOptions.struct_class = Types::CreateVerifiedAccessNativeApplicationOidcOptions

    CreateVerifiedAccessTrustProviderDeviceOptions.add_member(:tenant_id, Shapes::ShapeRef.new(shape: String, location_name: "TenantId"))
    CreateVerifiedAccessTrustProviderDeviceOptions.add_member(:public_signing_key_url, Shapes::ShapeRef.new(shape: String, location_name: "PublicSigningKeyUrl"))
    CreateVerifiedAccessTrustProviderDeviceOptions.struct_class = Types::CreateVerifiedAccessTrustProviderDeviceOptions

    CreateVerifiedAccessTrustProviderOidcOptions.add_member(:issuer, Shapes::ShapeRef.new(shape: String, location_name: "Issuer"))
    CreateVerifiedAccessTrustProviderOidcOptions.add_member(:authorization_endpoint, Shapes::ShapeRef.new(shape: String, location_name: "AuthorizationEndpoint"))
    CreateVerifiedAccessTrustProviderOidcOptions.add_member(:token_endpoint, Shapes::ShapeRef.new(shape: String, location_name: "TokenEndpoint"))
    CreateVerifiedAccessTrustProviderOidcOptions.add_member(:user_info_endpoint, Shapes::ShapeRef.new(shape: String, location_name: "UserInfoEndpoint"))
    CreateVerifiedAccessTrustProviderOidcOptions.add_member(:client_id, Shapes::ShapeRef.new(shape: String, location_name: "ClientId"))
    CreateVerifiedAccessTrustProviderOidcOptions.add_member(:client_secret, Shapes::ShapeRef.new(shape: ClientSecretType, location_name: "ClientSecret"))
    CreateVerifiedAccessTrustProviderOidcOptions.add_member(:scope, Shapes::ShapeRef.new(shape: String, location_name: "Scope"))
    CreateVerifiedAccessTrustProviderOidcOptions.struct_class = Types::CreateVerifiedAccessTrustProviderOidcOptions

    CreateVerifiedAccessTrustProviderRequest.add_member(:trust_provider_type, Shapes::ShapeRef.new(shape: TrustProviderType, required: true, location_name: "TrustProviderType"))
    CreateVerifiedAccessTrustProviderRequest.add_member(:user_trust_provider_type, Shapes::ShapeRef.new(shape: UserTrustProviderType, location_name: "UserTrustProviderType"))
    CreateVerifiedAccessTrustProviderRequest.add_member(:device_trust_provider_type, Shapes::ShapeRef.new(shape: DeviceTrustProviderType, location_name: "DeviceTrustProviderType"))
    CreateVerifiedAccessTrustProviderRequest.add_member(:oidc_options, Shapes::ShapeRef.new(shape: CreateVerifiedAccessTrustProviderOidcOptions, location_name: "OidcOptions"))
    CreateVerifiedAccessTrustProviderRequest.add_member(:device_options, Shapes::ShapeRef.new(shape: CreateVerifiedAccessTrustProviderDeviceOptions, location_name: "DeviceOptions"))
    CreateVerifiedAccessTrustProviderRequest.add_member(:policy_reference_name, Shapes::ShapeRef.new(shape: String, required: true, location_name: "PolicyReferenceName"))
    CreateVerifiedAccessTrustProviderRequest.add_member(:description, Shapes::ShapeRef.new(shape: String, location_name: "Description"))
    CreateVerifiedAccessTrustProviderRequest.add_member(:tag_specifications, Shapes::ShapeRef.new(shape: TagSpecificationList, location_name: "TagSpecification"))
    CreateVerifiedAccessTrustProviderRequest.add_member(:client_token, Shapes::ShapeRef.new(shape: String, location_name: "ClientToken", metadata: {"idempotencyToken"=>true}))
    CreateVerifiedAccessTrustProviderRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    CreateVerifiedAccessTrustProviderRequest.add_member(:sse_specification, Shapes::ShapeRef.new(shape: VerifiedAccessSseSpecificationRequest, location_name: "SseSpecification"))
    CreateVerifiedAccessTrustProviderRequest.add_member(:native_application_oidc_options, Shapes::ShapeRef.new(shape: CreateVerifiedAccessNativeApplicationOidcOptions, location_name: "NativeApplicationOidcOptions"))
    CreateVerifiedAccessTrustProviderRequest.struct_class = Types::CreateVerifiedAccessTrustProviderRequest

    CreateVerifiedAccessTrustProviderResult.add_member(:verified_access_trust_provider, Shapes::ShapeRef.new(shape: VerifiedAccessTrustProvider, location_name: "verifiedAccessTrustProvider"))
    CreateVerifiedAccessTrustProviderResult.struct_class = Types::CreateVerifiedAccessTrustProviderResult

    CreateVolumePermission.add_member(:user_id, Shapes::ShapeRef.new(shape: String, location_name: "userId"))
    CreateVolumePermission.add_member(:group, Shapes::ShapeRef.new(shape: PermissionGroup, location_name: "group"))
    CreateVolumePermission.struct_class = Types::CreateVolumePermission

    CreateVolumePermissionList.member = Shapes::ShapeRef.new(shape: CreateVolumePermission, location_name: "item")

    CreateVolumePermissionModifications.add_member(:add, Shapes::ShapeRef.new(shape: CreateVolumePermissionList, location_name: "Add"))
    CreateVolumePermissionModifications.add_member(:remove, Shapes::ShapeRef.new(shape: CreateVolumePermissionList, location_name: "Remove"))
    CreateVolumePermissionModifications.struct_class = Types::CreateVolumePermissionModifications

    CreateVolumeRequest.add_member(:availability_zone, Shapes::ShapeRef.new(shape: AvailabilityZoneName, required: true, location_name: "AvailabilityZone"))
    CreateVolumeRequest.add_member(:encrypted, Shapes::ShapeRef.new(shape: Boolean, location_name: "encrypted"))
    CreateVolumeRequest.add_member(:iops, Shapes::ShapeRef.new(shape: Integer, location_name: "Iops"))
    CreateVolumeRequest.add_member(:kms_key_id, Shapes::ShapeRef.new(shape: KmsKeyId, location_name: "KmsKeyId"))
    CreateVolumeRequest.add_member(:outpost_arn, Shapes::ShapeRef.new(shape: String, location_name: "OutpostArn"))
    CreateVolumeRequest.add_member(:size, Shapes::ShapeRef.new(shape: Integer, location_name: "Size"))
    CreateVolumeRequest.add_member(:snapshot_id, Shapes::ShapeRef.new(shape: SnapshotId, location_name: "SnapshotId"))
    CreateVolumeRequest.add_member(:volume_type, Shapes::ShapeRef.new(shape: VolumeType, location_name: "VolumeType"))
    CreateVolumeRequest.add_member(:tag_specifications, Shapes::ShapeRef.new(shape: TagSpecificationList, location_name: "TagSpecification"))
    CreateVolumeRequest.add_member(:multi_attach_enabled, Shapes::ShapeRef.new(shape: Boolean, location_name: "MultiAttachEnabled"))
    CreateVolumeRequest.add_member(:throughput, Shapes::ShapeRef.new(shape: Integer, location_name: "Throughput"))
    CreateVolumeRequest.add_member(:client_token, Shapes::ShapeRef.new(shape: String, location_name: "ClientToken", metadata: {"idempotencyToken"=>true}))
    CreateVolumeRequest.add_member(:operator, Shapes::ShapeRef.new(shape: OperatorRequest, location_name: "Operator"))
    CreateVolumeRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "dryRun"))
    CreateVolumeRequest.struct_class = Types::CreateVolumeRequest

    CreateVpcBlockPublicAccessExclusionRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    CreateVpcBlockPublicAccessExclusionRequest.add_member(:subnet_id, Shapes::ShapeRef.new(shape: SubnetId, location_name: "SubnetId"))
    CreateVpcBlockPublicAccessExclusionRequest.add_member(:vpc_id, Shapes::ShapeRef.new(shape: VpcId, location_name: "VpcId"))
    CreateVpcBlockPublicAccessExclusionRequest.add_member(:internet_gateway_exclusion_mode, Shapes::ShapeRef.new(shape: InternetGatewayExclusionMode, required: true, location_name: "InternetGatewayExclusionMode"))
    CreateVpcBlockPublicAccessExclusionRequest.add_member(:tag_specifications, Shapes::ShapeRef.new(shape: TagSpecificationList, location_name: "TagSpecification"))
    CreateVpcBlockPublicAccessExclusionRequest.struct_class = Types::CreateVpcBlockPublicAccessExclusionRequest

    CreateVpcBlockPublicAccessExclusionResult.add_member(:vpc_block_public_access_exclusion, Shapes::ShapeRef.new(shape: VpcBlockPublicAccessExclusion, location_name: "vpcBlockPublicAccessExclusion"))
    CreateVpcBlockPublicAccessExclusionResult.struct_class = Types::CreateVpcBlockPublicAccessExclusionResult

    CreateVpcEndpointConnectionNotificationRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    CreateVpcEndpointConnectionNotificationRequest.add_member(:service_id, Shapes::ShapeRef.new(shape: VpcEndpointServiceId, location_name: "ServiceId"))
    CreateVpcEndpointConnectionNotificationRequest.add_member(:vpc_endpoint_id, Shapes::ShapeRef.new(shape: VpcEndpointId, location_name: "VpcEndpointId"))
    CreateVpcEndpointConnectionNotificationRequest.add_member(:connection_notification_arn, Shapes::ShapeRef.new(shape: String, required: true, location_name: "ConnectionNotificationArn"))
    CreateVpcEndpointConnectionNotificationRequest.add_member(:connection_events, Shapes::ShapeRef.new(shape: ValueStringList, required: true, location_name: "ConnectionEvents"))
    CreateVpcEndpointConnectionNotificationRequest.add_member(:client_token, Shapes::ShapeRef.new(shape: String, location_name: "ClientToken"))
    CreateVpcEndpointConnectionNotificationRequest.struct_class = Types::CreateVpcEndpointConnectionNotificationRequest

    CreateVpcEndpointConnectionNotificationResult.add_member(:connection_notification, Shapes::ShapeRef.new(shape: ConnectionNotification, location_name: "connectionNotification"))
    CreateVpcEndpointConnectionNotificationResult.add_member(:client_token, Shapes::ShapeRef.new(shape: String, location_name: "clientToken"))
    CreateVpcEndpointConnectionNotificationResult.struct_class = Types::CreateVpcEndpointConnectionNotificationResult

    CreateVpcEndpointRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    CreateVpcEndpointRequest.add_member(:vpc_endpoint_type, Shapes::ShapeRef.new(shape: VpcEndpointType, location_name: "VpcEndpointType"))
    CreateVpcEndpointRequest.add_member(:vpc_id, Shapes::ShapeRef.new(shape: VpcId, required: true, location_name: "VpcId"))
    CreateVpcEndpointRequest.add_member(:service_name, Shapes::ShapeRef.new(shape: String, location_name: "ServiceName"))
    CreateVpcEndpointRequest.add_member(:policy_document, Shapes::ShapeRef.new(shape: String, location_name: "PolicyDocument"))
    CreateVpcEndpointRequest.add_member(:route_table_ids, Shapes::ShapeRef.new(shape: VpcEndpointRouteTableIdList, location_name: "RouteTableId"))
    CreateVpcEndpointRequest.add_member(:subnet_ids, Shapes::ShapeRef.new(shape: VpcEndpointSubnetIdList, location_name: "SubnetId"))
    CreateVpcEndpointRequest.add_member(:security_group_ids, Shapes::ShapeRef.new(shape: VpcEndpointSecurityGroupIdList, location_name: "SecurityGroupId"))
    CreateVpcEndpointRequest.add_member(:ip_address_type, Shapes::ShapeRef.new(shape: IpAddressType, location_name: "IpAddressType"))
    CreateVpcEndpointRequest.add_member(:dns_options, Shapes::ShapeRef.new(shape: DnsOptionsSpecification, location_name: "DnsOptions"))
    CreateVpcEndpointRequest.add_member(:client_token, Shapes::ShapeRef.new(shape: String, location_name: "ClientToken"))
    CreateVpcEndpointRequest.add_member(:private_dns_enabled, Shapes::ShapeRef.new(shape: Boolean, location_name: "PrivateDnsEnabled"))
    CreateVpcEndpointRequest.add_member(:tag_specifications, Shapes::ShapeRef.new(shape: TagSpecificationList, location_name: "TagSpecification"))
    CreateVpcEndpointRequest.add_member(:subnet_configurations, Shapes::ShapeRef.new(shape: SubnetConfigurationsList, location_name: "SubnetConfiguration"))
    CreateVpcEndpointRequest.add_member(:service_network_arn, Shapes::ShapeRef.new(shape: ServiceNetworkArn, location_name: "ServiceNetworkArn"))
    CreateVpcEndpointRequest.add_member(:resource_configuration_arn, Shapes::ShapeRef.new(shape: ResourceConfigurationArn, location_name: "ResourceConfigurationArn"))
    CreateVpcEndpointRequest.add_member(:service_region, Shapes::ShapeRef.new(shape: String, location_name: "ServiceRegion"))
    CreateVpcEndpointRequest.struct_class = Types::CreateVpcEndpointRequest

    CreateVpcEndpointResult.add_member(:vpc_endpoint, Shapes::ShapeRef.new(shape: VpcEndpoint, location_name: "vpcEndpoint"))
    CreateVpcEndpointResult.add_member(:client_token, Shapes::ShapeRef.new(shape: String, location_name: "clientToken"))
    CreateVpcEndpointResult.struct_class = Types::CreateVpcEndpointResult

    CreateVpcEndpointServiceConfigurationRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    CreateVpcEndpointServiceConfigurationRequest.add_member(:acceptance_required, Shapes::ShapeRef.new(shape: Boolean, location_name: "AcceptanceRequired"))
    CreateVpcEndpointServiceConfigurationRequest.add_member(:private_dns_name, Shapes::ShapeRef.new(shape: String, location_name: "PrivateDnsName"))
    CreateVpcEndpointServiceConfigurationRequest.add_member(:network_load_balancer_arns, Shapes::ShapeRef.new(shape: ValueStringList, location_name: "NetworkLoadBalancerArn"))
    CreateVpcEndpointServiceConfigurationRequest.add_member(:gateway_load_balancer_arns, Shapes::ShapeRef.new(shape: ValueStringList, location_name: "GatewayLoadBalancerArn"))
    CreateVpcEndpointServiceConfigurationRequest.add_member(:supported_ip_address_types, Shapes::ShapeRef.new(shape: ValueStringList, location_name: "SupportedIpAddressType"))
    CreateVpcEndpointServiceConfigurationRequest.add_member(:supported_regions, Shapes::ShapeRef.new(shape: ValueStringList, location_name: "SupportedRegion"))
    CreateVpcEndpointServiceConfigurationRequest.add_member(:client_token, Shapes::ShapeRef.new(shape: String, location_name: "ClientToken"))
    CreateVpcEndpointServiceConfigurationRequest.add_member(:tag_specifications, Shapes::ShapeRef.new(shape: TagSpecificationList, location_name: "TagSpecification"))
    CreateVpcEndpointServiceConfigurationRequest.struct_class = Types::CreateVpcEndpointServiceConfigurationRequest

    CreateVpcEndpointServiceConfigurationResult.add_member(:service_configuration, Shapes::ShapeRef.new(shape: ServiceConfiguration, location_name: "serviceConfiguration"))
    CreateVpcEndpointServiceConfigurationResult.add_member(:client_token, Shapes::ShapeRef.new(shape: String, location_name: "clientToken"))
    CreateVpcEndpointServiceConfigurationResult.struct_class = Types::CreateVpcEndpointServiceConfigurationResult

    CreateVpcPeeringConnectionRequest.add_member(:peer_region, Shapes::ShapeRef.new(shape: String, location_name: "PeerRegion"))
    CreateVpcPeeringConnectionRequest.add_member(:tag_specifications, Shapes::ShapeRef.new(shape: TagSpecificationList, location_name: "TagSpecification"))
    CreateVpcPeeringConnectionRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "dryRun"))
    CreateVpcPeeringConnectionRequest.add_member(:vpc_id, Shapes::ShapeRef.new(shape: VpcId, required: true, location_name: "vpcId"))
    CreateVpcPeeringConnectionRequest.add_member(:peer_vpc_id, Shapes::ShapeRef.new(shape: String, location_name: "peerVpcId"))
    CreateVpcPeeringConnectionRequest.add_member(:peer_owner_id, Shapes::ShapeRef.new(shape: String, location_name: "peerOwnerId"))
    CreateVpcPeeringConnectionRequest.struct_class = Types::CreateVpcPeeringConnectionRequest

    CreateVpcPeeringConnectionResult.add_member(:vpc_peering_connection, Shapes::ShapeRef.new(shape: VpcPeeringConnection, location_name: "vpcPeeringConnection"))
    CreateVpcPeeringConnectionResult.struct_class = Types::CreateVpcPeeringConnectionResult

    CreateVpcRequest.add_member(:cidr_block, Shapes::ShapeRef.new(shape: String, location_name: "CidrBlock"))
    CreateVpcRequest.add_member(:ipv_6_pool, Shapes::ShapeRef.new(shape: Ipv6PoolEc2Id, location_name: "Ipv6Pool"))
    CreateVpcRequest.add_member(:ipv_6_cidr_block, Shapes::ShapeRef.new(shape: String, location_name: "Ipv6CidrBlock"))
    CreateVpcRequest.add_member(:ipv_4_ipam_pool_id, Shapes::ShapeRef.new(shape: IpamPoolId, location_name: "Ipv4IpamPoolId"))
    CreateVpcRequest.add_member(:ipv_4_netmask_length, Shapes::ShapeRef.new(shape: NetmaskLength, location_name: "Ipv4NetmaskLength"))
    CreateVpcRequest.add_member(:ipv_6_ipam_pool_id, Shapes::ShapeRef.new(shape: IpamPoolId, location_name: "Ipv6IpamPoolId"))
    CreateVpcRequest.add_member(:ipv_6_netmask_length, Shapes::ShapeRef.new(shape: NetmaskLength, location_name: "Ipv6NetmaskLength"))
    CreateVpcRequest.add_member(:ipv_6_cidr_block_network_border_group, Shapes::ShapeRef.new(shape: String, location_name: "Ipv6CidrBlockNetworkBorderGroup"))
    CreateVpcRequest.add_member(:tag_specifications, Shapes::ShapeRef.new(shape: TagSpecificationList, location_name: "TagSpecification"))
    CreateVpcRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "dryRun"))
    CreateVpcRequest.add_member(:instance_tenancy, Shapes::ShapeRef.new(shape: Tenancy, location_name: "instanceTenancy"))
    CreateVpcRequest.add_member(:amazon_provided_ipv_6_cidr_block, Shapes::ShapeRef.new(shape: Boolean, location_name: "amazonProvidedIpv6CidrBlock"))
    CreateVpcRequest.struct_class = Types::CreateVpcRequest

    CreateVpcResult.add_member(:vpc, Shapes::ShapeRef.new(shape: Vpc, location_name: "vpc"))
    CreateVpcResult.struct_class = Types::CreateVpcResult

    CreateVpnConnectionRequest.add_member(:customer_gateway_id, Shapes::ShapeRef.new(shape: CustomerGatewayId, required: true, location_name: "CustomerGatewayId"))
    CreateVpnConnectionRequest.add_member(:type, Shapes::ShapeRef.new(shape: String, required: true, location_name: "Type"))
    CreateVpnConnectionRequest.add_member(:vpn_gateway_id, Shapes::ShapeRef.new(shape: VpnGatewayId, location_name: "VpnGatewayId"))
    CreateVpnConnectionRequest.add_member(:transit_gateway_id, Shapes::ShapeRef.new(shape: TransitGatewayId, location_name: "TransitGatewayId"))
    CreateVpnConnectionRequest.add_member(:tag_specifications, Shapes::ShapeRef.new(shape: TagSpecificationList, location_name: "TagSpecification"))
    CreateVpnConnectionRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "dryRun"))
    CreateVpnConnectionRequest.add_member(:options, Shapes::ShapeRef.new(shape: VpnConnectionOptionsSpecification, location_name: "options"))
    CreateVpnConnectionRequest.struct_class = Types::CreateVpnConnectionRequest

    CreateVpnConnectionResult.add_member(:vpn_connection, Shapes::ShapeRef.new(shape: VpnConnection, location_name: "vpnConnection"))
    CreateVpnConnectionResult.struct_class = Types::CreateVpnConnectionResult

    CreateVpnConnectionRouteRequest.add_member(:destination_cidr_block, Shapes::ShapeRef.new(shape: String, required: true, location_name: "DestinationCidrBlock"))
    CreateVpnConnectionRouteRequest.add_member(:vpn_connection_id, Shapes::ShapeRef.new(shape: VpnConnectionId, required: true, location_name: "VpnConnectionId"))
    CreateVpnConnectionRouteRequest.struct_class = Types::CreateVpnConnectionRouteRequest

    CreateVpnGatewayRequest.add_member(:availability_zone, Shapes::ShapeRef.new(shape: String, location_name: "AvailabilityZone"))
    CreateVpnGatewayRequest.add_member(:type, Shapes::ShapeRef.new(shape: GatewayType, required: true, location_name: "Type"))
    CreateVpnGatewayRequest.add_member(:tag_specifications, Shapes::ShapeRef.new(shape: TagSpecificationList, location_name: "TagSpecification"))
    CreateVpnGatewayRequest.add_member(:amazon_side_asn, Shapes::ShapeRef.new(shape: Long, location_name: "AmazonSideAsn"))
    CreateVpnGatewayRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "dryRun"))
    CreateVpnGatewayRequest.struct_class = Types::CreateVpnGatewayRequest

    CreateVpnGatewayResult.add_member(:vpn_gateway, Shapes::ShapeRef.new(shape: VpnGateway, location_name: "vpnGateway"))
    CreateVpnGatewayResult.struct_class = Types::CreateVpnGatewayResult

    CreditSpecification.add_member(:cpu_credits, Shapes::ShapeRef.new(shape: String, location_name: "cpuCredits"))
    CreditSpecification.struct_class = Types::CreditSpecification

    CreditSpecificationRequest.add_member(:cpu_credits, Shapes::ShapeRef.new(shape: String, required: true, location_name: "CpuCredits"))
    CreditSpecificationRequest.struct_class = Types::CreditSpecificationRequest

    CustomerGateway.add_member(:certificate_arn, Shapes::ShapeRef.new(shape: String, location_name: "certificateArn"))
    CustomerGateway.add_member(:device_name, Shapes::ShapeRef.new(shape: String, location_name: "deviceName"))
    CustomerGateway.add_member(:tags, Shapes::ShapeRef.new(shape: TagList, location_name: "tagSet"))
    CustomerGateway.add_member(:bgp_asn_extended, Shapes::ShapeRef.new(shape: String, location_name: "bgpAsnExtended"))
    CustomerGateway.add_member(:customer_gateway_id, Shapes::ShapeRef.new(shape: String, location_name: "customerGatewayId"))
    CustomerGateway.add_member(:state, Shapes::ShapeRef.new(shape: String, location_name: "state"))
    CustomerGateway.add_member(:type, Shapes::ShapeRef.new(shape: String, location_name: "type"))
    CustomerGateway.add_member(:ip_address, Shapes::ShapeRef.new(shape: String, location_name: "ipAddress"))
    CustomerGateway.add_member(:bgp_asn, Shapes::ShapeRef.new(shape: String, location_name: "bgpAsn"))
    CustomerGateway.struct_class = Types::CustomerGateway

    CustomerGatewayIdStringList.member = Shapes::ShapeRef.new(shape: CustomerGatewayId, location_name: "CustomerGatewayId")

    CustomerGatewayList.member = Shapes::ShapeRef.new(shape: CustomerGateway, location_name: "item")

    DataQueries.member = Shapes::ShapeRef.new(shape: DataQuery)

    DataQuery.add_member(:id, Shapes::ShapeRef.new(shape: String, location_name: "Id"))
    DataQuery.add_member(:source, Shapes::ShapeRef.new(shape: String, location_name: "Source"))
    DataQuery.add_member(:destination, Shapes::ShapeRef.new(shape: String, location_name: "Destination"))
    DataQuery.add_member(:metric, Shapes::ShapeRef.new(shape: MetricType, location_name: "Metric"))
    DataQuery.add_member(:statistic, Shapes::ShapeRef.new(shape: StatisticType, location_name: "Statistic"))
    DataQuery.add_member(:period, Shapes::ShapeRef.new(shape: PeriodType, location_name: "Period"))
    DataQuery.struct_class = Types::DataQuery

    DataResponse.add_member(:id, Shapes::ShapeRef.new(shape: String, location_name: "id"))
    DataResponse.add_member(:source, Shapes::ShapeRef.new(shape: String, location_name: "source"))
    DataResponse.add_member(:destination, Shapes::ShapeRef.new(shape: String, location_name: "destination"))
    DataResponse.add_member(:metric, Shapes::ShapeRef.new(shape: MetricType, location_name: "metric"))
    DataResponse.add_member(:statistic, Shapes::ShapeRef.new(shape: StatisticType, location_name: "statistic"))
    DataResponse.add_member(:period, Shapes::ShapeRef.new(shape: PeriodType, location_name: "period"))
    DataResponse.add_member(:metric_points, Shapes::ShapeRef.new(shape: MetricPoints, location_name: "metricPointSet"))
    DataResponse.struct_class = Types::DataResponse

    DataResponses.member = Shapes::ShapeRef.new(shape: DataResponse, location_name: "item")

    DeclarativePoliciesReport.add_member(:report_id, Shapes::ShapeRef.new(shape: String, location_name: "reportId"))
    DeclarativePoliciesReport.add_member(:s3_bucket, Shapes::ShapeRef.new(shape: String, location_name: "s3Bucket"))
    DeclarativePoliciesReport.add_member(:s3_prefix, Shapes::ShapeRef.new(shape: String, location_name: "s3Prefix"))
    DeclarativePoliciesReport.add_member(:target_id, Shapes::ShapeRef.new(shape: String, location_name: "targetId"))
    DeclarativePoliciesReport.add_member(:start_time, Shapes::ShapeRef.new(shape: MillisecondDateTime, location_name: "startTime"))
    DeclarativePoliciesReport.add_member(:end_time, Shapes::ShapeRef.new(shape: MillisecondDateTime, location_name: "endTime"))
    DeclarativePoliciesReport.add_member(:status, Shapes::ShapeRef.new(shape: ReportState, location_name: "status"))
    DeclarativePoliciesReport.add_member(:tags, Shapes::ShapeRef.new(shape: TagList, location_name: "tagSet"))
    DeclarativePoliciesReport.struct_class = Types::DeclarativePoliciesReport

    DeclarativePoliciesReportList.member = Shapes::ShapeRef.new(shape: DeclarativePoliciesReport, location_name: "item")

    DedicatedHostIdList.member = Shapes::ShapeRef.new(shape: DedicatedHostId, location_name: "item")

    DeleteCarrierGatewayRequest.add_member(:carrier_gateway_id, Shapes::ShapeRef.new(shape: CarrierGatewayId, required: true, location_name: "CarrierGatewayId"))
    DeleteCarrierGatewayRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    DeleteCarrierGatewayRequest.struct_class = Types::DeleteCarrierGatewayRequest

    DeleteCarrierGatewayResult.add_member(:carrier_gateway, Shapes::ShapeRef.new(shape: CarrierGateway, location_name: "carrierGateway"))
    DeleteCarrierGatewayResult.struct_class = Types::DeleteCarrierGatewayResult

    DeleteClientVpnEndpointRequest.add_member(:client_vpn_endpoint_id, Shapes::ShapeRef.new(shape: ClientVpnEndpointId, required: true, location_name: "ClientVpnEndpointId"))
    DeleteClientVpnEndpointRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    DeleteClientVpnEndpointRequest.struct_class = Types::DeleteClientVpnEndpointRequest

    DeleteClientVpnEndpointResult.add_member(:status, Shapes::ShapeRef.new(shape: ClientVpnEndpointStatus, location_name: "status"))
    DeleteClientVpnEndpointResult.struct_class = Types::DeleteClientVpnEndpointResult

    DeleteClientVpnRouteRequest.add_member(:client_vpn_endpoint_id, Shapes::ShapeRef.new(shape: ClientVpnEndpointId, required: true, location_name: "ClientVpnEndpointId"))
    DeleteClientVpnRouteRequest.add_member(:target_vpc_subnet_id, Shapes::ShapeRef.new(shape: SubnetId, location_name: "TargetVpcSubnetId"))
    DeleteClientVpnRouteRequest.add_member(:destination_cidr_block, Shapes::ShapeRef.new(shape: String, required: true, location_name: "DestinationCidrBlock"))
    DeleteClientVpnRouteRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    DeleteClientVpnRouteRequest.struct_class = Types::DeleteClientVpnRouteRequest

    DeleteClientVpnRouteResult.add_member(:status, Shapes::ShapeRef.new(shape: ClientVpnRouteStatus, location_name: "status"))
    DeleteClientVpnRouteResult.struct_class = Types::DeleteClientVpnRouteResult

    DeleteCoipCidrRequest.add_member(:cidr, Shapes::ShapeRef.new(shape: String, required: true, location_name: "Cidr"))
    DeleteCoipCidrRequest.add_member(:coip_pool_id, Shapes::ShapeRef.new(shape: Ipv4PoolCoipId, required: true, location_name: "CoipPoolId"))
    DeleteCoipCidrRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    DeleteCoipCidrRequest.struct_class = Types::DeleteCoipCidrRequest

    DeleteCoipCidrResult.add_member(:coip_cidr, Shapes::ShapeRef.new(shape: CoipCidr, location_name: "coipCidr"))
    DeleteCoipCidrResult.struct_class = Types::DeleteCoipCidrResult

    DeleteCoipPoolRequest.add_member(:coip_pool_id, Shapes::ShapeRef.new(shape: Ipv4PoolCoipId, required: true, location_name: "CoipPoolId"))
    DeleteCoipPoolRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    DeleteCoipPoolRequest.struct_class = Types::DeleteCoipPoolRequest

    DeleteCoipPoolResult.add_member(:coip_pool, Shapes::ShapeRef.new(shape: CoipPool, location_name: "coipPool"))
    DeleteCoipPoolResult.struct_class = Types::DeleteCoipPoolResult

    DeleteCustomerGatewayRequest.add_member(:customer_gateway_id, Shapes::ShapeRef.new(shape: CustomerGatewayId, required: true, location_name: "CustomerGatewayId"))
    DeleteCustomerGatewayRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "dryRun"))
    DeleteCustomerGatewayRequest.struct_class = Types::DeleteCustomerGatewayRequest

    DeleteDhcpOptionsRequest.add_member(:dhcp_options_id, Shapes::ShapeRef.new(shape: DhcpOptionsId, required: true, location_name: "DhcpOptionsId"))
    DeleteDhcpOptionsRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "dryRun"))
    DeleteDhcpOptionsRequest.struct_class = Types::DeleteDhcpOptionsRequest

    DeleteEgressOnlyInternetGatewayRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    DeleteEgressOnlyInternetGatewayRequest.add_member(:egress_only_internet_gateway_id, Shapes::ShapeRef.new(shape: EgressOnlyInternetGatewayId, required: true, location_name: "EgressOnlyInternetGatewayId"))
    DeleteEgressOnlyInternetGatewayRequest.struct_class = Types::DeleteEgressOnlyInternetGatewayRequest

    DeleteEgressOnlyInternetGatewayResult.add_member(:return_code, Shapes::ShapeRef.new(shape: Boolean, location_name: "returnCode"))
    DeleteEgressOnlyInternetGatewayResult.struct_class = Types::DeleteEgressOnlyInternetGatewayResult

    DeleteFleetError.add_member(:code, Shapes::ShapeRef.new(shape: DeleteFleetErrorCode, location_name: "code"))
    DeleteFleetError.add_member(:message, Shapes::ShapeRef.new(shape: String, location_name: "message"))
    DeleteFleetError.struct_class = Types::DeleteFleetError

    DeleteFleetErrorItem.add_member(:error, Shapes::ShapeRef.new(shape: DeleteFleetError, location_name: "error"))
    DeleteFleetErrorItem.add_member(:fleet_id, Shapes::ShapeRef.new(shape: FleetId, location_name: "fleetId"))
    DeleteFleetErrorItem.struct_class = Types::DeleteFleetErrorItem

    DeleteFleetErrorSet.member = Shapes::ShapeRef.new(shape: DeleteFleetErrorItem, location_name: "item")

    DeleteFleetSuccessItem.add_member(:current_fleet_state, Shapes::ShapeRef.new(shape: FleetStateCode, location_name: "currentFleetState"))
    DeleteFleetSuccessItem.add_member(:previous_fleet_state, Shapes::ShapeRef.new(shape: FleetStateCode, location_name: "previousFleetState"))
    DeleteFleetSuccessItem.add_member(:fleet_id, Shapes::ShapeRef.new(shape: FleetId, location_name: "fleetId"))
    DeleteFleetSuccessItem.struct_class = Types::DeleteFleetSuccessItem

    DeleteFleetSuccessSet.member = Shapes::ShapeRef.new(shape: DeleteFleetSuccessItem, location_name: "item")

    DeleteFleetsRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    DeleteFleetsRequest.add_member(:fleet_ids, Shapes::ShapeRef.new(shape: FleetIdSet, required: true, location_name: "FleetId"))
    DeleteFleetsRequest.add_member(:terminate_instances, Shapes::ShapeRef.new(shape: Boolean, required: true, location_name: "TerminateInstances"))
    DeleteFleetsRequest.struct_class = Types::DeleteFleetsRequest

    DeleteFleetsResult.add_member(:successful_fleet_deletions, Shapes::ShapeRef.new(shape: DeleteFleetSuccessSet, location_name: "successfulFleetDeletionSet"))
    DeleteFleetsResult.add_member(:unsuccessful_fleet_deletions, Shapes::ShapeRef.new(shape: DeleteFleetErrorSet, location_name: "unsuccessfulFleetDeletionSet"))
    DeleteFleetsResult.struct_class = Types::DeleteFleetsResult

    DeleteFlowLogsRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    DeleteFlowLogsRequest.add_member(:flow_log_ids, Shapes::ShapeRef.new(shape: FlowLogIdList, required: true, location_name: "FlowLogId"))
    DeleteFlowLogsRequest.struct_class = Types::DeleteFlowLogsRequest

    DeleteFlowLogsResult.add_member(:unsuccessful, Shapes::ShapeRef.new(shape: UnsuccessfulItemSet, location_name: "unsuccessful"))
    DeleteFlowLogsResult.struct_class = Types::DeleteFlowLogsResult

    DeleteFpgaImageRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    DeleteFpgaImageRequest.add_member(:fpga_image_id, Shapes::ShapeRef.new(shape: FpgaImageId, required: true, location_name: "FpgaImageId"))
    DeleteFpgaImageRequest.struct_class = Types::DeleteFpgaImageRequest

    DeleteFpgaImageResult.add_member(:return, Shapes::ShapeRef.new(shape: Boolean, location_name: "return"))
    DeleteFpgaImageResult.struct_class = Types::DeleteFpgaImageResult

    DeleteInstanceConnectEndpointRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    DeleteInstanceConnectEndpointRequest.add_member(:instance_connect_endpoint_id, Shapes::ShapeRef.new(shape: InstanceConnectEndpointId, required: true, location_name: "InstanceConnectEndpointId"))
    DeleteInstanceConnectEndpointRequest.struct_class = Types::DeleteInstanceConnectEndpointRequest

    DeleteInstanceConnectEndpointResult.add_member(:instance_connect_endpoint, Shapes::ShapeRef.new(shape: Ec2InstanceConnectEndpoint, location_name: "instanceConnectEndpoint"))
    DeleteInstanceConnectEndpointResult.struct_class = Types::DeleteInstanceConnectEndpointResult

    DeleteInstanceEventWindowRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    DeleteInstanceEventWindowRequest.add_member(:force_delete, Shapes::ShapeRef.new(shape: Boolean, location_name: "ForceDelete"))
    DeleteInstanceEventWindowRequest.add_member(:instance_event_window_id, Shapes::ShapeRef.new(shape: InstanceEventWindowId, required: true, location_name: "InstanceEventWindowId"))
    DeleteInstanceEventWindowRequest.struct_class = Types::DeleteInstanceEventWindowRequest

    DeleteInstanceEventWindowResult.add_member(:instance_event_window_state, Shapes::ShapeRef.new(shape: InstanceEventWindowStateChange, location_name: "instanceEventWindowState"))
    DeleteInstanceEventWindowResult.struct_class = Types::DeleteInstanceEventWindowResult

    DeleteInternetGatewayRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "dryRun"))
    DeleteInternetGatewayRequest.add_member(:internet_gateway_id, Shapes::ShapeRef.new(shape: InternetGatewayId, required: true, location_name: "internetGatewayId"))
    DeleteInternetGatewayRequest.struct_class = Types::DeleteInternetGatewayRequest

    DeleteIpamExternalResourceVerificationTokenRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    DeleteIpamExternalResourceVerificationTokenRequest.add_member(:ipam_external_resource_verification_token_id, Shapes::ShapeRef.new(shape: IpamExternalResourceVerificationTokenId, required: true, location_name: "IpamExternalResourceVerificationTokenId"))
    DeleteIpamExternalResourceVerificationTokenRequest.struct_class = Types::DeleteIpamExternalResourceVerificationTokenRequest

    DeleteIpamExternalResourceVerificationTokenResult.add_member(:ipam_external_resource_verification_token, Shapes::ShapeRef.new(shape: IpamExternalResourceVerificationToken, location_name: "ipamExternalResourceVerificationToken"))
    DeleteIpamExternalResourceVerificationTokenResult.struct_class = Types::DeleteIpamExternalResourceVerificationTokenResult

    DeleteIpamPoolRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    DeleteIpamPoolRequest.add_member(:ipam_pool_id, Shapes::ShapeRef.new(shape: IpamPoolId, required: true, location_name: "IpamPoolId"))
    DeleteIpamPoolRequest.add_member(:cascade, Shapes::ShapeRef.new(shape: Boolean, location_name: "Cascade"))
    DeleteIpamPoolRequest.struct_class = Types::DeleteIpamPoolRequest

    DeleteIpamPoolResult.add_member(:ipam_pool, Shapes::ShapeRef.new(shape: IpamPool, location_name: "ipamPool"))
    DeleteIpamPoolResult.struct_class = Types::DeleteIpamPoolResult

    DeleteIpamRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    DeleteIpamRequest.add_member(:ipam_id, Shapes::ShapeRef.new(shape: IpamId, required: true, location_name: "IpamId"))
    DeleteIpamRequest.add_member(:cascade, Shapes::ShapeRef.new(shape: Boolean, location_name: "Cascade"))
    DeleteIpamRequest.struct_class = Types::DeleteIpamRequest

    DeleteIpamResourceDiscoveryRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    DeleteIpamResourceDiscoveryRequest.add_member(:ipam_resource_discovery_id, Shapes::ShapeRef.new(shape: IpamResourceDiscoveryId, required: true, location_name: "IpamResourceDiscoveryId"))
    DeleteIpamResourceDiscoveryRequest.struct_class = Types::DeleteIpamResourceDiscoveryRequest

    DeleteIpamResourceDiscoveryResult.add_member(:ipam_resource_discovery, Shapes::ShapeRef.new(shape: IpamResourceDiscovery, location_name: "ipamResourceDiscovery"))
    DeleteIpamResourceDiscoveryResult.struct_class = Types::DeleteIpamResourceDiscoveryResult

    DeleteIpamResult.add_member(:ipam, Shapes::ShapeRef.new(shape: Ipam, location_name: "ipam"))
    DeleteIpamResult.struct_class = Types::DeleteIpamResult

    DeleteIpamScopeRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    DeleteIpamScopeRequest.add_member(:ipam_scope_id, Shapes::ShapeRef.new(shape: IpamScopeId, required: true, location_name: "IpamScopeId"))
    DeleteIpamScopeRequest.struct_class = Types::DeleteIpamScopeRequest

    DeleteIpamScopeResult.add_member(:ipam_scope, Shapes::ShapeRef.new(shape: IpamScope, location_name: "ipamScope"))
    DeleteIpamScopeResult.struct_class = Types::DeleteIpamScopeResult

    DeleteKeyPairRequest.add_member(:key_name, Shapes::ShapeRef.new(shape: KeyPairNameWithResolver, location_name: "KeyName"))
    DeleteKeyPairRequest.add_member(:key_pair_id, Shapes::ShapeRef.new(shape: KeyPairId, location_name: "KeyPairId"))
    DeleteKeyPairRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "dryRun"))
    DeleteKeyPairRequest.struct_class = Types::DeleteKeyPairRequest

    DeleteKeyPairResult.add_member(:return, Shapes::ShapeRef.new(shape: Boolean, location_name: "return"))
    DeleteKeyPairResult.add_member(:key_pair_id, Shapes::ShapeRef.new(shape: String, location_name: "keyPairId"))
    DeleteKeyPairResult.struct_class = Types::DeleteKeyPairResult

    DeleteLaunchTemplateRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    DeleteLaunchTemplateRequest.add_member(:launch_template_id, Shapes::ShapeRef.new(shape: LaunchTemplateId, location_name: "LaunchTemplateId"))
    DeleteLaunchTemplateRequest.add_member(:launch_template_name, Shapes::ShapeRef.new(shape: LaunchTemplateName, location_name: "LaunchTemplateName"))
    DeleteLaunchTemplateRequest.struct_class = Types::DeleteLaunchTemplateRequest

    DeleteLaunchTemplateResult.add_member(:launch_template, Shapes::ShapeRef.new(shape: LaunchTemplate, location_name: "launchTemplate"))
    DeleteLaunchTemplateResult.struct_class = Types::DeleteLaunchTemplateResult

    DeleteLaunchTemplateVersionsRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    DeleteLaunchTemplateVersionsRequest.add_member(:launch_template_id, Shapes::ShapeRef.new(shape: LaunchTemplateId, location_name: "LaunchTemplateId"))
    DeleteLaunchTemplateVersionsRequest.add_member(:launch_template_name, Shapes::ShapeRef.new(shape: LaunchTemplateName, location_name: "LaunchTemplateName"))
    DeleteLaunchTemplateVersionsRequest.add_member(:versions, Shapes::ShapeRef.new(shape: VersionStringList, required: true, location_name: "LaunchTemplateVersion"))
    DeleteLaunchTemplateVersionsRequest.struct_class = Types::DeleteLaunchTemplateVersionsRequest

    DeleteLaunchTemplateVersionsResponseErrorItem.add_member(:launch_template_id, Shapes::ShapeRef.new(shape: String, location_name: "launchTemplateId"))
    DeleteLaunchTemplateVersionsResponseErrorItem.add_member(:launch_template_name, Shapes::ShapeRef.new(shape: String, location_name: "launchTemplateName"))
    DeleteLaunchTemplateVersionsResponseErrorItem.add_member(:version_number, Shapes::ShapeRef.new(shape: Long, location_name: "versionNumber"))
    DeleteLaunchTemplateVersionsResponseErrorItem.add_member(:response_error, Shapes::ShapeRef.new(shape: ResponseError, location_name: "responseError"))
    DeleteLaunchTemplateVersionsResponseErrorItem.struct_class = Types::DeleteLaunchTemplateVersionsResponseErrorItem

    DeleteLaunchTemplateVersionsResponseErrorSet.member = Shapes::ShapeRef.new(shape: DeleteLaunchTemplateVersionsResponseErrorItem, location_name: "item")

    DeleteLaunchTemplateVersionsResponseSuccessItem.add_member(:launch_template_id, Shapes::ShapeRef.new(shape: String, location_name: "launchTemplateId"))
    DeleteLaunchTemplateVersionsResponseSuccessItem.add_member(:launch_template_name, Shapes::ShapeRef.new(shape: String, location_name: "launchTemplateName"))
    DeleteLaunchTemplateVersionsResponseSuccessItem.add_member(:version_number, Shapes::ShapeRef.new(shape: Long, location_name: "versionNumber"))
    DeleteLaunchTemplateVersionsResponseSuccessItem.struct_class = Types::DeleteLaunchTemplateVersionsResponseSuccessItem

    DeleteLaunchTemplateVersionsResponseSuccessSet.member = Shapes::ShapeRef.new(shape: DeleteLaunchTemplateVersionsResponseSuccessItem, location_name: "item")

    DeleteLaunchTemplateVersionsResult.add_member(:successfully_deleted_launch_template_versions, Shapes::ShapeRef.new(shape: DeleteLaunchTemplateVersionsResponseSuccessSet, location_name: "successfullyDeletedLaunchTemplateVersionSet"))
    DeleteLaunchTemplateVersionsResult.add_member(:unsuccessfully_deleted_launch_template_versions, Shapes::ShapeRef.new(shape: DeleteLaunchTemplateVersionsResponseErrorSet, location_name: "unsuccessfullyDeletedLaunchTemplateVersionSet"))
    DeleteLaunchTemplateVersionsResult.struct_class = Types::DeleteLaunchTemplateVersionsResult

    DeleteLocalGatewayRouteRequest.add_member(:destination_cidr_block, Shapes::ShapeRef.new(shape: String, location_name: "DestinationCidrBlock"))
    DeleteLocalGatewayRouteRequest.add_member(:local_gateway_route_table_id, Shapes::ShapeRef.new(shape: LocalGatewayRoutetableId, required: true, location_name: "LocalGatewayRouteTableId"))
    DeleteLocalGatewayRouteRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    DeleteLocalGatewayRouteRequest.add_member(:destination_prefix_list_id, Shapes::ShapeRef.new(shape: PrefixListResourceId, location_name: "DestinationPrefixListId"))
    DeleteLocalGatewayRouteRequest.struct_class = Types::DeleteLocalGatewayRouteRequest

    DeleteLocalGatewayRouteResult.add_member(:route, Shapes::ShapeRef.new(shape: LocalGatewayRoute, location_name: "route"))
    DeleteLocalGatewayRouteResult.struct_class = Types::DeleteLocalGatewayRouteResult

    DeleteLocalGatewayRouteTableRequest.add_member(:local_gateway_route_table_id, Shapes::ShapeRef.new(shape: LocalGatewayRoutetableId, required: true, location_name: "LocalGatewayRouteTableId"))
    DeleteLocalGatewayRouteTableRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    DeleteLocalGatewayRouteTableRequest.struct_class = Types::DeleteLocalGatewayRouteTableRequest

    DeleteLocalGatewayRouteTableResult.add_member(:local_gateway_route_table, Shapes::ShapeRef.new(shape: LocalGatewayRouteTable, location_name: "localGatewayRouteTable"))
    DeleteLocalGatewayRouteTableResult.struct_class = Types::DeleteLocalGatewayRouteTableResult

    DeleteLocalGatewayRouteTableVirtualInterfaceGroupAssociationRequest.add_member(:local_gateway_route_table_virtual_interface_group_association_id, Shapes::ShapeRef.new(shape: LocalGatewayRouteTableVirtualInterfaceGroupAssociationId, required: true, location_name: "LocalGatewayRouteTableVirtualInterfaceGroupAssociationId"))
    DeleteLocalGatewayRouteTableVirtualInterfaceGroupAssociationRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    DeleteLocalGatewayRouteTableVirtualInterfaceGroupAssociationRequest.struct_class = Types::DeleteLocalGatewayRouteTableVirtualInterfaceGroupAssociationRequest

    DeleteLocalGatewayRouteTableVirtualInterfaceGroupAssociationResult.add_member(:local_gateway_route_table_virtual_interface_group_association, Shapes::ShapeRef.new(shape: LocalGatewayRouteTableVirtualInterfaceGroupAssociation, location_name: "localGatewayRouteTableVirtualInterfaceGroupAssociation"))
    DeleteLocalGatewayRouteTableVirtualInterfaceGroupAssociationResult.struct_class = Types::DeleteLocalGatewayRouteTableVirtualInterfaceGroupAssociationResult

    DeleteLocalGatewayRouteTableVpcAssociationRequest.add_member(:local_gateway_route_table_vpc_association_id, Shapes::ShapeRef.new(shape: LocalGatewayRouteTableVpcAssociationId, required: true, location_name: "LocalGatewayRouteTableVpcAssociationId"))
    DeleteLocalGatewayRouteTableVpcAssociationRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    DeleteLocalGatewayRouteTableVpcAssociationRequest.struct_class = Types::DeleteLocalGatewayRouteTableVpcAssociationRequest

    DeleteLocalGatewayRouteTableVpcAssociationResult.add_member(:local_gateway_route_table_vpc_association, Shapes::ShapeRef.new(shape: LocalGatewayRouteTableVpcAssociation, location_name: "localGatewayRouteTableVpcAssociation"))
    DeleteLocalGatewayRouteTableVpcAssociationResult.struct_class = Types::DeleteLocalGatewayRouteTableVpcAssociationResult

    DeleteManagedPrefixListRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    DeleteManagedPrefixListRequest.add_member(:prefix_list_id, Shapes::ShapeRef.new(shape: PrefixListResourceId, required: true, location_name: "PrefixListId"))
    DeleteManagedPrefixListRequest.struct_class = Types::DeleteManagedPrefixListRequest

    DeleteManagedPrefixListResult.add_member(:prefix_list, Shapes::ShapeRef.new(shape: ManagedPrefixList, location_name: "prefixList"))
    DeleteManagedPrefixListResult.struct_class = Types::DeleteManagedPrefixListResult

    DeleteNatGatewayRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    DeleteNatGatewayRequest.add_member(:nat_gateway_id, Shapes::ShapeRef.new(shape: NatGatewayId, required: true, location_name: "NatGatewayId"))
    DeleteNatGatewayRequest.struct_class = Types::DeleteNatGatewayRequest

    DeleteNatGatewayResult.add_member(:nat_gateway_id, Shapes::ShapeRef.new(shape: String, location_name: "natGatewayId"))
    DeleteNatGatewayResult.struct_class = Types::DeleteNatGatewayResult

    DeleteNetworkAclEntryRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "dryRun"))
    DeleteNetworkAclEntryRequest.add_member(:network_acl_id, Shapes::ShapeRef.new(shape: NetworkAclId, required: true, location_name: "networkAclId"))
    DeleteNetworkAclEntryRequest.add_member(:rule_number, Shapes::ShapeRef.new(shape: Integer, required: true, location_name: "ruleNumber"))
    DeleteNetworkAclEntryRequest.add_member(:egress, Shapes::ShapeRef.new(shape: Boolean, required: true, location_name: "egress"))
    DeleteNetworkAclEntryRequest.struct_class = Types::DeleteNetworkAclEntryRequest

    DeleteNetworkAclRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "dryRun"))
    DeleteNetworkAclRequest.add_member(:network_acl_id, Shapes::ShapeRef.new(shape: NetworkAclId, required: true, location_name: "networkAclId"))
    DeleteNetworkAclRequest.struct_class = Types::DeleteNetworkAclRequest

    DeleteNetworkInsightsAccessScopeAnalysisRequest.add_member(:network_insights_access_scope_analysis_id, Shapes::ShapeRef.new(shape: NetworkInsightsAccessScopeAnalysisId, required: true, location_name: "NetworkInsightsAccessScopeAnalysisId"))
    DeleteNetworkInsightsAccessScopeAnalysisRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    DeleteNetworkInsightsAccessScopeAnalysisRequest.struct_class = Types::DeleteNetworkInsightsAccessScopeAnalysisRequest

    DeleteNetworkInsightsAccessScopeAnalysisResult.add_member(:network_insights_access_scope_analysis_id, Shapes::ShapeRef.new(shape: NetworkInsightsAccessScopeAnalysisId, location_name: "networkInsightsAccessScopeAnalysisId"))
    DeleteNetworkInsightsAccessScopeAnalysisResult.struct_class = Types::DeleteNetworkInsightsAccessScopeAnalysisResult

    DeleteNetworkInsightsAccessScopeRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    DeleteNetworkInsightsAccessScopeRequest.add_member(:network_insights_access_scope_id, Shapes::ShapeRef.new(shape: NetworkInsightsAccessScopeId, required: true, location_name: "NetworkInsightsAccessScopeId"))
    DeleteNetworkInsightsAccessScopeRequest.struct_class = Types::DeleteNetworkInsightsAccessScopeRequest

    DeleteNetworkInsightsAccessScopeResult.add_member(:network_insights_access_scope_id, Shapes::ShapeRef.new(shape: NetworkInsightsAccessScopeId, location_name: "networkInsightsAccessScopeId"))
    DeleteNetworkInsightsAccessScopeResult.struct_class = Types::DeleteNetworkInsightsAccessScopeResult

    DeleteNetworkInsightsAnalysisRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    DeleteNetworkInsightsAnalysisRequest.add_member(:network_insights_analysis_id, Shapes::ShapeRef.new(shape: NetworkInsightsAnalysisId, required: true, location_name: "NetworkInsightsAnalysisId"))
    DeleteNetworkInsightsAnalysisRequest.struct_class = Types::DeleteNetworkInsightsAnalysisRequest

    DeleteNetworkInsightsAnalysisResult.add_member(:network_insights_analysis_id, Shapes::ShapeRef.new(shape: NetworkInsightsAnalysisId, location_name: "networkInsightsAnalysisId"))
    DeleteNetworkInsightsAnalysisResult.struct_class = Types::DeleteNetworkInsightsAnalysisResult

    DeleteNetworkInsightsPathRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    DeleteNetworkInsightsPathRequest.add_member(:network_insights_path_id, Shapes::ShapeRef.new(shape: NetworkInsightsPathId, required: true, location_name: "NetworkInsightsPathId"))
    DeleteNetworkInsightsPathRequest.struct_class = Types::DeleteNetworkInsightsPathRequest

    DeleteNetworkInsightsPathResult.add_member(:network_insights_path_id, Shapes::ShapeRef.new(shape: NetworkInsightsPathId, location_name: "networkInsightsPathId"))
    DeleteNetworkInsightsPathResult.struct_class = Types::DeleteNetworkInsightsPathResult

    DeleteNetworkInterfacePermissionRequest.add_member(:network_interface_permission_id, Shapes::ShapeRef.new(shape: NetworkInterfacePermissionId, required: true, location_name: "NetworkInterfacePermissionId"))
    DeleteNetworkInterfacePermissionRequest.add_member(:force, Shapes::ShapeRef.new(shape: Boolean, location_name: "Force"))
    DeleteNetworkInterfacePermissionRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    DeleteNetworkInterfacePermissionRequest.struct_class = Types::DeleteNetworkInterfacePermissionRequest

    DeleteNetworkInterfacePermissionResult.add_member(:return, Shapes::ShapeRef.new(shape: Boolean, location_name: "return"))
    DeleteNetworkInterfacePermissionResult.struct_class = Types::DeleteNetworkInterfacePermissionResult

    DeleteNetworkInterfaceRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "dryRun"))
    DeleteNetworkInterfaceRequest.add_member(:network_interface_id, Shapes::ShapeRef.new(shape: NetworkInterfaceId, required: true, location_name: "networkInterfaceId"))
    DeleteNetworkInterfaceRequest.struct_class = Types::DeleteNetworkInterfaceRequest

    DeletePlacementGroupRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "dryRun"))
    DeletePlacementGroupRequest.add_member(:group_name, Shapes::ShapeRef.new(shape: PlacementGroupName, required: true, location_name: "groupName"))
    DeletePlacementGroupRequest.struct_class = Types::DeletePlacementGroupRequest

    DeletePublicIpv4PoolRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    DeletePublicIpv4PoolRequest.add_member(:pool_id, Shapes::ShapeRef.new(shape: Ipv4PoolEc2Id, required: true, location_name: "PoolId"))
    DeletePublicIpv4PoolRequest.add_member(:network_border_group, Shapes::ShapeRef.new(shape: String, location_name: "NetworkBorderGroup"))
    DeletePublicIpv4PoolRequest.struct_class = Types::DeletePublicIpv4PoolRequest

    DeletePublicIpv4PoolResult.add_member(:return_value, Shapes::ShapeRef.new(shape: Boolean, location_name: "returnValue"))
    DeletePublicIpv4PoolResult.struct_class = Types::DeletePublicIpv4PoolResult

    DeleteQueuedReservedInstancesError.add_member(:code, Shapes::ShapeRef.new(shape: DeleteQueuedReservedInstancesErrorCode, location_name: "code"))
    DeleteQueuedReservedInstancesError.add_member(:message, Shapes::ShapeRef.new(shape: String, location_name: "message"))
    DeleteQueuedReservedInstancesError.struct_class = Types::DeleteQueuedReservedInstancesError

    DeleteQueuedReservedInstancesIdList.member = Shapes::ShapeRef.new(shape: ReservationId, location_name: "item")

    DeleteQueuedReservedInstancesRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    DeleteQueuedReservedInstancesRequest.add_member(:reserved_instances_ids, Shapes::ShapeRef.new(shape: DeleteQueuedReservedInstancesIdList, required: true, location_name: "ReservedInstancesId"))
    DeleteQueuedReservedInstancesRequest.struct_class = Types::DeleteQueuedReservedInstancesRequest

    DeleteQueuedReservedInstancesResult.add_member(:successful_queued_purchase_deletions, Shapes::ShapeRef.new(shape: SuccessfulQueuedPurchaseDeletionSet, location_name: "successfulQueuedPurchaseDeletionSet"))
    DeleteQueuedReservedInstancesResult.add_member(:failed_queued_purchase_deletions, Shapes::ShapeRef.new(shape: FailedQueuedPurchaseDeletionSet, location_name: "failedQueuedPurchaseDeletionSet"))
    DeleteQueuedReservedInstancesResult.struct_class = Types::DeleteQueuedReservedInstancesResult

    DeleteRouteRequest.add_member(:destination_prefix_list_id, Shapes::ShapeRef.new(shape: PrefixListResourceId, location_name: "DestinationPrefixListId"))
    DeleteRouteRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "dryRun"))
    DeleteRouteRequest.add_member(:route_table_id, Shapes::ShapeRef.new(shape: RouteTableId, required: true, location_name: "routeTableId"))
    DeleteRouteRequest.add_member(:destination_cidr_block, Shapes::ShapeRef.new(shape: String, location_name: "destinationCidrBlock"))
    DeleteRouteRequest.add_member(:destination_ipv_6_cidr_block, Shapes::ShapeRef.new(shape: String, location_name: "destinationIpv6CidrBlock"))
    DeleteRouteRequest.struct_class = Types::DeleteRouteRequest

    DeleteRouteTableRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "dryRun"))
    DeleteRouteTableRequest.add_member(:route_table_id, Shapes::ShapeRef.new(shape: RouteTableId, required: true, location_name: "routeTableId"))
    DeleteRouteTableRequest.struct_class = Types::DeleteRouteTableRequest

    DeleteSecurityGroupRequest.add_member(:group_id, Shapes::ShapeRef.new(shape: SecurityGroupId, location_name: "GroupId"))
    DeleteSecurityGroupRequest.add_member(:group_name, Shapes::ShapeRef.new(shape: SecurityGroupName, location_name: "GroupName"))
    DeleteSecurityGroupRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "dryRun"))
    DeleteSecurityGroupRequest.struct_class = Types::DeleteSecurityGroupRequest

    DeleteSecurityGroupResult.add_member(:return, Shapes::ShapeRef.new(shape: Boolean, location_name: "return"))
    DeleteSecurityGroupResult.add_member(:group_id, Shapes::ShapeRef.new(shape: SecurityGroupId, location_name: "groupId"))
    DeleteSecurityGroupResult.struct_class = Types::DeleteSecurityGroupResult

    DeleteSnapshotRequest.add_member(:snapshot_id, Shapes::ShapeRef.new(shape: SnapshotId, required: true, location_name: "SnapshotId"))
    DeleteSnapshotRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "dryRun"))
    DeleteSnapshotRequest.struct_class = Types::DeleteSnapshotRequest

    DeleteSpotDatafeedSubscriptionRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "dryRun"))
    DeleteSpotDatafeedSubscriptionRequest.struct_class = Types::DeleteSpotDatafeedSubscriptionRequest

    DeleteSubnetCidrReservationRequest.add_member(:subnet_cidr_reservation_id, Shapes::ShapeRef.new(shape: SubnetCidrReservationId, required: true, location_name: "SubnetCidrReservationId"))
    DeleteSubnetCidrReservationRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    DeleteSubnetCidrReservationRequest.struct_class = Types::DeleteSubnetCidrReservationRequest

    DeleteSubnetCidrReservationResult.add_member(:deleted_subnet_cidr_reservation, Shapes::ShapeRef.new(shape: SubnetCidrReservation, location_name: "deletedSubnetCidrReservation"))
    DeleteSubnetCidrReservationResult.struct_class = Types::DeleteSubnetCidrReservationResult

    DeleteSubnetRequest.add_member(:subnet_id, Shapes::ShapeRef.new(shape: SubnetId, required: true, location_name: "SubnetId"))
    DeleteSubnetRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "dryRun"))
    DeleteSubnetRequest.struct_class = Types::DeleteSubnetRequest

    DeleteTagsRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "dryRun"))
    DeleteTagsRequest.add_member(:resources, Shapes::ShapeRef.new(shape: ResourceIdList, required: true, location_name: "resourceId"))
    DeleteTagsRequest.add_member(:tags, Shapes::ShapeRef.new(shape: TagList, location_name: "tag"))
    DeleteTagsRequest.struct_class = Types::DeleteTagsRequest

    DeleteTrafficMirrorFilterRequest.add_member(:traffic_mirror_filter_id, Shapes::ShapeRef.new(shape: TrafficMirrorFilterId, required: true, location_name: "TrafficMirrorFilterId"))
    DeleteTrafficMirrorFilterRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    DeleteTrafficMirrorFilterRequest.struct_class = Types::DeleteTrafficMirrorFilterRequest

    DeleteTrafficMirrorFilterResult.add_member(:traffic_mirror_filter_id, Shapes::ShapeRef.new(shape: String, location_name: "trafficMirrorFilterId"))
    DeleteTrafficMirrorFilterResult.struct_class = Types::DeleteTrafficMirrorFilterResult

    DeleteTrafficMirrorFilterRuleRequest.add_member(:traffic_mirror_filter_rule_id, Shapes::ShapeRef.new(shape: TrafficMirrorFilterRuleIdWithResolver, required: true, location_name: "TrafficMirrorFilterRuleId"))
    DeleteTrafficMirrorFilterRuleRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    DeleteTrafficMirrorFilterRuleRequest.struct_class = Types::DeleteTrafficMirrorFilterRuleRequest

    DeleteTrafficMirrorFilterRuleResult.add_member(:traffic_mirror_filter_rule_id, Shapes::ShapeRef.new(shape: String, location_name: "trafficMirrorFilterRuleId"))
    DeleteTrafficMirrorFilterRuleResult.struct_class = Types::DeleteTrafficMirrorFilterRuleResult

    DeleteTrafficMirrorSessionRequest.add_member(:traffic_mirror_session_id, Shapes::ShapeRef.new(shape: TrafficMirrorSessionId, required: true, location_name: "TrafficMirrorSessionId"))
    DeleteTrafficMirrorSessionRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    DeleteTrafficMirrorSessionRequest.struct_class = Types::DeleteTrafficMirrorSessionRequest

    DeleteTrafficMirrorSessionResult.add_member(:traffic_mirror_session_id, Shapes::ShapeRef.new(shape: String, location_name: "trafficMirrorSessionId"))
    DeleteTrafficMirrorSessionResult.struct_class = Types::DeleteTrafficMirrorSessionResult

    DeleteTrafficMirrorTargetRequest.add_member(:traffic_mirror_target_id, Shapes::ShapeRef.new(shape: TrafficMirrorTargetId, required: true, location_name: "TrafficMirrorTargetId"))
    DeleteTrafficMirrorTargetRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    DeleteTrafficMirrorTargetRequest.struct_class = Types::DeleteTrafficMirrorTargetRequest

    DeleteTrafficMirrorTargetResult.add_member(:traffic_mirror_target_id, Shapes::ShapeRef.new(shape: String, location_name: "trafficMirrorTargetId"))
    DeleteTrafficMirrorTargetResult.struct_class = Types::DeleteTrafficMirrorTargetResult

    DeleteTransitGatewayConnectPeerRequest.add_member(:transit_gateway_connect_peer_id, Shapes::ShapeRef.new(shape: TransitGatewayConnectPeerId, required: true, location_name: "TransitGatewayConnectPeerId"))
    DeleteTransitGatewayConnectPeerRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    DeleteTransitGatewayConnectPeerRequest.struct_class = Types::DeleteTransitGatewayConnectPeerRequest

    DeleteTransitGatewayConnectPeerResult.add_member(:transit_gateway_connect_peer, Shapes::ShapeRef.new(shape: TransitGatewayConnectPeer, location_name: "transitGatewayConnectPeer"))
    DeleteTransitGatewayConnectPeerResult.struct_class = Types::DeleteTransitGatewayConnectPeerResult

    DeleteTransitGatewayConnectRequest.add_member(:transit_gateway_attachment_id, Shapes::ShapeRef.new(shape: TransitGatewayAttachmentId, required: true, location_name: "TransitGatewayAttachmentId"))
    DeleteTransitGatewayConnectRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    DeleteTransitGatewayConnectRequest.struct_class = Types::DeleteTransitGatewayConnectRequest

    DeleteTransitGatewayConnectResult.add_member(:transit_gateway_connect, Shapes::ShapeRef.new(shape: TransitGatewayConnect, location_name: "transitGatewayConnect"))
    DeleteTransitGatewayConnectResult.struct_class = Types::DeleteTransitGatewayConnectResult

    DeleteTransitGatewayMulticastDomainRequest.add_member(:transit_gateway_multicast_domain_id, Shapes::ShapeRef.new(shape: TransitGatewayMulticastDomainId, required: true, location_name: "TransitGatewayMulticastDomainId"))
    DeleteTransitGatewayMulticastDomainRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    DeleteTransitGatewayMulticastDomainRequest.struct_class = Types::DeleteTransitGatewayMulticastDomainRequest

    DeleteTransitGatewayMulticastDomainResult.add_member(:transit_gateway_multicast_domain, Shapes::ShapeRef.new(shape: TransitGatewayMulticastDomain, location_name: "transitGatewayMulticastDomain"))
    DeleteTransitGatewayMulticastDomainResult.struct_class = Types::DeleteTransitGatewayMulticastDomainResult

    DeleteTransitGatewayPeeringAttachmentRequest.add_member(:transit_gateway_attachment_id, Shapes::ShapeRef.new(shape: TransitGatewayAttachmentId, required: true, location_name: "TransitGatewayAttachmentId"))
    DeleteTransitGatewayPeeringAttachmentRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    DeleteTransitGatewayPeeringAttachmentRequest.struct_class = Types::DeleteTransitGatewayPeeringAttachmentRequest

    DeleteTransitGatewayPeeringAttachmentResult.add_member(:transit_gateway_peering_attachment, Shapes::ShapeRef.new(shape: TransitGatewayPeeringAttachment, location_name: "transitGatewayPeeringAttachment"))
    DeleteTransitGatewayPeeringAttachmentResult.struct_class = Types::DeleteTransitGatewayPeeringAttachmentResult

    DeleteTransitGatewayPolicyTableRequest.add_member(:transit_gateway_policy_table_id, Shapes::ShapeRef.new(shape: TransitGatewayPolicyTableId, required: true, location_name: "TransitGatewayPolicyTableId"))
    DeleteTransitGatewayPolicyTableRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    DeleteTransitGatewayPolicyTableRequest.struct_class = Types::DeleteTransitGatewayPolicyTableRequest

    DeleteTransitGatewayPolicyTableResult.add_member(:transit_gateway_policy_table, Shapes::ShapeRef.new(shape: TransitGatewayPolicyTable, location_name: "transitGatewayPolicyTable"))
    DeleteTransitGatewayPolicyTableResult.struct_class = Types::DeleteTransitGatewayPolicyTableResult

    DeleteTransitGatewayPrefixListReferenceRequest.add_member(:transit_gateway_route_table_id, Shapes::ShapeRef.new(shape: TransitGatewayRouteTableId, required: true, location_name: "TransitGatewayRouteTableId"))
    DeleteTransitGatewayPrefixListReferenceRequest.add_member(:prefix_list_id, Shapes::ShapeRef.new(shape: PrefixListResourceId, required: true, location_name: "PrefixListId"))
    DeleteTransitGatewayPrefixListReferenceRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    DeleteTransitGatewayPrefixListReferenceRequest.struct_class = Types::DeleteTransitGatewayPrefixListReferenceRequest

    DeleteTransitGatewayPrefixListReferenceResult.add_member(:transit_gateway_prefix_list_reference, Shapes::ShapeRef.new(shape: TransitGatewayPrefixListReference, location_name: "transitGatewayPrefixListReference"))
    DeleteTransitGatewayPrefixListReferenceResult.struct_class = Types::DeleteTransitGatewayPrefixListReferenceResult

    DeleteTransitGatewayRequest.add_member(:transit_gateway_id, Shapes::ShapeRef.new(shape: TransitGatewayId, required: true, location_name: "TransitGatewayId"))
    DeleteTransitGatewayRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    DeleteTransitGatewayRequest.struct_class = Types::DeleteTransitGatewayRequest

    DeleteTransitGatewayResult.add_member(:transit_gateway, Shapes::ShapeRef.new(shape: TransitGateway, location_name: "transitGateway"))
    DeleteTransitGatewayResult.struct_class = Types::DeleteTransitGatewayResult

    DeleteTransitGatewayRouteRequest.add_member(:transit_gateway_route_table_id, Shapes::ShapeRef.new(shape: TransitGatewayRouteTableId, required: true, location_name: "TransitGatewayRouteTableId"))
    DeleteTransitGatewayRouteRequest.add_member(:destination_cidr_block, Shapes::ShapeRef.new(shape: String, required: true, location_name: "DestinationCidrBlock"))
    DeleteTransitGatewayRouteRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    DeleteTransitGatewayRouteRequest.struct_class = Types::DeleteTransitGatewayRouteRequest

    DeleteTransitGatewayRouteResult.add_member(:route, Shapes::ShapeRef.new(shape: TransitGatewayRoute, location_name: "route"))
    DeleteTransitGatewayRouteResult.struct_class = Types::DeleteTransitGatewayRouteResult

    DeleteTransitGatewayRouteTableAnnouncementRequest.add_member(:transit_gateway_route_table_announcement_id, Shapes::ShapeRef.new(shape: TransitGatewayRouteTableAnnouncementId, required: true, location_name: "TransitGatewayRouteTableAnnouncementId"))
    DeleteTransitGatewayRouteTableAnnouncementRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    DeleteTransitGatewayRouteTableAnnouncementRequest.struct_class = Types::DeleteTransitGatewayRouteTableAnnouncementRequest

    DeleteTransitGatewayRouteTableAnnouncementResult.add_member(:transit_gateway_route_table_announcement, Shapes::ShapeRef.new(shape: TransitGatewayRouteTableAnnouncement, location_name: "transitGatewayRouteTableAnnouncement"))
    DeleteTransitGatewayRouteTableAnnouncementResult.struct_class = Types::DeleteTransitGatewayRouteTableAnnouncementResult

    DeleteTransitGatewayRouteTableRequest.add_member(:transit_gateway_route_table_id, Shapes::ShapeRef.new(shape: TransitGatewayRouteTableId, required: true, location_name: "TransitGatewayRouteTableId"))
    DeleteTransitGatewayRouteTableRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    DeleteTransitGatewayRouteTableRequest.struct_class = Types::DeleteTransitGatewayRouteTableRequest

    DeleteTransitGatewayRouteTableResult.add_member(:transit_gateway_route_table, Shapes::ShapeRef.new(shape: TransitGatewayRouteTable, location_name: "transitGatewayRouteTable"))
    DeleteTransitGatewayRouteTableResult.struct_class = Types::DeleteTransitGatewayRouteTableResult

    DeleteTransitGatewayVpcAttachmentRequest.add_member(:transit_gateway_attachment_id, Shapes::ShapeRef.new(shape: TransitGatewayAttachmentId, required: true, location_name: "TransitGatewayAttachmentId"))
    DeleteTransitGatewayVpcAttachmentRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    DeleteTransitGatewayVpcAttachmentRequest.struct_class = Types::DeleteTransitGatewayVpcAttachmentRequest

    DeleteTransitGatewayVpcAttachmentResult.add_member(:transit_gateway_vpc_attachment, Shapes::ShapeRef.new(shape: TransitGatewayVpcAttachment, location_name: "transitGatewayVpcAttachment"))
    DeleteTransitGatewayVpcAttachmentResult.struct_class = Types::DeleteTransitGatewayVpcAttachmentResult

    DeleteVerifiedAccessEndpointRequest.add_member(:verified_access_endpoint_id, Shapes::ShapeRef.new(shape: VerifiedAccessEndpointId, required: true, location_name: "VerifiedAccessEndpointId"))
    DeleteVerifiedAccessEndpointRequest.add_member(:client_token, Shapes::ShapeRef.new(shape: String, location_name: "ClientToken", metadata: {"idempotencyToken"=>true}))
    DeleteVerifiedAccessEndpointRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    DeleteVerifiedAccessEndpointRequest.struct_class = Types::DeleteVerifiedAccessEndpointRequest

    DeleteVerifiedAccessEndpointResult.add_member(:verified_access_endpoint, Shapes::ShapeRef.new(shape: VerifiedAccessEndpoint, location_name: "verifiedAccessEndpoint"))
    DeleteVerifiedAccessEndpointResult.struct_class = Types::DeleteVerifiedAccessEndpointResult

    DeleteVerifiedAccessGroupRequest.add_member(:verified_access_group_id, Shapes::ShapeRef.new(shape: VerifiedAccessGroupId, required: true, location_name: "VerifiedAccessGroupId"))
    DeleteVerifiedAccessGroupRequest.add_member(:client_token, Shapes::ShapeRef.new(shape: String, location_name: "ClientToken", metadata: {"idempotencyToken"=>true}))
    DeleteVerifiedAccessGroupRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    DeleteVerifiedAccessGroupRequest.struct_class = Types::DeleteVerifiedAccessGroupRequest

    DeleteVerifiedAccessGroupResult.add_member(:verified_access_group, Shapes::ShapeRef.new(shape: VerifiedAccessGroup, location_name: "verifiedAccessGroup"))
    DeleteVerifiedAccessGroupResult.struct_class = Types::DeleteVerifiedAccessGroupResult

    DeleteVerifiedAccessInstanceRequest.add_member(:verified_access_instance_id, Shapes::ShapeRef.new(shape: VerifiedAccessInstanceId, required: true, location_name: "VerifiedAccessInstanceId"))
    DeleteVerifiedAccessInstanceRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    DeleteVerifiedAccessInstanceRequest.add_member(:client_token, Shapes::ShapeRef.new(shape: String, location_name: "ClientToken", metadata: {"idempotencyToken"=>true}))
    DeleteVerifiedAccessInstanceRequest.struct_class = Types::DeleteVerifiedAccessInstanceRequest

    DeleteVerifiedAccessInstanceResult.add_member(:verified_access_instance, Shapes::ShapeRef.new(shape: VerifiedAccessInstance, location_name: "verifiedAccessInstance"))
    DeleteVerifiedAccessInstanceResult.struct_class = Types::DeleteVerifiedAccessInstanceResult

    DeleteVerifiedAccessTrustProviderRequest.add_member(:verified_access_trust_provider_id, Shapes::ShapeRef.new(shape: VerifiedAccessTrustProviderId, required: true, location_name: "VerifiedAccessTrustProviderId"))
    DeleteVerifiedAccessTrustProviderRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    DeleteVerifiedAccessTrustProviderRequest.add_member(:client_token, Shapes::ShapeRef.new(shape: String, location_name: "ClientToken", metadata: {"idempotencyToken"=>true}))
    DeleteVerifiedAccessTrustProviderRequest.struct_class = Types::DeleteVerifiedAccessTrustProviderRequest

    DeleteVerifiedAccessTrustProviderResult.add_member(:verified_access_trust_provider, Shapes::ShapeRef.new(shape: VerifiedAccessTrustProvider, location_name: "verifiedAccessTrustProvider"))
    DeleteVerifiedAccessTrustProviderResult.struct_class = Types::DeleteVerifiedAccessTrustProviderResult

    DeleteVolumeRequest.add_member(:volume_id, Shapes::ShapeRef.new(shape: VolumeId, required: true, location_name: "VolumeId"))
    DeleteVolumeRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "dryRun"))
    DeleteVolumeRequest.struct_class = Types::DeleteVolumeRequest

    DeleteVpcBlockPublicAccessExclusionRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    DeleteVpcBlockPublicAccessExclusionRequest.add_member(:exclusion_id, Shapes::ShapeRef.new(shape: VpcBlockPublicAccessExclusionId, required: true, location_name: "ExclusionId"))
    DeleteVpcBlockPublicAccessExclusionRequest.struct_class = Types::DeleteVpcBlockPublicAccessExclusionRequest

    DeleteVpcBlockPublicAccessExclusionResult.add_member(:vpc_block_public_access_exclusion, Shapes::ShapeRef.new(shape: VpcBlockPublicAccessExclusion, location_name: "vpcBlockPublicAccessExclusion"))
    DeleteVpcBlockPublicAccessExclusionResult.struct_class = Types::DeleteVpcBlockPublicAccessExclusionResult

    DeleteVpcEndpointConnectionNotificationsRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    DeleteVpcEndpointConnectionNotificationsRequest.add_member(:connection_notification_ids, Shapes::ShapeRef.new(shape: ConnectionNotificationIdsList, required: true, location_name: "ConnectionNotificationId"))
    DeleteVpcEndpointConnectionNotificationsRequest.struct_class = Types::DeleteVpcEndpointConnectionNotificationsRequest

    DeleteVpcEndpointConnectionNotificationsResult.add_member(:unsuccessful, Shapes::ShapeRef.new(shape: UnsuccessfulItemSet, location_name: "unsuccessful"))
    DeleteVpcEndpointConnectionNotificationsResult.struct_class = Types::DeleteVpcEndpointConnectionNotificationsResult

    DeleteVpcEndpointServiceConfigurationsRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    DeleteVpcEndpointServiceConfigurationsRequest.add_member(:service_ids, Shapes::ShapeRef.new(shape: VpcEndpointServiceIdList, required: true, location_name: "ServiceId"))
    DeleteVpcEndpointServiceConfigurationsRequest.struct_class = Types::DeleteVpcEndpointServiceConfigurationsRequest

    DeleteVpcEndpointServiceConfigurationsResult.add_member(:unsuccessful, Shapes::ShapeRef.new(shape: UnsuccessfulItemSet, location_name: "unsuccessful"))
    DeleteVpcEndpointServiceConfigurationsResult.struct_class = Types::DeleteVpcEndpointServiceConfigurationsResult

    DeleteVpcEndpointsRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    DeleteVpcEndpointsRequest.add_member(:vpc_endpoint_ids, Shapes::ShapeRef.new(shape: VpcEndpointIdList, required: true, location_name: "VpcEndpointId"))
    DeleteVpcEndpointsRequest.struct_class = Types::DeleteVpcEndpointsRequest

    DeleteVpcEndpointsResult.add_member(:unsuccessful, Shapes::ShapeRef.new(shape: UnsuccessfulItemSet, location_name: "unsuccessful"))
    DeleteVpcEndpointsResult.struct_class = Types::DeleteVpcEndpointsResult

    DeleteVpcPeeringConnectionRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "dryRun"))
    DeleteVpcPeeringConnectionRequest.add_member(:vpc_peering_connection_id, Shapes::ShapeRef.new(shape: VpcPeeringConnectionId, required: true, location_name: "vpcPeeringConnectionId"))
    DeleteVpcPeeringConnectionRequest.struct_class = Types::DeleteVpcPeeringConnectionRequest

    DeleteVpcPeeringConnectionResult.add_member(:return, Shapes::ShapeRef.new(shape: Boolean, location_name: "return"))
    DeleteVpcPeeringConnectionResult.struct_class = Types::DeleteVpcPeeringConnectionResult

    DeleteVpcRequest.add_member(:vpc_id, Shapes::ShapeRef.new(shape: VpcId, required: true, location_name: "VpcId"))
    DeleteVpcRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "dryRun"))
    DeleteVpcRequest.struct_class = Types::DeleteVpcRequest

    DeleteVpnConnectionRequest.add_member(:vpn_connection_id, Shapes::ShapeRef.new(shape: VpnConnectionId, required: true, location_name: "VpnConnectionId"))
    DeleteVpnConnectionRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "dryRun"))
    DeleteVpnConnectionRequest.struct_class = Types::DeleteVpnConnectionRequest

    DeleteVpnConnectionRouteRequest.add_member(:destination_cidr_block, Shapes::ShapeRef.new(shape: String, required: true, location_name: "DestinationCidrBlock"))
    DeleteVpnConnectionRouteRequest.add_member(:vpn_connection_id, Shapes::ShapeRef.new(shape: VpnConnectionId, required: true, location_name: "VpnConnectionId"))
    DeleteVpnConnectionRouteRequest.struct_class = Types::DeleteVpnConnectionRouteRequest

    DeleteVpnGatewayRequest.add_member(:vpn_gateway_id, Shapes::ShapeRef.new(shape: VpnGatewayId, required: true, location_name: "VpnGatewayId"))
    DeleteVpnGatewayRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "dryRun"))
    DeleteVpnGatewayRequest.struct_class = Types::DeleteVpnGatewayRequest

    DeprovisionByoipCidrRequest.add_member(:cidr, Shapes::ShapeRef.new(shape: String, required: true, location_name: "Cidr"))
    DeprovisionByoipCidrRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    DeprovisionByoipCidrRequest.struct_class = Types::DeprovisionByoipCidrRequest

    DeprovisionByoipCidrResult.add_member(:byoip_cidr, Shapes::ShapeRef.new(shape: ByoipCidr, location_name: "byoipCidr"))
    DeprovisionByoipCidrResult.struct_class = Types::DeprovisionByoipCidrResult

    DeprovisionIpamByoasnRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    DeprovisionIpamByoasnRequest.add_member(:ipam_id, Shapes::ShapeRef.new(shape: IpamId, required: true, location_name: "IpamId"))
    DeprovisionIpamByoasnRequest.add_member(:asn, Shapes::ShapeRef.new(shape: String, required: true, location_name: "Asn"))
    DeprovisionIpamByoasnRequest.struct_class = Types::DeprovisionIpamByoasnRequest

    DeprovisionIpamByoasnResult.add_member(:byoasn, Shapes::ShapeRef.new(shape: Byoasn, location_name: "byoasn"))
    DeprovisionIpamByoasnResult.struct_class = Types::DeprovisionIpamByoasnResult

    DeprovisionIpamPoolCidrRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    DeprovisionIpamPoolCidrRequest.add_member(:ipam_pool_id, Shapes::ShapeRef.new(shape: IpamPoolId, required: true, location_name: "IpamPoolId"))
    DeprovisionIpamPoolCidrRequest.add_member(:cidr, Shapes::ShapeRef.new(shape: String, location_name: "Cidr"))
    DeprovisionIpamPoolCidrRequest.struct_class = Types::DeprovisionIpamPoolCidrRequest

    DeprovisionIpamPoolCidrResult.add_member(:ipam_pool_cidr, Shapes::ShapeRef.new(shape: IpamPoolCidr, location_name: "ipamPoolCidr"))
    DeprovisionIpamPoolCidrResult.struct_class = Types::DeprovisionIpamPoolCidrResult

    DeprovisionPublicIpv4PoolCidrRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    DeprovisionPublicIpv4PoolCidrRequest.add_member(:pool_id, Shapes::ShapeRef.new(shape: Ipv4PoolEc2Id, required: true, location_name: "PoolId"))
    DeprovisionPublicIpv4PoolCidrRequest.add_member(:cidr, Shapes::ShapeRef.new(shape: String, required: true, location_name: "Cidr"))
    DeprovisionPublicIpv4PoolCidrRequest.struct_class = Types::DeprovisionPublicIpv4PoolCidrRequest

    DeprovisionPublicIpv4PoolCidrResult.add_member(:pool_id, Shapes::ShapeRef.new(shape: Ipv4PoolEc2Id, location_name: "poolId"))
    DeprovisionPublicIpv4PoolCidrResult.add_member(:deprovisioned_addresses, Shapes::ShapeRef.new(shape: DeprovisionedAddressSet, location_name: "deprovisionedAddressSet"))
    DeprovisionPublicIpv4PoolCidrResult.struct_class = Types::DeprovisionPublicIpv4PoolCidrResult

    DeprovisionedAddressSet.member = Shapes::ShapeRef.new(shape: String, location_name: "item")

    DeregisterImageRequest.add_member(:image_id, Shapes::ShapeRef.new(shape: ImageId, required: true, location_name: "ImageId"))
    DeregisterImageRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "dryRun"))
    DeregisterImageRequest.struct_class = Types::DeregisterImageRequest

    DeregisterImageResult.struct_class = Types::DeregisterImageResult

    DeregisterInstanceEventNotificationAttributesRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    DeregisterInstanceEventNotificationAttributesRequest.add_member(:instance_tag_attribute, Shapes::ShapeRef.new(shape: DeregisterInstanceTagAttributeRequest, required: true, location_name: "InstanceTagAttribute"))
    DeregisterInstanceEventNotificationAttributesRequest.struct_class = Types::DeregisterInstanceEventNotificationAttributesRequest

    DeregisterInstanceEventNotificationAttributesResult.add_member(:instance_tag_attribute, Shapes::ShapeRef.new(shape: InstanceTagNotificationAttribute, location_name: "instanceTagAttribute"))
    DeregisterInstanceEventNotificationAttributesResult.struct_class = Types::DeregisterInstanceEventNotificationAttributesResult

    DeregisterInstanceTagAttributeRequest.add_member(:include_all_tags_of_instance, Shapes::ShapeRef.new(shape: Boolean, location_name: "IncludeAllTagsOfInstance"))
    DeregisterInstanceTagAttributeRequest.add_member(:instance_tag_keys, Shapes::ShapeRef.new(shape: InstanceTagKeySet, location_name: "InstanceTagKey"))
    DeregisterInstanceTagAttributeRequest.struct_class = Types::DeregisterInstanceTagAttributeRequest

    DeregisterTransitGatewayMulticastGroupMembersRequest.add_member(:transit_gateway_multicast_domain_id, Shapes::ShapeRef.new(shape: TransitGatewayMulticastDomainId, location_name: "TransitGatewayMulticastDomainId"))
    DeregisterTransitGatewayMulticastGroupMembersRequest.add_member(:group_ip_address, Shapes::ShapeRef.new(shape: String, location_name: "GroupIpAddress"))
    DeregisterTransitGatewayMulticastGroupMembersRequest.add_member(:network_interface_ids, Shapes::ShapeRef.new(shape: TransitGatewayNetworkInterfaceIdList, location_name: "NetworkInterfaceIds"))
    DeregisterTransitGatewayMulticastGroupMembersRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    DeregisterTransitGatewayMulticastGroupMembersRequest.struct_class = Types::DeregisterTransitGatewayMulticastGroupMembersRequest

    DeregisterTransitGatewayMulticastGroupMembersResult.add_member(:deregistered_multicast_group_members, Shapes::ShapeRef.new(shape: TransitGatewayMulticastDeregisteredGroupMembers, location_name: "deregisteredMulticastGroupMembers"))
    DeregisterTransitGatewayMulticastGroupMembersResult.struct_class = Types::DeregisterTransitGatewayMulticastGroupMembersResult

    DeregisterTransitGatewayMulticastGroupSourcesRequest.add_member(:transit_gateway_multicast_domain_id, Shapes::ShapeRef.new(shape: TransitGatewayMulticastDomainId, location_name: "TransitGatewayMulticastDomainId"))
    DeregisterTransitGatewayMulticastGroupSourcesRequest.add_member(:group_ip_address, Shapes::ShapeRef.new(shape: String, location_name: "GroupIpAddress"))
    DeregisterTransitGatewayMulticastGroupSourcesRequest.add_member(:network_interface_ids, Shapes::ShapeRef.new(shape: TransitGatewayNetworkInterfaceIdList, location_name: "NetworkInterfaceIds"))
    DeregisterTransitGatewayMulticastGroupSourcesRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    DeregisterTransitGatewayMulticastGroupSourcesRequest.struct_class = Types::DeregisterTransitGatewayMulticastGroupSourcesRequest

    DeregisterTransitGatewayMulticastGroupSourcesResult.add_member(:deregistered_multicast_group_sources, Shapes::ShapeRef.new(shape: TransitGatewayMulticastDeregisteredGroupSources, location_name: "deregisteredMulticastGroupSources"))
    DeregisterTransitGatewayMulticastGroupSourcesResult.struct_class = Types::DeregisterTransitGatewayMulticastGroupSourcesResult

    DescribeAccountAttributesRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "dryRun"))
    DescribeAccountAttributesRequest.add_member(:attribute_names, Shapes::ShapeRef.new(shape: AccountAttributeNameStringList, location_name: "attributeName"))
    DescribeAccountAttributesRequest.struct_class = Types::DescribeAccountAttributesRequest

    DescribeAccountAttributesResult.add_member(:account_attributes, Shapes::ShapeRef.new(shape: AccountAttributeList, location_name: "accountAttributeSet"))
    DescribeAccountAttributesResult.struct_class = Types::DescribeAccountAttributesResult

    DescribeAddressTransfersRequest.add_member(:allocation_ids, Shapes::ShapeRef.new(shape: AllocationIdList, location_name: "AllocationId"))
    DescribeAddressTransfersRequest.add_member(:next_token, Shapes::ShapeRef.new(shape: String, location_name: "NextToken"))
    DescribeAddressTransfersRequest.add_member(:max_results, Shapes::ShapeRef.new(shape: DescribeAddressTransfersMaxResults, location_name: "MaxResults"))
    DescribeAddressTransfersRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    DescribeAddressTransfersRequest.struct_class = Types::DescribeAddressTransfersRequest

    DescribeAddressTransfersResult.add_member(:address_transfers, Shapes::ShapeRef.new(shape: AddressTransferList, location_name: "addressTransferSet"))
    DescribeAddressTransfersResult.add_member(:next_token, Shapes::ShapeRef.new(shape: String, location_name: "nextToken"))
    DescribeAddressTransfersResult.struct_class = Types::DescribeAddressTransfersResult

    DescribeAddressesAttributeRequest.add_member(:allocation_ids, Shapes::ShapeRef.new(shape: AllocationIds, location_name: "AllocationId"))
    DescribeAddressesAttributeRequest.add_member(:attribute, Shapes::ShapeRef.new(shape: AddressAttributeName, location_name: "Attribute"))
    DescribeAddressesAttributeRequest.add_member(:next_token, Shapes::ShapeRef.new(shape: NextToken, location_name: "NextToken"))
    DescribeAddressesAttributeRequest.add_member(:max_results, Shapes::ShapeRef.new(shape: AddressMaxResults, location_name: "MaxResults"))
    DescribeAddressesAttributeRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    DescribeAddressesAttributeRequest.struct_class = Types::DescribeAddressesAttributeRequest

    DescribeAddressesAttributeResult.add_member(:addresses, Shapes::ShapeRef.new(shape: AddressSet, location_name: "addressSet"))
    DescribeAddressesAttributeResult.add_member(:next_token, Shapes::ShapeRef.new(shape: NextToken, location_name: "nextToken"))
    DescribeAddressesAttributeResult.struct_class = Types::DescribeAddressesAttributeResult

    DescribeAddressesRequest.add_member(:public_ips, Shapes::ShapeRef.new(shape: PublicIpStringList, location_name: "PublicIp"))
    DescribeAddressesRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "dryRun"))
    DescribeAddressesRequest.add_member(:filters, Shapes::ShapeRef.new(shape: FilterList, location_name: "Filter"))
    DescribeAddressesRequest.add_member(:allocation_ids, Shapes::ShapeRef.new(shape: AllocationIdList, location_name: "AllocationId"))
    DescribeAddressesRequest.struct_class = Types::DescribeAddressesRequest

    DescribeAddressesResult.add_member(:addresses, Shapes::ShapeRef.new(shape: AddressList, location_name: "addressesSet"))
    DescribeAddressesResult.struct_class = Types::DescribeAddressesResult

    DescribeAggregateIdFormatRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    DescribeAggregateIdFormatRequest.struct_class = Types::DescribeAggregateIdFormatRequest

    DescribeAggregateIdFormatResult.add_member(:use_long_ids_aggregated, Shapes::ShapeRef.new(shape: Boolean, location_name: "useLongIdsAggregated"))
    DescribeAggregateIdFormatResult.add_member(:statuses, Shapes::ShapeRef.new(shape: IdFormatList, location_name: "statusSet"))
    DescribeAggregateIdFormatResult.struct_class = Types::DescribeAggregateIdFormatResult

    DescribeAvailabilityZonesRequest.add_member(:zone_names, Shapes::ShapeRef.new(shape: ZoneNameStringList, location_name: "ZoneName"))
    DescribeAvailabilityZonesRequest.add_member(:zone_ids, Shapes::ShapeRef.new(shape: ZoneIdStringList, location_name: "ZoneId"))
    DescribeAvailabilityZonesRequest.add_member(:all_availability_zones, Shapes::ShapeRef.new(shape: Boolean, location_name: "AllAvailabilityZones"))
    DescribeAvailabilityZonesRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "dryRun"))
    DescribeAvailabilityZonesRequest.add_member(:filters, Shapes::ShapeRef.new(shape: FilterList, location_name: "Filter"))
    DescribeAvailabilityZonesRequest.struct_class = Types::DescribeAvailabilityZonesRequest

    DescribeAvailabilityZonesResult.add_member(:availability_zones, Shapes::ShapeRef.new(shape: AvailabilityZoneList, location_name: "availabilityZoneInfo"))
    DescribeAvailabilityZonesResult.struct_class = Types::DescribeAvailabilityZonesResult

    DescribeAwsNetworkPerformanceMetricSubscriptionsRequest.add_member(:max_results, Shapes::ShapeRef.new(shape: MaxResultsParam, location_name: "MaxResults"))
    DescribeAwsNetworkPerformanceMetricSubscriptionsRequest.add_member(:next_token, Shapes::ShapeRef.new(shape: String, location_name: "NextToken"))
    DescribeAwsNetworkPerformanceMetricSubscriptionsRequest.add_member(:filters, Shapes::ShapeRef.new(shape: FilterList, location_name: "Filter"))
    DescribeAwsNetworkPerformanceMetricSubscriptionsRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    DescribeAwsNetworkPerformanceMetricSubscriptionsRequest.struct_class = Types::DescribeAwsNetworkPerformanceMetricSubscriptionsRequest

    DescribeAwsNetworkPerformanceMetricSubscriptionsResult.add_member(:next_token, Shapes::ShapeRef.new(shape: String, location_name: "nextToken"))
    DescribeAwsNetworkPerformanceMetricSubscriptionsResult.add_member(:subscriptions, Shapes::ShapeRef.new(shape: SubscriptionList, location_name: "subscriptionSet"))
    DescribeAwsNetworkPerformanceMetricSubscriptionsResult.struct_class = Types::DescribeAwsNetworkPerformanceMetricSubscriptionsResult

    DescribeBundleTasksRequest.add_member(:bundle_ids, Shapes::ShapeRef.new(shape: BundleIdStringList, location_name: "BundleId"))
    DescribeBundleTasksRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "dryRun"))
    DescribeBundleTasksRequest.add_member(:filters, Shapes::ShapeRef.new(shape: FilterList, location_name: "Filter"))
    DescribeBundleTasksRequest.struct_class = Types::DescribeBundleTasksRequest

    DescribeBundleTasksResult.add_member(:bundle_tasks, Shapes::ShapeRef.new(shape: BundleTaskList, location_name: "bundleInstanceTasksSet"))
    DescribeBundleTasksResult.struct_class = Types::DescribeBundleTasksResult

    DescribeByoipCidrsRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    DescribeByoipCidrsRequest.add_member(:max_results, Shapes::ShapeRef.new(shape: DescribeByoipCidrsMaxResults, required: true, location_name: "MaxResults"))
    DescribeByoipCidrsRequest.add_member(:next_token, Shapes::ShapeRef.new(shape: NextToken, location_name: "NextToken"))
    DescribeByoipCidrsRequest.struct_class = Types::DescribeByoipCidrsRequest

    DescribeByoipCidrsResult.add_member(:byoip_cidrs, Shapes::ShapeRef.new(shape: ByoipCidrSet, location_name: "byoipCidrSet"))
    DescribeByoipCidrsResult.add_member(:next_token, Shapes::ShapeRef.new(shape: String, location_name: "nextToken"))
    DescribeByoipCidrsResult.struct_class = Types::DescribeByoipCidrsResult

    DescribeCapacityBlockExtensionHistoryRequest.add_member(:capacity_reservation_ids, Shapes::ShapeRef.new(shape: CapacityReservationIdSet, location_name: "CapacityReservationId"))
    DescribeCapacityBlockExtensionHistoryRequest.add_member(:next_token, Shapes::ShapeRef.new(shape: String, location_name: "NextToken"))
    DescribeCapacityBlockExtensionHistoryRequest.add_member(:max_results, Shapes::ShapeRef.new(shape: DescribeFutureCapacityMaxResults, location_name: "MaxResults"))
    DescribeCapacityBlockExtensionHistoryRequest.add_member(:filters, Shapes::ShapeRef.new(shape: FilterList, location_name: "Filter"))
    DescribeCapacityBlockExtensionHistoryRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    DescribeCapacityBlockExtensionHistoryRequest.struct_class = Types::DescribeCapacityBlockExtensionHistoryRequest

    DescribeCapacityBlockExtensionHistoryResult.add_member(:capacity_block_extensions, Shapes::ShapeRef.new(shape: CapacityBlockExtensionSet, location_name: "capacityBlockExtensionSet"))
    DescribeCapacityBlockExtensionHistoryResult.add_member(:next_token, Shapes::ShapeRef.new(shape: String, location_name: "nextToken"))
    DescribeCapacityBlockExtensionHistoryResult.struct_class = Types::DescribeCapacityBlockExtensionHistoryResult

    DescribeCapacityBlockExtensionOfferingsRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    DescribeCapacityBlockExtensionOfferingsRequest.add_member(:capacity_block_extension_duration_hours, Shapes::ShapeRef.new(shape: Integer, required: true, location_name: "CapacityBlockExtensionDurationHours"))
    DescribeCapacityBlockExtensionOfferingsRequest.add_member(:capacity_reservation_id, Shapes::ShapeRef.new(shape: CapacityReservationId, required: true, location_name: "CapacityReservationId"))
    DescribeCapacityBlockExtensionOfferingsRequest.add_member(:next_token, Shapes::ShapeRef.new(shape: String, location_name: "NextToken"))
    DescribeCapacityBlockExtensionOfferingsRequest.add_member(:max_results, Shapes::ShapeRef.new(shape: DescribeCapacityBlockExtensionOfferingsMaxResults, location_name: "MaxResults"))
    DescribeCapacityBlockExtensionOfferingsRequest.struct_class = Types::DescribeCapacityBlockExtensionOfferingsRequest

    DescribeCapacityBlockExtensionOfferingsResult.add_member(:capacity_block_extension_offerings, Shapes::ShapeRef.new(shape: CapacityBlockExtensionOfferingSet, location_name: "capacityBlockExtensionOfferingSet"))
    DescribeCapacityBlockExtensionOfferingsResult.add_member(:next_token, Shapes::ShapeRef.new(shape: String, location_name: "nextToken"))
    DescribeCapacityBlockExtensionOfferingsResult.struct_class = Types::DescribeCapacityBlockExtensionOfferingsResult

    DescribeCapacityBlockOfferingsRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    DescribeCapacityBlockOfferingsRequest.add_member(:instance_type, Shapes::ShapeRef.new(shape: String, location_name: "InstanceType"))
    DescribeCapacityBlockOfferingsRequest.add_member(:instance_count, Shapes::ShapeRef.new(shape: Integer, location_name: "InstanceCount"))
    DescribeCapacityBlockOfferingsRequest.add_member(:start_date_range, Shapes::ShapeRef.new(shape: MillisecondDateTime, location_name: "StartDateRange"))
    DescribeCapacityBlockOfferingsRequest.add_member(:end_date_range, Shapes::ShapeRef.new(shape: MillisecondDateTime, location_name: "EndDateRange"))
    DescribeCapacityBlockOfferingsRequest.add_member(:capacity_duration_hours, Shapes::ShapeRef.new(shape: Integer, required: true, location_name: "CapacityDurationHours"))
    DescribeCapacityBlockOfferingsRequest.add_member(:next_token, Shapes::ShapeRef.new(shape: String, location_name: "NextToken"))
    DescribeCapacityBlockOfferingsRequest.add_member(:max_results, Shapes::ShapeRef.new(shape: DescribeCapacityBlockOfferingsMaxResults, location_name: "MaxResults"))
    DescribeCapacityBlockOfferingsRequest.struct_class = Types::DescribeCapacityBlockOfferingsRequest

    DescribeCapacityBlockOfferingsResult.add_member(:capacity_block_offerings, Shapes::ShapeRef.new(shape: CapacityBlockOfferingSet, location_name: "capacityBlockOfferingSet"))
    DescribeCapacityBlockOfferingsResult.add_member(:next_token, Shapes::ShapeRef.new(shape: String, location_name: "nextToken"))
    DescribeCapacityBlockOfferingsResult.struct_class = Types::DescribeCapacityBlockOfferingsResult

    DescribeCapacityReservationBillingRequestsRequest.add_member(:capacity_reservation_ids, Shapes::ShapeRef.new(shape: CapacityReservationIdSet, location_name: "CapacityReservationId"))
    DescribeCapacityReservationBillingRequestsRequest.add_member(:role, Shapes::ShapeRef.new(shape: CallerRole, required: true, location_name: "Role"))
    DescribeCapacityReservationBillingRequestsRequest.add_member(:next_token, Shapes::ShapeRef.new(shape: String, location_name: "NextToken"))
    DescribeCapacityReservationBillingRequestsRequest.add_member(:max_results, Shapes::ShapeRef.new(shape: DescribeCapacityReservationBillingRequestsRequestMaxResults, location_name: "MaxResults"))
    DescribeCapacityReservationBillingRequestsRequest.add_member(:filters, Shapes::ShapeRef.new(shape: FilterList, location_name: "Filter"))
    DescribeCapacityReservationBillingRequestsRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    DescribeCapacityReservationBillingRequestsRequest.struct_class = Types::DescribeCapacityReservationBillingRequestsRequest

    DescribeCapacityReservationBillingRequestsResult.add_member(:next_token, Shapes::ShapeRef.new(shape: String, location_name: "nextToken"))
    DescribeCapacityReservationBillingRequestsResult.add_member(:capacity_reservation_billing_requests, Shapes::ShapeRef.new(shape: CapacityReservationBillingRequestSet, location_name: "capacityReservationBillingRequestSet"))
    DescribeCapacityReservationBillingRequestsResult.struct_class = Types::DescribeCapacityReservationBillingRequestsResult

    DescribeCapacityReservationFleetsRequest.add_member(:capacity_reservation_fleet_ids, Shapes::ShapeRef.new(shape: CapacityReservationFleetIdSet, location_name: "CapacityReservationFleetId"))
    DescribeCapacityReservationFleetsRequest.add_member(:next_token, Shapes::ShapeRef.new(shape: String, location_name: "NextToken"))
    DescribeCapacityReservationFleetsRequest.add_member(:max_results, Shapes::ShapeRef.new(shape: DescribeCapacityReservationFleetsMaxResults, location_name: "MaxResults"))
    DescribeCapacityReservationFleetsRequest.add_member(:filters, Shapes::ShapeRef.new(shape: FilterList, location_name: "Filter"))
    DescribeCapacityReservationFleetsRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    DescribeCapacityReservationFleetsRequest.struct_class = Types::DescribeCapacityReservationFleetsRequest

    DescribeCapacityReservationFleetsResult.add_member(:capacity_reservation_fleets, Shapes::ShapeRef.new(shape: CapacityReservationFleetSet, location_name: "capacityReservationFleetSet"))
    DescribeCapacityReservationFleetsResult.add_member(:next_token, Shapes::ShapeRef.new(shape: String, location_name: "nextToken"))
    DescribeCapacityReservationFleetsResult.struct_class = Types::DescribeCapacityReservationFleetsResult

    DescribeCapacityReservationsRequest.add_member(:capacity_reservation_ids, Shapes::ShapeRef.new(shape: CapacityReservationIdSet, location_name: "CapacityReservationId"))
    DescribeCapacityReservationsRequest.add_member(:next_token, Shapes::ShapeRef.new(shape: String, location_name: "NextToken"))
    DescribeCapacityReservationsRequest.add_member(:max_results, Shapes::ShapeRef.new(shape: DescribeCapacityReservationsMaxResults, location_name: "MaxResults"))
    DescribeCapacityReservationsRequest.add_member(:filters, Shapes::ShapeRef.new(shape: FilterList, location_name: "Filter"))
    DescribeCapacityReservationsRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    DescribeCapacityReservationsRequest.struct_class = Types::DescribeCapacityReservationsRequest

    DescribeCapacityReservationsResult.add_member(:next_token, Shapes::ShapeRef.new(shape: String, location_name: "nextToken"))
    DescribeCapacityReservationsResult.add_member(:capacity_reservations, Shapes::ShapeRef.new(shape: CapacityReservationSet, location_name: "capacityReservationSet"))
    DescribeCapacityReservationsResult.struct_class = Types::DescribeCapacityReservationsResult

    DescribeCarrierGatewaysRequest.add_member(:carrier_gateway_ids, Shapes::ShapeRef.new(shape: CarrierGatewayIdSet, location_name: "CarrierGatewayId"))
    DescribeCarrierGatewaysRequest.add_member(:filters, Shapes::ShapeRef.new(shape: FilterList, location_name: "Filter"))
    DescribeCarrierGatewaysRequest.add_member(:max_results, Shapes::ShapeRef.new(shape: CarrierGatewayMaxResults, location_name: "MaxResults"))
    DescribeCarrierGatewaysRequest.add_member(:next_token, Shapes::ShapeRef.new(shape: String, location_name: "NextToken"))
    DescribeCarrierGatewaysRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    DescribeCarrierGatewaysRequest.struct_class = Types::DescribeCarrierGatewaysRequest

    DescribeCarrierGatewaysResult.add_member(:carrier_gateways, Shapes::ShapeRef.new(shape: CarrierGatewaySet, location_name: "carrierGatewaySet"))
    DescribeCarrierGatewaysResult.add_member(:next_token, Shapes::ShapeRef.new(shape: String, location_name: "nextToken"))
    DescribeCarrierGatewaysResult.struct_class = Types::DescribeCarrierGatewaysResult

    DescribeClassicLinkInstancesRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "dryRun"))
    DescribeClassicLinkInstancesRequest.add_member(:instance_ids, Shapes::ShapeRef.new(shape: InstanceIdStringList, location_name: "InstanceId"))
    DescribeClassicLinkInstancesRequest.add_member(:filters, Shapes::ShapeRef.new(shape: FilterList, location_name: "Filter"))
    DescribeClassicLinkInstancesRequest.add_member(:next_token, Shapes::ShapeRef.new(shape: String, location_name: "nextToken"))
    DescribeClassicLinkInstancesRequest.add_member(:max_results, Shapes::ShapeRef.new(shape: DescribeClassicLinkInstancesMaxResults, location_name: "maxResults"))
    DescribeClassicLinkInstancesRequest.struct_class = Types::DescribeClassicLinkInstancesRequest

    DescribeClassicLinkInstancesResult.add_member(:instances, Shapes::ShapeRef.new(shape: ClassicLinkInstanceList, location_name: "instancesSet"))
    DescribeClassicLinkInstancesResult.add_member(:next_token, Shapes::ShapeRef.new(shape: String, location_name: "nextToken"))
    DescribeClassicLinkInstancesResult.struct_class = Types::DescribeClassicLinkInstancesResult

    DescribeClientVpnAuthorizationRulesRequest.add_member(:client_vpn_endpoint_id, Shapes::ShapeRef.new(shape: ClientVpnEndpointId, required: true, location_name: "ClientVpnEndpointId"))
    DescribeClientVpnAuthorizationRulesRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    DescribeClientVpnAuthorizationRulesRequest.add_member(:next_token, Shapes::ShapeRef.new(shape: NextToken, location_name: "NextToken"))
    DescribeClientVpnAuthorizationRulesRequest.add_member(:filters, Shapes::ShapeRef.new(shape: FilterList, location_name: "Filter"))
    DescribeClientVpnAuthorizationRulesRequest.add_member(:max_results, Shapes::ShapeRef.new(shape: DescribeClientVpnAuthorizationRulesMaxResults, location_name: "MaxResults"))
    DescribeClientVpnAuthorizationRulesRequest.struct_class = Types::DescribeClientVpnAuthorizationRulesRequest

    DescribeClientVpnAuthorizationRulesResult.add_member(:authorization_rules, Shapes::ShapeRef.new(shape: AuthorizationRuleSet, location_name: "authorizationRule"))
    DescribeClientVpnAuthorizationRulesResult.add_member(:next_token, Shapes::ShapeRef.new(shape: NextToken, location_name: "nextToken"))
    DescribeClientVpnAuthorizationRulesResult.struct_class = Types::DescribeClientVpnAuthorizationRulesResult

    DescribeClientVpnConnectionsRequest.add_member(:client_vpn_endpoint_id, Shapes::ShapeRef.new(shape: ClientVpnEndpointId, required: true, location_name: "ClientVpnEndpointId"))
    DescribeClientVpnConnectionsRequest.add_member(:filters, Shapes::ShapeRef.new(shape: FilterList, location_name: "Filter"))
    DescribeClientVpnConnectionsRequest.add_member(:next_token, Shapes::ShapeRef.new(shape: NextToken, location_name: "NextToken"))
    DescribeClientVpnConnectionsRequest.add_member(:max_results, Shapes::ShapeRef.new(shape: DescribeClientVpnConnectionsMaxResults, location_name: "MaxResults"))
    DescribeClientVpnConnectionsRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    DescribeClientVpnConnectionsRequest.struct_class = Types::DescribeClientVpnConnectionsRequest

    DescribeClientVpnConnectionsResult.add_member(:connections, Shapes::ShapeRef.new(shape: ClientVpnConnectionSet, location_name: "connections"))
    DescribeClientVpnConnectionsResult.add_member(:next_token, Shapes::ShapeRef.new(shape: NextToken, location_name: "nextToken"))
    DescribeClientVpnConnectionsResult.struct_class = Types::DescribeClientVpnConnectionsResult

    DescribeClientVpnEndpointsRequest.add_member(:client_vpn_endpoint_ids, Shapes::ShapeRef.new(shape: ClientVpnEndpointIdList, location_name: "ClientVpnEndpointId"))
    DescribeClientVpnEndpointsRequest.add_member(:max_results, Shapes::ShapeRef.new(shape: DescribeClientVpnEndpointMaxResults, location_name: "MaxResults"))
    DescribeClientVpnEndpointsRequest.add_member(:next_token, Shapes::ShapeRef.new(shape: NextToken, location_name: "NextToken"))
    DescribeClientVpnEndpointsRequest.add_member(:filters, Shapes::ShapeRef.new(shape: FilterList, location_name: "Filter"))
    DescribeClientVpnEndpointsRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    DescribeClientVpnEndpointsRequest.struct_class = Types::DescribeClientVpnEndpointsRequest

    DescribeClientVpnEndpointsResult.add_member(:client_vpn_endpoints, Shapes::ShapeRef.new(shape: EndpointSet, location_name: "clientVpnEndpoint"))
    DescribeClientVpnEndpointsResult.add_member(:next_token, Shapes::ShapeRef.new(shape: NextToken, location_name: "nextToken"))
    DescribeClientVpnEndpointsResult.struct_class = Types::DescribeClientVpnEndpointsResult

    DescribeClientVpnRoutesRequest.add_member(:client_vpn_endpoint_id, Shapes::ShapeRef.new(shape: ClientVpnEndpointId, required: true, location_name: "ClientVpnEndpointId"))
    DescribeClientVpnRoutesRequest.add_member(:filters, Shapes::ShapeRef.new(shape: FilterList, location_name: "Filter"))
    DescribeClientVpnRoutesRequest.add_member(:max_results, Shapes::ShapeRef.new(shape: DescribeClientVpnRoutesMaxResults, location_name: "MaxResults"))
    DescribeClientVpnRoutesRequest.add_member(:next_token, Shapes::ShapeRef.new(shape: NextToken, location_name: "NextToken"))
    DescribeClientVpnRoutesRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    DescribeClientVpnRoutesRequest.struct_class = Types::DescribeClientVpnRoutesRequest

    DescribeClientVpnRoutesResult.add_member(:routes, Shapes::ShapeRef.new(shape: ClientVpnRouteSet, location_name: "routes"))
    DescribeClientVpnRoutesResult.add_member(:next_token, Shapes::ShapeRef.new(shape: NextToken, location_name: "nextToken"))
    DescribeClientVpnRoutesResult.struct_class = Types::DescribeClientVpnRoutesResult

    DescribeClientVpnTargetNetworksRequest.add_member(:client_vpn_endpoint_id, Shapes::ShapeRef.new(shape: ClientVpnEndpointId, required: true, location_name: "ClientVpnEndpointId"))
    DescribeClientVpnTargetNetworksRequest.add_member(:association_ids, Shapes::ShapeRef.new(shape: ValueStringList, location_name: "AssociationIds"))
    DescribeClientVpnTargetNetworksRequest.add_member(:max_results, Shapes::ShapeRef.new(shape: DescribeClientVpnTargetNetworksMaxResults, location_name: "MaxResults"))
    DescribeClientVpnTargetNetworksRequest.add_member(:next_token, Shapes::ShapeRef.new(shape: NextToken, location_name: "NextToken"))
    DescribeClientVpnTargetNetworksRequest.add_member(:filters, Shapes::ShapeRef.new(shape: FilterList, location_name: "Filter"))
    DescribeClientVpnTargetNetworksRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    DescribeClientVpnTargetNetworksRequest.struct_class = Types::DescribeClientVpnTargetNetworksRequest

    DescribeClientVpnTargetNetworksResult.add_member(:client_vpn_target_networks, Shapes::ShapeRef.new(shape: TargetNetworkSet, location_name: "clientVpnTargetNetworks"))
    DescribeClientVpnTargetNetworksResult.add_member(:next_token, Shapes::ShapeRef.new(shape: NextToken, location_name: "nextToken"))
    DescribeClientVpnTargetNetworksResult.struct_class = Types::DescribeClientVpnTargetNetworksResult

    DescribeCoipPoolsRequest.add_member(:pool_ids, Shapes::ShapeRef.new(shape: CoipPoolIdSet, location_name: "PoolId"))
    DescribeCoipPoolsRequest.add_member(:filters, Shapes::ShapeRef.new(shape: FilterList, location_name: "Filter"))
    DescribeCoipPoolsRequest.add_member(:max_results, Shapes::ShapeRef.new(shape: CoipPoolMaxResults, location_name: "MaxResults"))
    DescribeCoipPoolsRequest.add_member(:next_token, Shapes::ShapeRef.new(shape: String, location_name: "NextToken"))
    DescribeCoipPoolsRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    DescribeCoipPoolsRequest.struct_class = Types::DescribeCoipPoolsRequest

    DescribeCoipPoolsResult.add_member(:coip_pools, Shapes::ShapeRef.new(shape: CoipPoolSet, location_name: "coipPoolSet"))
    DescribeCoipPoolsResult.add_member(:next_token, Shapes::ShapeRef.new(shape: String, location_name: "nextToken"))
    DescribeCoipPoolsResult.struct_class = Types::DescribeCoipPoolsResult

    DescribeConversionTaskList.member = Shapes::ShapeRef.new(shape: ConversionTask, location_name: "item")

    DescribeConversionTasksRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "dryRun"))
    DescribeConversionTasksRequest.add_member(:conversion_task_ids, Shapes::ShapeRef.new(shape: ConversionIdStringList, location_name: "conversionTaskId"))
    DescribeConversionTasksRequest.struct_class = Types::DescribeConversionTasksRequest

    DescribeConversionTasksResult.add_member(:conversion_tasks, Shapes::ShapeRef.new(shape: DescribeConversionTaskList, location_name: "conversionTasks"))
    DescribeConversionTasksResult.struct_class = Types::DescribeConversionTasksResult

    DescribeCustomerGatewaysRequest.add_member(:customer_gateway_ids, Shapes::ShapeRef.new(shape: CustomerGatewayIdStringList, location_name: "CustomerGatewayId"))
    DescribeCustomerGatewaysRequest.add_member(:filters, Shapes::ShapeRef.new(shape: FilterList, location_name: "Filter"))
    DescribeCustomerGatewaysRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "dryRun"))
    DescribeCustomerGatewaysRequest.struct_class = Types::DescribeCustomerGatewaysRequest

    DescribeCustomerGatewaysResult.add_member(:customer_gateways, Shapes::ShapeRef.new(shape: CustomerGatewayList, location_name: "customerGatewaySet"))
    DescribeCustomerGatewaysResult.struct_class = Types::DescribeCustomerGatewaysResult

    DescribeDeclarativePoliciesReportsRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    DescribeDeclarativePoliciesReportsRequest.add_member(:next_token, Shapes::ShapeRef.new(shape: String, location_name: "NextToken"))
    DescribeDeclarativePoliciesReportsRequest.add_member(:max_results, Shapes::ShapeRef.new(shape: DeclarativePoliciesMaxResults, location_name: "MaxResults"))
    DescribeDeclarativePoliciesReportsRequest.add_member(:report_ids, Shapes::ShapeRef.new(shape: ValueStringList, location_name: "ReportId"))
    DescribeDeclarativePoliciesReportsRequest.struct_class = Types::DescribeDeclarativePoliciesReportsRequest

    DescribeDeclarativePoliciesReportsResult.add_member(:next_token, Shapes::ShapeRef.new(shape: String, location_name: "nextToken"))
    DescribeDeclarativePoliciesReportsResult.add_member(:reports, Shapes::ShapeRef.new(shape: DeclarativePoliciesReportList, location_name: "reportSet"))
    DescribeDeclarativePoliciesReportsResult.struct_class = Types::DescribeDeclarativePoliciesReportsResult

    DescribeDhcpOptionsRequest.add_member(:dhcp_options_ids, Shapes::ShapeRef.new(shape: DhcpOptionsIdStringList, location_name: "DhcpOptionsId"))
    DescribeDhcpOptionsRequest.add_member(:next_token, Shapes::ShapeRef.new(shape: String, location_name: "NextToken"))
    DescribeDhcpOptionsRequest.add_member(:max_results, Shapes::ShapeRef.new(shape: DescribeDhcpOptionsMaxResults, location_name: "MaxResults"))
    DescribeDhcpOptionsRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "dryRun"))
    DescribeDhcpOptionsRequest.add_member(:filters, Shapes::ShapeRef.new(shape: FilterList, location_name: "Filter"))
    DescribeDhcpOptionsRequest.struct_class = Types::DescribeDhcpOptionsRequest

    DescribeDhcpOptionsResult.add_member(:next_token, Shapes::ShapeRef.new(shape: String, location_name: "nextToken"))
    DescribeDhcpOptionsResult.add_member(:dhcp_options, Shapes::ShapeRef.new(shape: DhcpOptionsList, location_name: "dhcpOptionsSet"))
    DescribeDhcpOptionsResult.struct_class = Types::DescribeDhcpOptionsResult

    DescribeEgressOnlyInternetGatewaysRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    DescribeEgressOnlyInternetGatewaysRequest.add_member(:egress_only_internet_gateway_ids, Shapes::ShapeRef.new(shape: EgressOnlyInternetGatewayIdList, location_name: "EgressOnlyInternetGatewayId"))
    DescribeEgressOnlyInternetGatewaysRequest.add_member(:max_results, Shapes::ShapeRef.new(shape: DescribeEgressOnlyInternetGatewaysMaxResults, location_name: "MaxResults"))
    DescribeEgressOnlyInternetGatewaysRequest.add_member(:next_token, Shapes::ShapeRef.new(shape: String, location_name: "NextToken"))
    DescribeEgressOnlyInternetGatewaysRequest.add_member(:filters, Shapes::ShapeRef.new(shape: FilterList, location_name: "Filter"))
    DescribeEgressOnlyInternetGatewaysRequest.struct_class = Types::DescribeEgressOnlyInternetGatewaysRequest

    DescribeEgressOnlyInternetGatewaysResult.add_member(:egress_only_internet_gateways, Shapes::ShapeRef.new(shape: EgressOnlyInternetGatewayList, location_name: "egressOnlyInternetGatewaySet"))
    DescribeEgressOnlyInternetGatewaysResult.add_member(:next_token, Shapes::ShapeRef.new(shape: String, location_name: "nextToken"))
    DescribeEgressOnlyInternetGatewaysResult.struct_class = Types::DescribeEgressOnlyInternetGatewaysResult

    DescribeElasticGpusRequest.add_member(:elastic_gpu_ids, Shapes::ShapeRef.new(shape: ElasticGpuIdSet, location_name: "ElasticGpuId"))
    DescribeElasticGpusRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    DescribeElasticGpusRequest.add_member(:filters, Shapes::ShapeRef.new(shape: FilterList, location_name: "Filter"))
    DescribeElasticGpusRequest.add_member(:max_results, Shapes::ShapeRef.new(shape: DescribeElasticGpusMaxResults, location_name: "MaxResults"))
    DescribeElasticGpusRequest.add_member(:next_token, Shapes::ShapeRef.new(shape: String, location_name: "NextToken"))
    DescribeElasticGpusRequest.struct_class = Types::DescribeElasticGpusRequest

    DescribeElasticGpusResult.add_member(:elastic_gpu_set, Shapes::ShapeRef.new(shape: ElasticGpuSet, location_name: "elasticGpuSet"))
    DescribeElasticGpusResult.add_member(:max_results, Shapes::ShapeRef.new(shape: Integer, location_name: "maxResults"))
    DescribeElasticGpusResult.add_member(:next_token, Shapes::ShapeRef.new(shape: String, location_name: "nextToken"))
    DescribeElasticGpusResult.struct_class = Types::DescribeElasticGpusResult

    DescribeExportImageTasksRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    DescribeExportImageTasksRequest.add_member(:filters, Shapes::ShapeRef.new(shape: FilterList, location_name: "Filter"))
    DescribeExportImageTasksRequest.add_member(:export_image_task_ids, Shapes::ShapeRef.new(shape: ExportImageTaskIdList, location_name: "ExportImageTaskId"))
    DescribeExportImageTasksRequest.add_member(:max_results, Shapes::ShapeRef.new(shape: DescribeExportImageTasksMaxResults, location_name: "MaxResults"))
    DescribeExportImageTasksRequest.add_member(:next_token, Shapes::ShapeRef.new(shape: NextToken, location_name: "NextToken"))
    DescribeExportImageTasksRequest.struct_class = Types::DescribeExportImageTasksRequest

    DescribeExportImageTasksResult.add_member(:export_image_tasks, Shapes::ShapeRef.new(shape: ExportImageTaskList, location_name: "exportImageTaskSet"))
    DescribeExportImageTasksResult.add_member(:next_token, Shapes::ShapeRef.new(shape: NextToken, location_name: "nextToken"))
    DescribeExportImageTasksResult.struct_class = Types::DescribeExportImageTasksResult

    DescribeExportTasksRequest.add_member(:filters, Shapes::ShapeRef.new(shape: FilterList, location_name: "Filter"))
    DescribeExportTasksRequest.add_member(:export_task_ids, Shapes::ShapeRef.new(shape: ExportTaskIdStringList, location_name: "exportTaskId"))
    DescribeExportTasksRequest.struct_class = Types::DescribeExportTasksRequest

    DescribeExportTasksResult.add_member(:export_tasks, Shapes::ShapeRef.new(shape: ExportTaskList, location_name: "exportTaskSet"))
    DescribeExportTasksResult.struct_class = Types::DescribeExportTasksResult

    DescribeFastLaunchImagesRequest.add_member(:image_ids, Shapes::ShapeRef.new(shape: FastLaunchImageIdList, location_name: "ImageId"))
    DescribeFastLaunchImagesRequest.add_member(:filters, Shapes::ShapeRef.new(shape: FilterList, location_name: "Filter"))
    DescribeFastLaunchImagesRequest.add_member(:max_results, Shapes::ShapeRef.new(shape: DescribeFastLaunchImagesRequestMaxResults, location_name: "MaxResults"))
    DescribeFastLaunchImagesRequest.add_member(:next_token, Shapes::ShapeRef.new(shape: NextToken, location_name: "NextToken"))
    DescribeFastLaunchImagesRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    DescribeFastLaunchImagesRequest.struct_class = Types::DescribeFastLaunchImagesRequest

    DescribeFastLaunchImagesResult.add_member(:fast_launch_images, Shapes::ShapeRef.new(shape: DescribeFastLaunchImagesSuccessSet, location_name: "fastLaunchImageSet"))
    DescribeFastLaunchImagesResult.add_member(:next_token, Shapes::ShapeRef.new(shape: NextToken, location_name: "nextToken"))
    DescribeFastLaunchImagesResult.struct_class = Types::DescribeFastLaunchImagesResult

    DescribeFastLaunchImagesSuccessItem.add_member(:image_id, Shapes::ShapeRef.new(shape: ImageId, location_name: "imageId"))
    DescribeFastLaunchImagesSuccessItem.add_member(:resource_type, Shapes::ShapeRef.new(shape: FastLaunchResourceType, location_name: "resourceType"))
    DescribeFastLaunchImagesSuccessItem.add_member(:snapshot_configuration, Shapes::ShapeRef.new(shape: FastLaunchSnapshotConfigurationResponse, location_name: "snapshotConfiguration"))
    DescribeFastLaunchImagesSuccessItem.add_member(:launch_template, Shapes::ShapeRef.new(shape: FastLaunchLaunchTemplateSpecificationResponse, location_name: "launchTemplate"))
    DescribeFastLaunchImagesSuccessItem.add_member(:max_parallel_launches, Shapes::ShapeRef.new(shape: Integer, location_name: "maxParallelLaunches"))
    DescribeFastLaunchImagesSuccessItem.add_member(:owner_id, Shapes::ShapeRef.new(shape: String, location_name: "ownerId"))
    DescribeFastLaunchImagesSuccessItem.add_member(:state, Shapes::ShapeRef.new(shape: FastLaunchStateCode, location_name: "state"))
    DescribeFastLaunchImagesSuccessItem.add_member(:state_transition_reason, Shapes::ShapeRef.new(shape: String, location_name: "stateTransitionReason"))
    DescribeFastLaunchImagesSuccessItem.add_member(:state_transition_time, Shapes::ShapeRef.new(shape: MillisecondDateTime, location_name: "stateTransitionTime"))
    DescribeFastLaunchImagesSuccessItem.struct_class = Types::DescribeFastLaunchImagesSuccessItem

    DescribeFastLaunchImagesSuccessSet.member = Shapes::ShapeRef.new(shape: DescribeFastLaunchImagesSuccessItem, location_name: "item")

    DescribeFastSnapshotRestoreSuccessItem.add_member(:snapshot_id, Shapes::ShapeRef.new(shape: String, location_name: "snapshotId"))
    DescribeFastSnapshotRestoreSuccessItem.add_member(:availability_zone, Shapes::ShapeRef.new(shape: String, location_name: "availabilityZone"))
    DescribeFastSnapshotRestoreSuccessItem.add_member(:state, Shapes::ShapeRef.new(shape: FastSnapshotRestoreStateCode, location_name: "state"))
    DescribeFastSnapshotRestoreSuccessItem.add_member(:state_transition_reason, Shapes::ShapeRef.new(shape: String, location_name: "stateTransitionReason"))
    DescribeFastSnapshotRestoreSuccessItem.add_member(:owner_id, Shapes::ShapeRef.new(shape: String, location_name: "ownerId"))
    DescribeFastSnapshotRestoreSuccessItem.add_member(:owner_alias, Shapes::ShapeRef.new(shape: String, location_name: "ownerAlias"))
    DescribeFastSnapshotRestoreSuccessItem.add_member(:enabling_time, Shapes::ShapeRef.new(shape: MillisecondDateTime, location_name: "enablingTime"))
    DescribeFastSnapshotRestoreSuccessItem.add_member(:optimizing_time, Shapes::ShapeRef.new(shape: MillisecondDateTime, location_name: "optimizingTime"))
    DescribeFastSnapshotRestoreSuccessItem.add_member(:enabled_time, Shapes::ShapeRef.new(shape: MillisecondDateTime, location_name: "enabledTime"))
    DescribeFastSnapshotRestoreSuccessItem.add_member(:disabling_time, Shapes::ShapeRef.new(shape: MillisecondDateTime, location_name: "disablingTime"))
    DescribeFastSnapshotRestoreSuccessItem.add_member(:disabled_time, Shapes::ShapeRef.new(shape: MillisecondDateTime, location_name: "disabledTime"))
    DescribeFastSnapshotRestoreSuccessItem.struct_class = Types::DescribeFastSnapshotRestoreSuccessItem

    DescribeFastSnapshotRestoreSuccessSet.member = Shapes::ShapeRef.new(shape: DescribeFastSnapshotRestoreSuccessItem, location_name: "item")

    DescribeFastSnapshotRestoresRequest.add_member(:filters, Shapes::ShapeRef.new(shape: FilterList, location_name: "Filter"))
    DescribeFastSnapshotRestoresRequest.add_member(:max_results, Shapes::ShapeRef.new(shape: DescribeFastSnapshotRestoresMaxResults, location_name: "MaxResults"))
    DescribeFastSnapshotRestoresRequest.add_member(:next_token, Shapes::ShapeRef.new(shape: NextToken, location_name: "NextToken"))
    DescribeFastSnapshotRestoresRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    DescribeFastSnapshotRestoresRequest.struct_class = Types::DescribeFastSnapshotRestoresRequest

    DescribeFastSnapshotRestoresResult.add_member(:fast_snapshot_restores, Shapes::ShapeRef.new(shape: DescribeFastSnapshotRestoreSuccessSet, location_name: "fastSnapshotRestoreSet"))
    DescribeFastSnapshotRestoresResult.add_member(:next_token, Shapes::ShapeRef.new(shape: NextToken, location_name: "nextToken"))
    DescribeFastSnapshotRestoresResult.struct_class = Types::DescribeFastSnapshotRestoresResult

    DescribeFleetError.add_member(:launch_template_and_overrides, Shapes::ShapeRef.new(shape: LaunchTemplateAndOverridesResponse, location_name: "launchTemplateAndOverrides"))
    DescribeFleetError.add_member(:lifecycle, Shapes::ShapeRef.new(shape: InstanceLifecycle, location_name: "lifecycle"))
    DescribeFleetError.add_member(:error_code, Shapes::ShapeRef.new(shape: String, location_name: "errorCode"))
    DescribeFleetError.add_member(:error_message, Shapes::ShapeRef.new(shape: String, location_name: "errorMessage"))
    DescribeFleetError.struct_class = Types::DescribeFleetError

    DescribeFleetHistoryRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    DescribeFleetHistoryRequest.add_member(:event_type, Shapes::ShapeRef.new(shape: FleetEventType, location_name: "EventType"))
    DescribeFleetHistoryRequest.add_member(:max_results, Shapes::ShapeRef.new(shape: Integer, location_name: "MaxResults"))
    DescribeFleetHistoryRequest.add_member(:next_token, Shapes::ShapeRef.new(shape: String, location_name: "NextToken"))
    DescribeFleetHistoryRequest.add_member(:fleet_id, Shapes::ShapeRef.new(shape: FleetId, required: true, location_name: "FleetId"))
    DescribeFleetHistoryRequest.add_member(:start_time, Shapes::ShapeRef.new(shape: DateTime, required: true, location_name: "StartTime"))
    DescribeFleetHistoryRequest.struct_class = Types::DescribeFleetHistoryRequest

    DescribeFleetHistoryResult.add_member(:history_records, Shapes::ShapeRef.new(shape: HistoryRecordSet, location_name: "historyRecordSet"))
    DescribeFleetHistoryResult.add_member(:last_evaluated_time, Shapes::ShapeRef.new(shape: DateTime, location_name: "lastEvaluatedTime"))
    DescribeFleetHistoryResult.add_member(:next_token, Shapes::ShapeRef.new(shape: String, location_name: "nextToken"))
    DescribeFleetHistoryResult.add_member(:fleet_id, Shapes::ShapeRef.new(shape: FleetId, location_name: "fleetId"))
    DescribeFleetHistoryResult.add_member(:start_time, Shapes::ShapeRef.new(shape: DateTime, location_name: "startTime"))
    DescribeFleetHistoryResult.struct_class = Types::DescribeFleetHistoryResult

    DescribeFleetInstancesRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    DescribeFleetInstancesRequest.add_member(:max_results, Shapes::ShapeRef.new(shape: Integer, location_name: "MaxResults"))
    DescribeFleetInstancesRequest.add_member(:next_token, Shapes::ShapeRef.new(shape: String, location_name: "NextToken"))
    DescribeFleetInstancesRequest.add_member(:fleet_id, Shapes::ShapeRef.new(shape: FleetId, required: true, location_name: "FleetId"))
    DescribeFleetInstancesRequest.add_member(:filters, Shapes::ShapeRef.new(shape: FilterList, location_name: "Filter"))
    DescribeFleetInstancesRequest.struct_class = Types::DescribeFleetInstancesRequest

    DescribeFleetInstancesResult.add_member(:active_instances, Shapes::ShapeRef.new(shape: ActiveInstanceSet, location_name: "activeInstanceSet"))
    DescribeFleetInstancesResult.add_member(:next_token, Shapes::ShapeRef.new(shape: String, location_name: "nextToken"))
    DescribeFleetInstancesResult.add_member(:fleet_id, Shapes::ShapeRef.new(shape: FleetId, location_name: "fleetId"))
    DescribeFleetInstancesResult.struct_class = Types::DescribeFleetInstancesResult

    DescribeFleetsErrorSet.member = Shapes::ShapeRef.new(shape: DescribeFleetError, location_name: "item")

    DescribeFleetsInstances.add_member(:launch_template_and_overrides, Shapes::ShapeRef.new(shape: LaunchTemplateAndOverridesResponse, location_name: "launchTemplateAndOverrides"))
    DescribeFleetsInstances.add_member(:lifecycle, Shapes::ShapeRef.new(shape: InstanceLifecycle, location_name: "lifecycle"))
    DescribeFleetsInstances.add_member(:instance_ids, Shapes::ShapeRef.new(shape: InstanceIdsSet, location_name: "instanceIds"))
    DescribeFleetsInstances.add_member(:instance_type, Shapes::ShapeRef.new(shape: InstanceType, location_name: "instanceType"))
    DescribeFleetsInstances.add_member(:platform, Shapes::ShapeRef.new(shape: PlatformValues, location_name: "platform"))
    DescribeFleetsInstances.struct_class = Types::DescribeFleetsInstances

    DescribeFleetsInstancesSet.member = Shapes::ShapeRef.new(shape: DescribeFleetsInstances, location_name: "item")

    DescribeFleetsRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    DescribeFleetsRequest.add_member(:max_results, Shapes::ShapeRef.new(shape: Integer, location_name: "MaxResults"))
    DescribeFleetsRequest.add_member(:next_token, Shapes::ShapeRef.new(shape: String, location_name: "NextToken"))
    DescribeFleetsRequest.add_member(:fleet_ids, Shapes::ShapeRef.new(shape: FleetIdSet, location_name: "FleetId"))
    DescribeFleetsRequest.add_member(:filters, Shapes::ShapeRef.new(shape: FilterList, location_name: "Filter"))
    DescribeFleetsRequest.struct_class = Types::DescribeFleetsRequest

    DescribeFleetsResult.add_member(:next_token, Shapes::ShapeRef.new(shape: String, location_name: "nextToken"))
    DescribeFleetsResult.add_member(:fleets, Shapes::ShapeRef.new(shape: FleetSet, location_name: "fleetSet"))
    DescribeFleetsResult.struct_class = Types::DescribeFleetsResult

    DescribeFlowLogsRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    DescribeFlowLogsRequest.add_member(:filter, Shapes::ShapeRef.new(shape: FilterList, location_name: "Filter"))
    DescribeFlowLogsRequest.add_member(:flow_log_ids, Shapes::ShapeRef.new(shape: FlowLogIdList, location_name: "FlowLogId"))
    DescribeFlowLogsRequest.add_member(:max_results, Shapes::ShapeRef.new(shape: Integer, location_name: "MaxResults"))
    DescribeFlowLogsRequest.add_member(:next_token, Shapes::ShapeRef.new(shape: String, location_name: "NextToken"))
    DescribeFlowLogsRequest.struct_class = Types::DescribeFlowLogsRequest

    DescribeFlowLogsResult.add_member(:flow_logs, Shapes::ShapeRef.new(shape: FlowLogSet, location_name: "flowLogSet"))
    DescribeFlowLogsResult.add_member(:next_token, Shapes::ShapeRef.new(shape: String, location_name: "nextToken"))
    DescribeFlowLogsResult.struct_class = Types::DescribeFlowLogsResult

    DescribeFpgaImageAttributeRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    DescribeFpgaImageAttributeRequest.add_member(:fpga_image_id, Shapes::ShapeRef.new(shape: FpgaImageId, required: true, location_name: "FpgaImageId"))
    DescribeFpgaImageAttributeRequest.add_member(:attribute, Shapes::ShapeRef.new(shape: FpgaImageAttributeName, required: true, location_name: "Attribute"))
    DescribeFpgaImageAttributeRequest.struct_class = Types::DescribeFpgaImageAttributeRequest

    DescribeFpgaImageAttributeResult.add_member(:fpga_image_attribute, Shapes::ShapeRef.new(shape: FpgaImageAttribute, location_name: "fpgaImageAttribute"))
    DescribeFpgaImageAttributeResult.struct_class = Types::DescribeFpgaImageAttributeResult

    DescribeFpgaImagesRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    DescribeFpgaImagesRequest.add_member(:fpga_image_ids, Shapes::ShapeRef.new(shape: FpgaImageIdList, location_name: "FpgaImageId"))
    DescribeFpgaImagesRequest.add_member(:owners, Shapes::ShapeRef.new(shape: OwnerStringList, location_name: "Owner"))
    DescribeFpgaImagesRequest.add_member(:filters, Shapes::ShapeRef.new(shape: FilterList, location_name: "Filter"))
    DescribeFpgaImagesRequest.add_member(:next_token, Shapes::ShapeRef.new(shape: NextToken, location_name: "NextToken"))
    DescribeFpgaImagesRequest.add_member(:max_results, Shapes::ShapeRef.new(shape: DescribeFpgaImagesMaxResults, location_name: "MaxResults"))
    DescribeFpgaImagesRequest.struct_class = Types::DescribeFpgaImagesRequest

    DescribeFpgaImagesResult.add_member(:fpga_images, Shapes::ShapeRef.new(shape: FpgaImageList, location_name: "fpgaImageSet"))
    DescribeFpgaImagesResult.add_member(:next_token, Shapes::ShapeRef.new(shape: NextToken, location_name: "nextToken"))
    DescribeFpgaImagesResult.struct_class = Types::DescribeFpgaImagesResult

    DescribeHostReservationOfferingsRequest.add_member(:filter, Shapes::ShapeRef.new(shape: FilterList, location_name: "Filter"))
    DescribeHostReservationOfferingsRequest.add_member(:max_duration, Shapes::ShapeRef.new(shape: Integer, location_name: "MaxDuration"))
    DescribeHostReservationOfferingsRequest.add_member(:max_results, Shapes::ShapeRef.new(shape: DescribeHostReservationsMaxResults, location_name: "MaxResults"))
    DescribeHostReservationOfferingsRequest.add_member(:min_duration, Shapes::ShapeRef.new(shape: Integer, location_name: "MinDuration"))
    DescribeHostReservationOfferingsRequest.add_member(:next_token, Shapes::ShapeRef.new(shape: String, location_name: "NextToken"))
    DescribeHostReservationOfferingsRequest.add_member(:offering_id, Shapes::ShapeRef.new(shape: OfferingId, location_name: "OfferingId"))
    DescribeHostReservationOfferingsRequest.struct_class = Types::DescribeHostReservationOfferingsRequest

    DescribeHostReservationOfferingsResult.add_member(:next_token, Shapes::ShapeRef.new(shape: String, location_name: "nextToken"))
    DescribeHostReservationOfferingsResult.add_member(:offering_set, Shapes::ShapeRef.new(shape: HostOfferingSet, location_name: "offeringSet"))
    DescribeHostReservationOfferingsResult.struct_class = Types::DescribeHostReservationOfferingsResult

    DescribeHostReservationsRequest.add_member(:filter, Shapes::ShapeRef.new(shape: FilterList, location_name: "Filter"))
    DescribeHostReservationsRequest.add_member(:host_reservation_id_set, Shapes::ShapeRef.new(shape: HostReservationIdSet, location_name: "HostReservationIdSet"))
    DescribeHostReservationsRequest.add_member(:max_results, Shapes::ShapeRef.new(shape: Integer, location_name: "MaxResults"))
    DescribeHostReservationsRequest.add_member(:next_token, Shapes::ShapeRef.new(shape: String, location_name: "NextToken"))
    DescribeHostReservationsRequest.struct_class = Types::DescribeHostReservationsRequest

    DescribeHostReservationsResult.add_member(:host_reservation_set, Shapes::ShapeRef.new(shape: HostReservationSet, location_name: "hostReservationSet"))
    DescribeHostReservationsResult.add_member(:next_token, Shapes::ShapeRef.new(shape: String, location_name: "nextToken"))
    DescribeHostReservationsResult.struct_class = Types::DescribeHostReservationsResult

    DescribeHostsRequest.add_member(:host_ids, Shapes::ShapeRef.new(shape: RequestHostIdList, location_name: "hostId"))
    DescribeHostsRequest.add_member(:next_token, Shapes::ShapeRef.new(shape: String, location_name: "nextToken"))
    DescribeHostsRequest.add_member(:max_results, Shapes::ShapeRef.new(shape: Integer, location_name: "maxResults"))
    DescribeHostsRequest.add_member(:filter, Shapes::ShapeRef.new(shape: FilterList, location_name: "filter"))
    DescribeHostsRequest.struct_class = Types::DescribeHostsRequest

    DescribeHostsResult.add_member(:hosts, Shapes::ShapeRef.new(shape: HostList, location_name: "hostSet"))
    DescribeHostsResult.add_member(:next_token, Shapes::ShapeRef.new(shape: String, location_name: "nextToken"))
    DescribeHostsResult.struct_class = Types::DescribeHostsResult

    DescribeIamInstanceProfileAssociationsRequest.add_member(:association_ids, Shapes::ShapeRef.new(shape: AssociationIdList, location_name: "AssociationId"))
    DescribeIamInstanceProfileAssociationsRequest.add_member(:filters, Shapes::ShapeRef.new(shape: FilterList, location_name: "Filter"))
    DescribeIamInstanceProfileAssociationsRequest.add_member(:max_results, Shapes::ShapeRef.new(shape: DescribeIamInstanceProfileAssociationsMaxResults, location_name: "MaxResults"))
    DescribeIamInstanceProfileAssociationsRequest.add_member(:next_token, Shapes::ShapeRef.new(shape: NextToken, location_name: "NextToken"))
    DescribeIamInstanceProfileAssociationsRequest.struct_class = Types::DescribeIamInstanceProfileAssociationsRequest

    DescribeIamInstanceProfileAssociationsResult.add_member(:iam_instance_profile_associations, Shapes::ShapeRef.new(shape: IamInstanceProfileAssociationSet, location_name: "iamInstanceProfileAssociationSet"))
    DescribeIamInstanceProfileAssociationsResult.add_member(:next_token, Shapes::ShapeRef.new(shape: NextToken, location_name: "nextToken"))
    DescribeIamInstanceProfileAssociationsResult.struct_class = Types::DescribeIamInstanceProfileAssociationsResult

    DescribeIdFormatRequest.add_member(:resource, Shapes::ShapeRef.new(shape: String, location_name: "Resource"))
    DescribeIdFormatRequest.struct_class = Types::DescribeIdFormatRequest

    DescribeIdFormatResult.add_member(:statuses, Shapes::ShapeRef.new(shape: IdFormatList, location_name: "statusSet"))
    DescribeIdFormatResult.struct_class = Types::DescribeIdFormatResult

    DescribeIdentityIdFormatRequest.add_member(:resource, Shapes::ShapeRef.new(shape: String, location_name: "resource"))
    DescribeIdentityIdFormatRequest.add_member(:principal_arn, Shapes::ShapeRef.new(shape: String, required: true, location_name: "principalArn"))
    DescribeIdentityIdFormatRequest.struct_class = Types::DescribeIdentityIdFormatRequest

    DescribeIdentityIdFormatResult.add_member(:statuses, Shapes::ShapeRef.new(shape: IdFormatList, location_name: "statusSet"))
    DescribeIdentityIdFormatResult.struct_class = Types::DescribeIdentityIdFormatResult

    DescribeImageAttributeRequest.add_member(:attribute, Shapes::ShapeRef.new(shape: ImageAttributeName, required: true, location_name: "Attribute"))
    DescribeImageAttributeRequest.add_member(:image_id, Shapes::ShapeRef.new(shape: ImageId, required: true, location_name: "ImageId"))
    DescribeImageAttributeRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "dryRun"))
    DescribeImageAttributeRequest.struct_class = Types::DescribeImageAttributeRequest

    DescribeImagesRequest.add_member(:executable_users, Shapes::ShapeRef.new(shape: ExecutableByStringList, location_name: "ExecutableBy"))
    DescribeImagesRequest.add_member(:image_ids, Shapes::ShapeRef.new(shape: ImageIdStringList, location_name: "ImageId"))
    DescribeImagesRequest.add_member(:owners, Shapes::ShapeRef.new(shape: OwnerStringList, location_name: "Owner"))
    DescribeImagesRequest.add_member(:include_deprecated, Shapes::ShapeRef.new(shape: Boolean, location_name: "IncludeDeprecated"))
    DescribeImagesRequest.add_member(:include_disabled, Shapes::ShapeRef.new(shape: Boolean, location_name: "IncludeDisabled"))
    DescribeImagesRequest.add_member(:max_results, Shapes::ShapeRef.new(shape: Integer, location_name: "MaxResults"))
    DescribeImagesRequest.add_member(:next_token, Shapes::ShapeRef.new(shape: String, location_name: "NextToken"))
    DescribeImagesRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "dryRun"))
    DescribeImagesRequest.add_member(:filters, Shapes::ShapeRef.new(shape: FilterList, location_name: "Filter"))
    DescribeImagesRequest.struct_class = Types::DescribeImagesRequest

    DescribeImagesResult.add_member(:next_token, Shapes::ShapeRef.new(shape: String, location_name: "nextToken"))
    DescribeImagesResult.add_member(:images, Shapes::ShapeRef.new(shape: ImageList, location_name: "imagesSet"))
    DescribeImagesResult.struct_class = Types::DescribeImagesResult

    DescribeImportImageTasksRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    DescribeImportImageTasksRequest.add_member(:filters, Shapes::ShapeRef.new(shape: FilterList, location_name: "Filters"))
    DescribeImportImageTasksRequest.add_member(:import_task_ids, Shapes::ShapeRef.new(shape: ImportTaskIdList, location_name: "ImportTaskId"))
    DescribeImportImageTasksRequest.add_member(:max_results, Shapes::ShapeRef.new(shape: Integer, location_name: "MaxResults"))
    DescribeImportImageTasksRequest.add_member(:next_token, Shapes::ShapeRef.new(shape: String, location_name: "NextToken"))
    DescribeImportImageTasksRequest.struct_class = Types::DescribeImportImageTasksRequest

    DescribeImportImageTasksResult.add_member(:import_image_tasks, Shapes::ShapeRef.new(shape: ImportImageTaskList, location_name: "importImageTaskSet"))
    DescribeImportImageTasksResult.add_member(:next_token, Shapes::ShapeRef.new(shape: String, location_name: "nextToken"))
    DescribeImportImageTasksResult.struct_class = Types::DescribeImportImageTasksResult

    DescribeImportSnapshotTasksRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    DescribeImportSnapshotTasksRequest.add_member(:filters, Shapes::ShapeRef.new(shape: FilterList, location_name: "Filters"))
    DescribeImportSnapshotTasksRequest.add_member(:import_task_ids, Shapes::ShapeRef.new(shape: ImportSnapshotTaskIdList, location_name: "ImportTaskId"))
    DescribeImportSnapshotTasksRequest.add_member(:max_results, Shapes::ShapeRef.new(shape: Integer, location_name: "MaxResults"))
    DescribeImportSnapshotTasksRequest.add_member(:next_token, Shapes::ShapeRef.new(shape: String, location_name: "NextToken"))
    DescribeImportSnapshotTasksRequest.struct_class = Types::DescribeImportSnapshotTasksRequest

    DescribeImportSnapshotTasksResult.add_member(:import_snapshot_tasks, Shapes::ShapeRef.new(shape: ImportSnapshotTaskList, location_name: "importSnapshotTaskSet"))
    DescribeImportSnapshotTasksResult.add_member(:next_token, Shapes::ShapeRef.new(shape: String, location_name: "nextToken"))
    DescribeImportSnapshotTasksResult.struct_class = Types::DescribeImportSnapshotTasksResult

    DescribeInstanceAttributeRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "dryRun"))
    DescribeInstanceAttributeRequest.add_member(:instance_id, Shapes::ShapeRef.new(shape: InstanceId, required: true, location_name: "instanceId"))
    DescribeInstanceAttributeRequest.add_member(:attribute, Shapes::ShapeRef.new(shape: InstanceAttributeName, required: true, location_name: "attribute"))
    DescribeInstanceAttributeRequest.struct_class = Types::DescribeInstanceAttributeRequest

    DescribeInstanceConnectEndpointsRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    DescribeInstanceConnectEndpointsRequest.add_member(:max_results, Shapes::ShapeRef.new(shape: InstanceConnectEndpointMaxResults, location_name: "MaxResults"))
    DescribeInstanceConnectEndpointsRequest.add_member(:next_token, Shapes::ShapeRef.new(shape: NextToken, location_name: "NextToken"))
    DescribeInstanceConnectEndpointsRequest.add_member(:filters, Shapes::ShapeRef.new(shape: FilterList, location_name: "Filter"))
    DescribeInstanceConnectEndpointsRequest.add_member(:instance_connect_endpoint_ids, Shapes::ShapeRef.new(shape: ValueStringList, location_name: "InstanceConnectEndpointId"))
    DescribeInstanceConnectEndpointsRequest.struct_class = Types::DescribeInstanceConnectEndpointsRequest

    DescribeInstanceConnectEndpointsResult.add_member(:instance_connect_endpoints, Shapes::ShapeRef.new(shape: InstanceConnectEndpointSet, location_name: "instanceConnectEndpointSet"))
    DescribeInstanceConnectEndpointsResult.add_member(:next_token, Shapes::ShapeRef.new(shape: NextToken, location_name: "nextToken"))
    DescribeInstanceConnectEndpointsResult.struct_class = Types::DescribeInstanceConnectEndpointsResult

    DescribeInstanceCreditSpecificationsRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    DescribeInstanceCreditSpecificationsRequest.add_member(:filters, Shapes::ShapeRef.new(shape: FilterList, location_name: "Filter"))
    DescribeInstanceCreditSpecificationsRequest.add_member(:instance_ids, Shapes::ShapeRef.new(shape: InstanceIdStringList, location_name: "InstanceId"))
    DescribeInstanceCreditSpecificationsRequest.add_member(:max_results, Shapes::ShapeRef.new(shape: DescribeInstanceCreditSpecificationsMaxResults, location_name: "MaxResults"))
    DescribeInstanceCreditSpecificationsRequest.add_member(:next_token, Shapes::ShapeRef.new(shape: String, location_name: "NextToken"))
    DescribeInstanceCreditSpecificationsRequest.struct_class = Types::DescribeInstanceCreditSpecificationsRequest

    DescribeInstanceCreditSpecificationsResult.add_member(:instance_credit_specifications, Shapes::ShapeRef.new(shape: InstanceCreditSpecificationList, location_name: "instanceCreditSpecificationSet"))
    DescribeInstanceCreditSpecificationsResult.add_member(:next_token, Shapes::ShapeRef.new(shape: String, location_name: "nextToken"))
    DescribeInstanceCreditSpecificationsResult.struct_class = Types::DescribeInstanceCreditSpecificationsResult

    DescribeInstanceEventNotificationAttributesRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    DescribeInstanceEventNotificationAttributesRequest.struct_class = Types::DescribeInstanceEventNotificationAttributesRequest

    DescribeInstanceEventNotificationAttributesResult.add_member(:instance_tag_attribute, Shapes::ShapeRef.new(shape: InstanceTagNotificationAttribute, location_name: "instanceTagAttribute"))
    DescribeInstanceEventNotificationAttributesResult.struct_class = Types::DescribeInstanceEventNotificationAttributesResult

    DescribeInstanceEventWindowsRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    DescribeInstanceEventWindowsRequest.add_member(:instance_event_window_ids, Shapes::ShapeRef.new(shape: InstanceEventWindowIdSet, location_name: "InstanceEventWindowId"))
    DescribeInstanceEventWindowsRequest.add_member(:filters, Shapes::ShapeRef.new(shape: FilterList, location_name: "Filter"))
    DescribeInstanceEventWindowsRequest.add_member(:max_results, Shapes::ShapeRef.new(shape: ResultRange, location_name: "MaxResults"))
    DescribeInstanceEventWindowsRequest.add_member(:next_token, Shapes::ShapeRef.new(shape: String, location_name: "NextToken"))
    DescribeInstanceEventWindowsRequest.struct_class = Types::DescribeInstanceEventWindowsRequest

    DescribeInstanceEventWindowsResult.add_member(:instance_event_windows, Shapes::ShapeRef.new(shape: InstanceEventWindowSet, location_name: "instanceEventWindowSet"))
    DescribeInstanceEventWindowsResult.add_member(:next_token, Shapes::ShapeRef.new(shape: String, location_name: "nextToken"))
    DescribeInstanceEventWindowsResult.struct_class = Types::DescribeInstanceEventWindowsResult

    DescribeInstanceImageMetadataRequest.add_member(:filters, Shapes::ShapeRef.new(shape: FilterList, location_name: "Filter"))
    DescribeInstanceImageMetadataRequest.add_member(:instance_ids, Shapes::ShapeRef.new(shape: InstanceIdStringList, location_name: "InstanceId"))
    DescribeInstanceImageMetadataRequest.add_member(:max_results, Shapes::ShapeRef.new(shape: DescribeInstanceImageMetadataMaxResults, location_name: "MaxResults"))
    DescribeInstanceImageMetadataRequest.add_member(:next_token, Shapes::ShapeRef.new(shape: String, location_name: "NextToken"))
    DescribeInstanceImageMetadataRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    DescribeInstanceImageMetadataRequest.struct_class = Types::DescribeInstanceImageMetadataRequest

    DescribeInstanceImageMetadataResult.add_member(:instance_image_metadata, Shapes::ShapeRef.new(shape: InstanceImageMetadataList, location_name: "instanceImageMetadataSet"))
    DescribeInstanceImageMetadataResult.add_member(:next_token, Shapes::ShapeRef.new(shape: String, location_name: "nextToken"))
    DescribeInstanceImageMetadataResult.struct_class = Types::DescribeInstanceImageMetadataResult

    DescribeInstanceStatusRequest.add_member(:instance_ids, Shapes::ShapeRef.new(shape: InstanceIdStringList, location_name: "InstanceId"))
    DescribeInstanceStatusRequest.add_member(:max_results, Shapes::ShapeRef.new(shape: Integer, location_name: "MaxResults"))
    DescribeInstanceStatusRequest.add_member(:next_token, Shapes::ShapeRef.new(shape: String, location_name: "NextToken"))
    DescribeInstanceStatusRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "dryRun"))
    DescribeInstanceStatusRequest.add_member(:filters, Shapes::ShapeRef.new(shape: FilterList, location_name: "Filter"))
    DescribeInstanceStatusRequest.add_member(:include_all_instances, Shapes::ShapeRef.new(shape: Boolean, location_name: "includeAllInstances"))
    DescribeInstanceStatusRequest.struct_class = Types::DescribeInstanceStatusRequest

    DescribeInstanceStatusResult.add_member(:instance_statuses, Shapes::ShapeRef.new(shape: InstanceStatusList, location_name: "instanceStatusSet"))
    DescribeInstanceStatusResult.add_member(:next_token, Shapes::ShapeRef.new(shape: String, location_name: "nextToken"))
    DescribeInstanceStatusResult.struct_class = Types::DescribeInstanceStatusResult

    DescribeInstanceTopologyGroupNameSet.member = Shapes::ShapeRef.new(shape: PlacementGroupName)

    DescribeInstanceTopologyInstanceIdSet.member = Shapes::ShapeRef.new(shape: InstanceId)

    DescribeInstanceTopologyRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    DescribeInstanceTopologyRequest.add_member(:next_token, Shapes::ShapeRef.new(shape: String, location_name: "NextToken"))
    DescribeInstanceTopologyRequest.add_member(:max_results, Shapes::ShapeRef.new(shape: DescribeInstanceTopologyMaxResults, location_name: "MaxResults"))
    DescribeInstanceTopologyRequest.add_member(:instance_ids, Shapes::ShapeRef.new(shape: DescribeInstanceTopologyInstanceIdSet, location_name: "InstanceId"))
    DescribeInstanceTopologyRequest.add_member(:group_names, Shapes::ShapeRef.new(shape: DescribeInstanceTopologyGroupNameSet, location_name: "GroupName"))
    DescribeInstanceTopologyRequest.add_member(:filters, Shapes::ShapeRef.new(shape: FilterList, location_name: "Filter"))
    DescribeInstanceTopologyRequest.struct_class = Types::DescribeInstanceTopologyRequest

    DescribeInstanceTopologyResult.add_member(:instances, Shapes::ShapeRef.new(shape: InstanceSet, location_name: "instanceSet"))
    DescribeInstanceTopologyResult.add_member(:next_token, Shapes::ShapeRef.new(shape: String, location_name: "nextToken"))
    DescribeInstanceTopologyResult.struct_class = Types::DescribeInstanceTopologyResult

    DescribeInstanceTypeOfferingsRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    DescribeInstanceTypeOfferingsRequest.add_member(:location_type, Shapes::ShapeRef.new(shape: LocationType, location_name: "LocationType"))
    DescribeInstanceTypeOfferingsRequest.add_member(:filters, Shapes::ShapeRef.new(shape: FilterList, location_name: "Filter"))
    DescribeInstanceTypeOfferingsRequest.add_member(:max_results, Shapes::ShapeRef.new(shape: DITOMaxResults, location_name: "MaxResults"))
    DescribeInstanceTypeOfferingsRequest.add_member(:next_token, Shapes::ShapeRef.new(shape: NextToken, location_name: "NextToken"))
    DescribeInstanceTypeOfferingsRequest.struct_class = Types::DescribeInstanceTypeOfferingsRequest

    DescribeInstanceTypeOfferingsResult.add_member(:instance_type_offerings, Shapes::ShapeRef.new(shape: InstanceTypeOfferingsList, location_name: "instanceTypeOfferingSet"))
    DescribeInstanceTypeOfferingsResult.add_member(:next_token, Shapes::ShapeRef.new(shape: NextToken, location_name: "nextToken"))
    DescribeInstanceTypeOfferingsResult.struct_class = Types::DescribeInstanceTypeOfferingsResult

    DescribeInstanceTypesRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    DescribeInstanceTypesRequest.add_member(:instance_types, Shapes::ShapeRef.new(shape: RequestInstanceTypeList, location_name: "InstanceType"))
    DescribeInstanceTypesRequest.add_member(:filters, Shapes::ShapeRef.new(shape: FilterList, location_name: "Filter"))
    DescribeInstanceTypesRequest.add_member(:max_results, Shapes::ShapeRef.new(shape: DITMaxResults, location_name: "MaxResults"))
    DescribeInstanceTypesRequest.add_member(:next_token, Shapes::ShapeRef.new(shape: NextToken, location_name: "NextToken"))
    DescribeInstanceTypesRequest.struct_class = Types::DescribeInstanceTypesRequest

    DescribeInstanceTypesResult.add_member(:instance_types, Shapes::ShapeRef.new(shape: InstanceTypeInfoList, location_name: "instanceTypeSet"))
    DescribeInstanceTypesResult.add_member(:next_token, Shapes::ShapeRef.new(shape: NextToken, location_name: "nextToken"))
    DescribeInstanceTypesResult.struct_class = Types::DescribeInstanceTypesResult

    DescribeInstancesRequest.add_member(:instance_ids, Shapes::ShapeRef.new(shape: InstanceIdStringList, location_name: "InstanceId"))
    DescribeInstancesRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "dryRun"))
    DescribeInstancesRequest.add_member(:filters, Shapes::ShapeRef.new(shape: FilterList, location_name: "Filter"))
    DescribeInstancesRequest.add_member(:next_token, Shapes::ShapeRef.new(shape: String, location_name: "nextToken"))
    DescribeInstancesRequest.add_member(:max_results, Shapes::ShapeRef.new(shape: Integer, location_name: "maxResults"))
    DescribeInstancesRequest.struct_class = Types::DescribeInstancesRequest

    DescribeInstancesResult.add_member(:next_token, Shapes::ShapeRef.new(shape: String, location_name: "nextToken"))
    DescribeInstancesResult.add_member(:reservations, Shapes::ShapeRef.new(shape: ReservationList, location_name: "reservationSet"))
    DescribeInstancesResult.struct_class = Types::DescribeInstancesResult

    DescribeInternetGatewaysRequest.add_member(:next_token, Shapes::ShapeRef.new(shape: String, location_name: "NextToken"))
    DescribeInternetGatewaysRequest.add_member(:max_results, Shapes::ShapeRef.new(shape: DescribeInternetGatewaysMaxResults, location_name: "MaxResults"))
    DescribeInternetGatewaysRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "dryRun"))
    DescribeInternetGatewaysRequest.add_member(:internet_gateway_ids, Shapes::ShapeRef.new(shape: InternetGatewayIdList, location_name: "internetGatewayId"))
    DescribeInternetGatewaysRequest.add_member(:filters, Shapes::ShapeRef.new(shape: FilterList, location_name: "Filter"))
    DescribeInternetGatewaysRequest.struct_class = Types::DescribeInternetGatewaysRequest

    DescribeInternetGatewaysResult.add_member(:internet_gateways, Shapes::ShapeRef.new(shape: InternetGatewayList, location_name: "internetGatewaySet"))
    DescribeInternetGatewaysResult.add_member(:next_token, Shapes::ShapeRef.new(shape: String, location_name: "nextToken"))
    DescribeInternetGatewaysResult.struct_class = Types::DescribeInternetGatewaysResult

    DescribeIpamByoasnRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    DescribeIpamByoasnRequest.add_member(:max_results, Shapes::ShapeRef.new(shape: DescribeIpamByoasnMaxResults, location_name: "MaxResults"))
    DescribeIpamByoasnRequest.add_member(:next_token, Shapes::ShapeRef.new(shape: NextToken, location_name: "NextToken"))
    DescribeIpamByoasnRequest.struct_class = Types::DescribeIpamByoasnRequest

    DescribeIpamByoasnResult.add_member(:byoasns, Shapes::ShapeRef.new(shape: ByoasnSet, location_name: "byoasnSet"))
    DescribeIpamByoasnResult.add_member(:next_token, Shapes::ShapeRef.new(shape: String, location_name: "nextToken"))
    DescribeIpamByoasnResult.struct_class = Types::DescribeIpamByoasnResult

    DescribeIpamExternalResourceVerificationTokensRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    DescribeIpamExternalResourceVerificationTokensRequest.add_member(:filters, Shapes::ShapeRef.new(shape: FilterList, location_name: "Filter"))
    DescribeIpamExternalResourceVerificationTokensRequest.add_member(:next_token, Shapes::ShapeRef.new(shape: NextToken, location_name: "NextToken"))
    DescribeIpamExternalResourceVerificationTokensRequest.add_member(:max_results, Shapes::ShapeRef.new(shape: IpamMaxResults, location_name: "MaxResults"))
    DescribeIpamExternalResourceVerificationTokensRequest.add_member(:ipam_external_resource_verification_token_ids, Shapes::ShapeRef.new(shape: ValueStringList, location_name: "IpamExternalResourceVerificationTokenId"))
    DescribeIpamExternalResourceVerificationTokensRequest.struct_class = Types::DescribeIpamExternalResourceVerificationTokensRequest

    DescribeIpamExternalResourceVerificationTokensResult.add_member(:next_token, Shapes::ShapeRef.new(shape: NextToken, location_name: "nextToken"))
    DescribeIpamExternalResourceVerificationTokensResult.add_member(:ipam_external_resource_verification_tokens, Shapes::ShapeRef.new(shape: IpamExternalResourceVerificationTokenSet, location_name: "ipamExternalResourceVerificationTokenSet"))
    DescribeIpamExternalResourceVerificationTokensResult.struct_class = Types::DescribeIpamExternalResourceVerificationTokensResult

    DescribeIpamPoolsRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    DescribeIpamPoolsRequest.add_member(:filters, Shapes::ShapeRef.new(shape: FilterList, location_name: "Filter"))
    DescribeIpamPoolsRequest.add_member(:max_results, Shapes::ShapeRef.new(shape: IpamMaxResults, location_name: "MaxResults"))
    DescribeIpamPoolsRequest.add_member(:next_token, Shapes::ShapeRef.new(shape: NextToken, location_name: "NextToken"))
    DescribeIpamPoolsRequest.add_member(:ipam_pool_ids, Shapes::ShapeRef.new(shape: ValueStringList, location_name: "IpamPoolId"))
    DescribeIpamPoolsRequest.struct_class = Types::DescribeIpamPoolsRequest

    DescribeIpamPoolsResult.add_member(:next_token, Shapes::ShapeRef.new(shape: NextToken, location_name: "nextToken"))
    DescribeIpamPoolsResult.add_member(:ipam_pools, Shapes::ShapeRef.new(shape: IpamPoolSet, location_name: "ipamPoolSet"))
    DescribeIpamPoolsResult.struct_class = Types::DescribeIpamPoolsResult

    DescribeIpamResourceDiscoveriesRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    DescribeIpamResourceDiscoveriesRequest.add_member(:ipam_resource_discovery_ids, Shapes::ShapeRef.new(shape: ValueStringList, location_name: "IpamResourceDiscoveryId"))
    DescribeIpamResourceDiscoveriesRequest.add_member(:next_token, Shapes::ShapeRef.new(shape: NextToken, location_name: "NextToken"))
    DescribeIpamResourceDiscoveriesRequest.add_member(:max_results, Shapes::ShapeRef.new(shape: IpamMaxResults, location_name: "MaxResults"))
    DescribeIpamResourceDiscoveriesRequest.add_member(:filters, Shapes::ShapeRef.new(shape: FilterList, location_name: "Filter"))
    DescribeIpamResourceDiscoveriesRequest.struct_class = Types::DescribeIpamResourceDiscoveriesRequest

    DescribeIpamResourceDiscoveriesResult.add_member(:ipam_resource_discoveries, Shapes::ShapeRef.new(shape: IpamResourceDiscoverySet, location_name: "ipamResourceDiscoverySet"))
    DescribeIpamResourceDiscoveriesResult.add_member(:next_token, Shapes::ShapeRef.new(shape: NextToken, location_name: "nextToken"))
    DescribeIpamResourceDiscoveriesResult.struct_class = Types::DescribeIpamResourceDiscoveriesResult

    DescribeIpamResourceDiscoveryAssociationsRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    DescribeIpamResourceDiscoveryAssociationsRequest.add_member(:ipam_resource_discovery_association_ids, Shapes::ShapeRef.new(shape: ValueStringList, location_name: "IpamResourceDiscoveryAssociationId"))
    DescribeIpamResourceDiscoveryAssociationsRequest.add_member(:next_token, Shapes::ShapeRef.new(shape: NextToken, location_name: "NextToken"))
    DescribeIpamResourceDiscoveryAssociationsRequest.add_member(:max_results, Shapes::ShapeRef.new(shape: IpamMaxResults, location_name: "MaxResults"))
    DescribeIpamResourceDiscoveryAssociationsRequest.add_member(:filters, Shapes::ShapeRef.new(shape: FilterList, location_name: "Filter"))
    DescribeIpamResourceDiscoveryAssociationsRequest.struct_class = Types::DescribeIpamResourceDiscoveryAssociationsRequest

    DescribeIpamResourceDiscoveryAssociationsResult.add_member(:ipam_resource_discovery_associations, Shapes::ShapeRef.new(shape: IpamResourceDiscoveryAssociationSet, location_name: "ipamResourceDiscoveryAssociationSet"))
    DescribeIpamResourceDiscoveryAssociationsResult.add_member(:next_token, Shapes::ShapeRef.new(shape: NextToken, location_name: "nextToken"))
    DescribeIpamResourceDiscoveryAssociationsResult.struct_class = Types::DescribeIpamResourceDiscoveryAssociationsResult

    DescribeIpamScopesRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    DescribeIpamScopesRequest.add_member(:filters, Shapes::ShapeRef.new(shape: FilterList, location_name: "Filter"))
    DescribeIpamScopesRequest.add_member(:max_results, Shapes::ShapeRef.new(shape: IpamMaxResults, location_name: "MaxResults"))
    DescribeIpamScopesRequest.add_member(:next_token, Shapes::ShapeRef.new(shape: NextToken, location_name: "NextToken"))
    DescribeIpamScopesRequest.add_member(:ipam_scope_ids, Shapes::ShapeRef.new(shape: ValueStringList, location_name: "IpamScopeId"))
    DescribeIpamScopesRequest.struct_class = Types::DescribeIpamScopesRequest

    DescribeIpamScopesResult.add_member(:next_token, Shapes::ShapeRef.new(shape: NextToken, location_name: "nextToken"))
    DescribeIpamScopesResult.add_member(:ipam_scopes, Shapes::ShapeRef.new(shape: IpamScopeSet, location_name: "ipamScopeSet"))
    DescribeIpamScopesResult.struct_class = Types::DescribeIpamScopesResult

    DescribeIpamsRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    DescribeIpamsRequest.add_member(:filters, Shapes::ShapeRef.new(shape: FilterList, location_name: "Filter"))
    DescribeIpamsRequest.add_member(:max_results, Shapes::ShapeRef.new(shape: IpamMaxResults, location_name: "MaxResults"))
    DescribeIpamsRequest.add_member(:next_token, Shapes::ShapeRef.new(shape: NextToken, location_name: "NextToken"))
    DescribeIpamsRequest.add_member(:ipam_ids, Shapes::ShapeRef.new(shape: ValueStringList, location_name: "IpamId"))
    DescribeIpamsRequest.struct_class = Types::DescribeIpamsRequest

    DescribeIpamsResult.add_member(:next_token, Shapes::ShapeRef.new(shape: NextToken, location_name: "nextToken"))
    DescribeIpamsResult.add_member(:ipams, Shapes::ShapeRef.new(shape: IpamSet, location_name: "ipamSet"))
    DescribeIpamsResult.struct_class = Types::DescribeIpamsResult

    DescribeIpv6PoolsRequest.add_member(:pool_ids, Shapes::ShapeRef.new(shape: Ipv6PoolIdList, location_name: "PoolId"))
    DescribeIpv6PoolsRequest.add_member(:next_token, Shapes::ShapeRef.new(shape: NextToken, location_name: "NextToken"))
    DescribeIpv6PoolsRequest.add_member(:max_results, Shapes::ShapeRef.new(shape: Ipv6PoolMaxResults, location_name: "MaxResults"))
    DescribeIpv6PoolsRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    DescribeIpv6PoolsRequest.add_member(:filters, Shapes::ShapeRef.new(shape: FilterList, location_name: "Filter"))
    DescribeIpv6PoolsRequest.struct_class = Types::DescribeIpv6PoolsRequest

    DescribeIpv6PoolsResult.add_member(:ipv_6_pools, Shapes::ShapeRef.new(shape: Ipv6PoolSet, location_name: "ipv6PoolSet"))
    DescribeIpv6PoolsResult.add_member(:next_token, Shapes::ShapeRef.new(shape: NextToken, location_name: "nextToken"))
    DescribeIpv6PoolsResult.struct_class = Types::DescribeIpv6PoolsResult

    DescribeKeyPairsRequest.add_member(:key_names, Shapes::ShapeRef.new(shape: KeyNameStringList, location_name: "KeyName"))
    DescribeKeyPairsRequest.add_member(:key_pair_ids, Shapes::ShapeRef.new(shape: KeyPairIdStringList, location_name: "KeyPairId"))
    DescribeKeyPairsRequest.add_member(:include_public_key, Shapes::ShapeRef.new(shape: Boolean, location_name: "IncludePublicKey"))
    DescribeKeyPairsRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "dryRun"))
    DescribeKeyPairsRequest.add_member(:filters, Shapes::ShapeRef.new(shape: FilterList, location_name: "Filter"))
    DescribeKeyPairsRequest.struct_class = Types::DescribeKeyPairsRequest

    DescribeKeyPairsResult.add_member(:key_pairs, Shapes::ShapeRef.new(shape: KeyPairList, location_name: "keySet"))
    DescribeKeyPairsResult.struct_class = Types::DescribeKeyPairsResult

    DescribeLaunchTemplateVersionsRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    DescribeLaunchTemplateVersionsRequest.add_member(:launch_template_id, Shapes::ShapeRef.new(shape: LaunchTemplateId, location_name: "LaunchTemplateId"))
    DescribeLaunchTemplateVersionsRequest.add_member(:launch_template_name, Shapes::ShapeRef.new(shape: LaunchTemplateName, location_name: "LaunchTemplateName"))
    DescribeLaunchTemplateVersionsRequest.add_member(:versions, Shapes::ShapeRef.new(shape: VersionStringList, location_name: "LaunchTemplateVersion"))
    DescribeLaunchTemplateVersionsRequest.add_member(:min_version, Shapes::ShapeRef.new(shape: String, location_name: "MinVersion"))
    DescribeLaunchTemplateVersionsRequest.add_member(:max_version, Shapes::ShapeRef.new(shape: String, location_name: "MaxVersion"))
    DescribeLaunchTemplateVersionsRequest.add_member(:next_token, Shapes::ShapeRef.new(shape: String, location_name: "NextToken"))
    DescribeLaunchTemplateVersionsRequest.add_member(:max_results, Shapes::ShapeRef.new(shape: Integer, location_name: "MaxResults"))
    DescribeLaunchTemplateVersionsRequest.add_member(:filters, Shapes::ShapeRef.new(shape: FilterList, location_name: "Filter"))
    DescribeLaunchTemplateVersionsRequest.add_member(:resolve_alias, Shapes::ShapeRef.new(shape: Boolean, location_name: "ResolveAlias"))
    DescribeLaunchTemplateVersionsRequest.struct_class = Types::DescribeLaunchTemplateVersionsRequest

    DescribeLaunchTemplateVersionsResult.add_member(:launch_template_versions, Shapes::ShapeRef.new(shape: LaunchTemplateVersionSet, location_name: "launchTemplateVersionSet"))
    DescribeLaunchTemplateVersionsResult.add_member(:next_token, Shapes::ShapeRef.new(shape: String, location_name: "nextToken"))
    DescribeLaunchTemplateVersionsResult.struct_class = Types::DescribeLaunchTemplateVersionsResult

    DescribeLaunchTemplatesRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    DescribeLaunchTemplatesRequest.add_member(:launch_template_ids, Shapes::ShapeRef.new(shape: LaunchTemplateIdStringList, location_name: "LaunchTemplateId"))
    DescribeLaunchTemplatesRequest.add_member(:launch_template_names, Shapes::ShapeRef.new(shape: LaunchTemplateNameStringList, location_name: "LaunchTemplateName"))
    DescribeLaunchTemplatesRequest.add_member(:filters, Shapes::ShapeRef.new(shape: FilterList, location_name: "Filter"))
    DescribeLaunchTemplatesRequest.add_member(:next_token, Shapes::ShapeRef.new(shape: String, location_name: "NextToken"))
    DescribeLaunchTemplatesRequest.add_member(:max_results, Shapes::ShapeRef.new(shape: DescribeLaunchTemplatesMaxResults, location_name: "MaxResults"))
    DescribeLaunchTemplatesRequest.struct_class = Types::DescribeLaunchTemplatesRequest

    DescribeLaunchTemplatesResult.add_member(:launch_templates, Shapes::ShapeRef.new(shape: LaunchTemplateSet, location_name: "launchTemplates"))
    DescribeLaunchTemplatesResult.add_member(:next_token, Shapes::ShapeRef.new(shape: String, location_name: "nextToken"))
    DescribeLaunchTemplatesResult.struct_class = Types::DescribeLaunchTemplatesResult

    DescribeLocalGatewayRouteTableVirtualInterfaceGroupAssociationsRequest.add_member(:local_gateway_route_table_virtual_interface_group_association_ids, Shapes::ShapeRef.new(shape: LocalGatewayRouteTableVirtualInterfaceGroupAssociationIdSet, location_name: "LocalGatewayRouteTableVirtualInterfaceGroupAssociationId"))
    DescribeLocalGatewayRouteTableVirtualInterfaceGroupAssociationsRequest.add_member(:filters, Shapes::ShapeRef.new(shape: FilterList, location_name: "Filter"))
    DescribeLocalGatewayRouteTableVirtualInterfaceGroupAssociationsRequest.add_member(:max_results, Shapes::ShapeRef.new(shape: LocalGatewayMaxResults, location_name: "MaxResults"))
    DescribeLocalGatewayRouteTableVirtualInterfaceGroupAssociationsRequest.add_member(:next_token, Shapes::ShapeRef.new(shape: String, location_name: "NextToken"))
    DescribeLocalGatewayRouteTableVirtualInterfaceGroupAssociationsRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    DescribeLocalGatewayRouteTableVirtualInterfaceGroupAssociationsRequest.struct_class = Types::DescribeLocalGatewayRouteTableVirtualInterfaceGroupAssociationsRequest

    DescribeLocalGatewayRouteTableVirtualInterfaceGroupAssociationsResult.add_member(:local_gateway_route_table_virtual_interface_group_associations, Shapes::ShapeRef.new(shape: LocalGatewayRouteTableVirtualInterfaceGroupAssociationSet, location_name: "localGatewayRouteTableVirtualInterfaceGroupAssociationSet"))
    DescribeLocalGatewayRouteTableVirtualInterfaceGroupAssociationsResult.add_member(:next_token, Shapes::ShapeRef.new(shape: String, location_name: "nextToken"))
    DescribeLocalGatewayRouteTableVirtualInterfaceGroupAssociationsResult.struct_class = Types::DescribeLocalGatewayRouteTableVirtualInterfaceGroupAssociationsResult

    DescribeLocalGatewayRouteTableVpcAssociationsRequest.add_member(:local_gateway_route_table_vpc_association_ids, Shapes::ShapeRef.new(shape: LocalGatewayRouteTableVpcAssociationIdSet, location_name: "LocalGatewayRouteTableVpcAssociationId"))
    DescribeLocalGatewayRouteTableVpcAssociationsRequest.add_member(:filters, Shapes::ShapeRef.new(shape: FilterList, location_name: "Filter"))
    DescribeLocalGatewayRouteTableVpcAssociationsRequest.add_member(:max_results, Shapes::ShapeRef.new(shape: LocalGatewayMaxResults, location_name: "MaxResults"))
    DescribeLocalGatewayRouteTableVpcAssociationsRequest.add_member(:next_token, Shapes::ShapeRef.new(shape: String, location_name: "NextToken"))
    DescribeLocalGatewayRouteTableVpcAssociationsRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    DescribeLocalGatewayRouteTableVpcAssociationsRequest.struct_class = Types::DescribeLocalGatewayRouteTableVpcAssociationsRequest

    DescribeLocalGatewayRouteTableVpcAssociationsResult.add_member(:local_gateway_route_table_vpc_associations, Shapes::ShapeRef.new(shape: LocalGatewayRouteTableVpcAssociationSet, location_name: "localGatewayRouteTableVpcAssociationSet"))
    DescribeLocalGatewayRouteTableVpcAssociationsResult.add_member(:next_token, Shapes::ShapeRef.new(shape: String, location_name: "nextToken"))
    DescribeLocalGatewayRouteTableVpcAssociationsResult.struct_class = Types::DescribeLocalGatewayRouteTableVpcAssociationsResult

    DescribeLocalGatewayRouteTablesRequest.add_member(:local_gateway_route_table_ids, Shapes::ShapeRef.new(shape: LocalGatewayRouteTableIdSet, location_name: "LocalGatewayRouteTableId"))
    DescribeLocalGatewayRouteTablesRequest.add_member(:filters, Shapes::ShapeRef.new(shape: FilterList, location_name: "Filter"))
    DescribeLocalGatewayRouteTablesRequest.add_member(:max_results, Shapes::ShapeRef.new(shape: LocalGatewayMaxResults, location_name: "MaxResults"))
    DescribeLocalGatewayRouteTablesRequest.add_member(:next_token, Shapes::ShapeRef.new(shape: String, location_name: "NextToken"))
    DescribeLocalGatewayRouteTablesRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    DescribeLocalGatewayRouteTablesRequest.struct_class = Types::DescribeLocalGatewayRouteTablesRequest

    DescribeLocalGatewayRouteTablesResult.add_member(:local_gateway_route_tables, Shapes::ShapeRef.new(shape: LocalGatewayRouteTableSet, location_name: "localGatewayRouteTableSet"))
    DescribeLocalGatewayRouteTablesResult.add_member(:next_token, Shapes::ShapeRef.new(shape: String, location_name: "nextToken"))
    DescribeLocalGatewayRouteTablesResult.struct_class = Types::DescribeLocalGatewayRouteTablesResult

    DescribeLocalGatewayVirtualInterfaceGroupsRequest.add_member(:local_gateway_virtual_interface_group_ids, Shapes::ShapeRef.new(shape: LocalGatewayVirtualInterfaceGroupIdSet, location_name: "LocalGatewayVirtualInterfaceGroupId"))
    DescribeLocalGatewayVirtualInterfaceGroupsRequest.add_member(:filters, Shapes::ShapeRef.new(shape: FilterList, location_name: "Filter"))
    DescribeLocalGatewayVirtualInterfaceGroupsRequest.add_member(:max_results, Shapes::ShapeRef.new(shape: LocalGatewayMaxResults, location_name: "MaxResults"))
    DescribeLocalGatewayVirtualInterfaceGroupsRequest.add_member(:next_token, Shapes::ShapeRef.new(shape: String, location_name: "NextToken"))
    DescribeLocalGatewayVirtualInterfaceGroupsRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    DescribeLocalGatewayVirtualInterfaceGroupsRequest.struct_class = Types::DescribeLocalGatewayVirtualInterfaceGroupsRequest

    DescribeLocalGatewayVirtualInterfaceGroupsResult.add_member(:local_gateway_virtual_interface_groups, Shapes::ShapeRef.new(shape: LocalGatewayVirtualInterfaceGroupSet, location_name: "localGatewayVirtualInterfaceGroupSet"))
    DescribeLocalGatewayVirtualInterfaceGroupsResult.add_member(:next_token, Shapes::ShapeRef.new(shape: String, location_name: "nextToken"))
    DescribeLocalGatewayVirtualInterfaceGroupsResult.struct_class = Types::DescribeLocalGatewayVirtualInterfaceGroupsResult

    DescribeLocalGatewayVirtualInterfacesRequest.add_member(:local_gateway_virtual_interface_ids, Shapes::ShapeRef.new(shape: LocalGatewayVirtualInterfaceIdSet, location_name: "LocalGatewayVirtualInterfaceId"))
    DescribeLocalGatewayVirtualInterfacesRequest.add_member(:filters, Shapes::ShapeRef.new(shape: FilterList, location_name: "Filter"))
    DescribeLocalGatewayVirtualInterfacesRequest.add_member(:max_results, Shapes::ShapeRef.new(shape: LocalGatewayMaxResults, location_name: "MaxResults"))
    DescribeLocalGatewayVirtualInterfacesRequest.add_member(:next_token, Shapes::ShapeRef.new(shape: String, location_name: "NextToken"))
    DescribeLocalGatewayVirtualInterfacesRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    DescribeLocalGatewayVirtualInterfacesRequest.struct_class = Types::DescribeLocalGatewayVirtualInterfacesRequest

    DescribeLocalGatewayVirtualInterfacesResult.add_member(:local_gateway_virtual_interfaces, Shapes::ShapeRef.new(shape: LocalGatewayVirtualInterfaceSet, location_name: "localGatewayVirtualInterfaceSet"))
    DescribeLocalGatewayVirtualInterfacesResult.add_member(:next_token, Shapes::ShapeRef.new(shape: String, location_name: "nextToken"))
    DescribeLocalGatewayVirtualInterfacesResult.struct_class = Types::DescribeLocalGatewayVirtualInterfacesResult

    DescribeLocalGatewaysRequest.add_member(:local_gateway_ids, Shapes::ShapeRef.new(shape: LocalGatewayIdSet, location_name: "LocalGatewayId"))
    DescribeLocalGatewaysRequest.add_member(:filters, Shapes::ShapeRef.new(shape: FilterList, location_name: "Filter"))
    DescribeLocalGatewaysRequest.add_member(:max_results, Shapes::ShapeRef.new(shape: LocalGatewayMaxResults, location_name: "MaxResults"))
    DescribeLocalGatewaysRequest.add_member(:next_token, Shapes::ShapeRef.new(shape: String, location_name: "NextToken"))
    DescribeLocalGatewaysRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    DescribeLocalGatewaysRequest.struct_class = Types::DescribeLocalGatewaysRequest

    DescribeLocalGatewaysResult.add_member(:local_gateways, Shapes::ShapeRef.new(shape: LocalGatewaySet, location_name: "localGatewaySet"))
    DescribeLocalGatewaysResult.add_member(:next_token, Shapes::ShapeRef.new(shape: String, location_name: "nextToken"))
    DescribeLocalGatewaysResult.struct_class = Types::DescribeLocalGatewaysResult

    DescribeLockedSnapshotsRequest.add_member(:filters, Shapes::ShapeRef.new(shape: FilterList, location_name: "Filter"))
    DescribeLockedSnapshotsRequest.add_member(:max_results, Shapes::ShapeRef.new(shape: DescribeLockedSnapshotsMaxResults, location_name: "MaxResults"))
    DescribeLockedSnapshotsRequest.add_member(:next_token, Shapes::ShapeRef.new(shape: String, location_name: "NextToken"))
    DescribeLockedSnapshotsRequest.add_member(:snapshot_ids, Shapes::ShapeRef.new(shape: SnapshotIdStringList, location_name: "SnapshotId"))
    DescribeLockedSnapshotsRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    DescribeLockedSnapshotsRequest.struct_class = Types::DescribeLockedSnapshotsRequest

    DescribeLockedSnapshotsResult.add_member(:snapshots, Shapes::ShapeRef.new(shape: LockedSnapshotsInfoList, location_name: "snapshotSet"))
    DescribeLockedSnapshotsResult.add_member(:next_token, Shapes::ShapeRef.new(shape: String, location_name: "nextToken"))
    DescribeLockedSnapshotsResult.struct_class = Types::DescribeLockedSnapshotsResult

    DescribeMacHostsRequest.add_member(:filters, Shapes::ShapeRef.new(shape: FilterList, location_name: "Filter"))
    DescribeMacHostsRequest.add_member(:host_ids, Shapes::ShapeRef.new(shape: RequestHostIdList, location_name: "HostId"))
    DescribeMacHostsRequest.add_member(:max_results, Shapes::ShapeRef.new(shape: DescribeMacHostsRequestMaxResults, location_name: "MaxResults"))
    DescribeMacHostsRequest.add_member(:next_token, Shapes::ShapeRef.new(shape: String, location_name: "NextToken"))
    DescribeMacHostsRequest.struct_class = Types::DescribeMacHostsRequest

    DescribeMacHostsResult.add_member(:mac_hosts, Shapes::ShapeRef.new(shape: MacHostList, location_name: "macHostSet"))
    DescribeMacHostsResult.add_member(:next_token, Shapes::ShapeRef.new(shape: String, location_name: "nextToken"))
    DescribeMacHostsResult.struct_class = Types::DescribeMacHostsResult

    DescribeManagedPrefixListsRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    DescribeManagedPrefixListsRequest.add_member(:filters, Shapes::ShapeRef.new(shape: FilterList, location_name: "Filter"))
    DescribeManagedPrefixListsRequest.add_member(:max_results, Shapes::ShapeRef.new(shape: PrefixListMaxResults, location_name: "MaxResults"))
    DescribeManagedPrefixListsRequest.add_member(:next_token, Shapes::ShapeRef.new(shape: NextToken, location_name: "NextToken"))
    DescribeManagedPrefixListsRequest.add_member(:prefix_list_ids, Shapes::ShapeRef.new(shape: ValueStringList, location_name: "PrefixListId"))
    DescribeManagedPrefixListsRequest.struct_class = Types::DescribeManagedPrefixListsRequest

    DescribeManagedPrefixListsResult.add_member(:next_token, Shapes::ShapeRef.new(shape: NextToken, location_name: "nextToken"))
    DescribeManagedPrefixListsResult.add_member(:prefix_lists, Shapes::ShapeRef.new(shape: ManagedPrefixListSet, location_name: "prefixListSet"))
    DescribeManagedPrefixListsResult.struct_class = Types::DescribeManagedPrefixListsResult

    DescribeMovingAddressesRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "dryRun"))
    DescribeMovingAddressesRequest.add_member(:public_ips, Shapes::ShapeRef.new(shape: ValueStringList, location_name: "publicIp"))
    DescribeMovingAddressesRequest.add_member(:next_token, Shapes::ShapeRef.new(shape: String, location_name: "nextToken"))
    DescribeMovingAddressesRequest.add_member(:filters, Shapes::ShapeRef.new(shape: FilterList, location_name: "filter"))
    DescribeMovingAddressesRequest.add_member(:max_results, Shapes::ShapeRef.new(shape: DescribeMovingAddressesMaxResults, location_name: "maxResults"))
    DescribeMovingAddressesRequest.struct_class = Types::DescribeMovingAddressesRequest

    DescribeMovingAddressesResult.add_member(:moving_address_statuses, Shapes::ShapeRef.new(shape: MovingAddressStatusSet, location_name: "movingAddressStatusSet"))
    DescribeMovingAddressesResult.add_member(:next_token, Shapes::ShapeRef.new(shape: String, location_name: "nextToken"))
    DescribeMovingAddressesResult.struct_class = Types::DescribeMovingAddressesResult

    DescribeNatGatewaysRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    DescribeNatGatewaysRequest.add_member(:filter, Shapes::ShapeRef.new(shape: FilterList, location_name: "Filter"))
    DescribeNatGatewaysRequest.add_member(:max_results, Shapes::ShapeRef.new(shape: DescribeNatGatewaysMaxResults, location_name: "MaxResults"))
    DescribeNatGatewaysRequest.add_member(:nat_gateway_ids, Shapes::ShapeRef.new(shape: NatGatewayIdStringList, location_name: "NatGatewayId"))
    DescribeNatGatewaysRequest.add_member(:next_token, Shapes::ShapeRef.new(shape: String, location_name: "NextToken"))
    DescribeNatGatewaysRequest.struct_class = Types::DescribeNatGatewaysRequest

    DescribeNatGatewaysResult.add_member(:nat_gateways, Shapes::ShapeRef.new(shape: NatGatewayList, location_name: "natGatewaySet"))
    DescribeNatGatewaysResult.add_member(:next_token, Shapes::ShapeRef.new(shape: String, location_name: "nextToken"))
    DescribeNatGatewaysResult.struct_class = Types::DescribeNatGatewaysResult

    DescribeNetworkAclsRequest.add_member(:next_token, Shapes::ShapeRef.new(shape: String, location_name: "NextToken"))
    DescribeNetworkAclsRequest.add_member(:max_results, Shapes::ShapeRef.new(shape: DescribeNetworkAclsMaxResults, location_name: "MaxResults"))
    DescribeNetworkAclsRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "dryRun"))
    DescribeNetworkAclsRequest.add_member(:network_acl_ids, Shapes::ShapeRef.new(shape: NetworkAclIdStringList, location_name: "NetworkAclId"))
    DescribeNetworkAclsRequest.add_member(:filters, Shapes::ShapeRef.new(shape: FilterList, location_name: "Filter"))
    DescribeNetworkAclsRequest.struct_class = Types::DescribeNetworkAclsRequest

    DescribeNetworkAclsResult.add_member(:network_acls, Shapes::ShapeRef.new(shape: NetworkAclList, location_name: "networkAclSet"))
    DescribeNetworkAclsResult.add_member(:next_token, Shapes::ShapeRef.new(shape: String, location_name: "nextToken"))
    DescribeNetworkAclsResult.struct_class = Types::DescribeNetworkAclsResult

    DescribeNetworkInsightsAccessScopeAnalysesRequest.add_member(:network_insights_access_scope_analysis_ids, Shapes::ShapeRef.new(shape: NetworkInsightsAccessScopeAnalysisIdList, location_name: "NetworkInsightsAccessScopeAnalysisId"))
    DescribeNetworkInsightsAccessScopeAnalysesRequest.add_member(:network_insights_access_scope_id, Shapes::ShapeRef.new(shape: NetworkInsightsAccessScopeId, location_name: "NetworkInsightsAccessScopeId"))
    DescribeNetworkInsightsAccessScopeAnalysesRequest.add_member(:analysis_start_time_begin, Shapes::ShapeRef.new(shape: MillisecondDateTime, location_name: "AnalysisStartTimeBegin"))
    DescribeNetworkInsightsAccessScopeAnalysesRequest.add_member(:analysis_start_time_end, Shapes::ShapeRef.new(shape: MillisecondDateTime, location_name: "AnalysisStartTimeEnd"))
    DescribeNetworkInsightsAccessScopeAnalysesRequest.add_member(:filters, Shapes::ShapeRef.new(shape: FilterList, location_name: "Filter"))
    DescribeNetworkInsightsAccessScopeAnalysesRequest.add_member(:max_results, Shapes::ShapeRef.new(shape: NetworkInsightsMaxResults, location_name: "MaxResults"))
    DescribeNetworkInsightsAccessScopeAnalysesRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    DescribeNetworkInsightsAccessScopeAnalysesRequest.add_member(:next_token, Shapes::ShapeRef.new(shape: NextToken, location_name: "NextToken"))
    DescribeNetworkInsightsAccessScopeAnalysesRequest.struct_class = Types::DescribeNetworkInsightsAccessScopeAnalysesRequest

    DescribeNetworkInsightsAccessScopeAnalysesResult.add_member(:network_insights_access_scope_analyses, Shapes::ShapeRef.new(shape: NetworkInsightsAccessScopeAnalysisList, location_name: "networkInsightsAccessScopeAnalysisSet"))
    DescribeNetworkInsightsAccessScopeAnalysesResult.add_member(:next_token, Shapes::ShapeRef.new(shape: String, location_name: "nextToken"))
    DescribeNetworkInsightsAccessScopeAnalysesResult.struct_class = Types::DescribeNetworkInsightsAccessScopeAnalysesResult

    DescribeNetworkInsightsAccessScopesRequest.add_member(:network_insights_access_scope_ids, Shapes::ShapeRef.new(shape: NetworkInsightsAccessScopeIdList, location_name: "NetworkInsightsAccessScopeId"))
    DescribeNetworkInsightsAccessScopesRequest.add_member(:filters, Shapes::ShapeRef.new(shape: FilterList, location_name: "Filter"))
    DescribeNetworkInsightsAccessScopesRequest.add_member(:max_results, Shapes::ShapeRef.new(shape: NetworkInsightsMaxResults, location_name: "MaxResults"))
    DescribeNetworkInsightsAccessScopesRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    DescribeNetworkInsightsAccessScopesRequest.add_member(:next_token, Shapes::ShapeRef.new(shape: NextToken, location_name: "NextToken"))
    DescribeNetworkInsightsAccessScopesRequest.struct_class = Types::DescribeNetworkInsightsAccessScopesRequest

    DescribeNetworkInsightsAccessScopesResult.add_member(:network_insights_access_scopes, Shapes::ShapeRef.new(shape: NetworkInsightsAccessScopeList, location_name: "networkInsightsAccessScopeSet"))
    DescribeNetworkInsightsAccessScopesResult.add_member(:next_token, Shapes::ShapeRef.new(shape: String, location_name: "nextToken"))
    DescribeNetworkInsightsAccessScopesResult.struct_class = Types::DescribeNetworkInsightsAccessScopesResult

    DescribeNetworkInsightsAnalysesRequest.add_member(:network_insights_analysis_ids, Shapes::ShapeRef.new(shape: NetworkInsightsAnalysisIdList, location_name: "NetworkInsightsAnalysisId"))
    DescribeNetworkInsightsAnalysesRequest.add_member(:network_insights_path_id, Shapes::ShapeRef.new(shape: NetworkInsightsPathId, location_name: "NetworkInsightsPathId"))
    DescribeNetworkInsightsAnalysesRequest.add_member(:analysis_start_time, Shapes::ShapeRef.new(shape: MillisecondDateTime, location_name: "AnalysisStartTime"))
    DescribeNetworkInsightsAnalysesRequest.add_member(:analysis_end_time, Shapes::ShapeRef.new(shape: MillisecondDateTime, location_name: "AnalysisEndTime"))
    DescribeNetworkInsightsAnalysesRequest.add_member(:filters, Shapes::ShapeRef.new(shape: FilterList, location_name: "Filter"))
    DescribeNetworkInsightsAnalysesRequest.add_member(:max_results, Shapes::ShapeRef.new(shape: NetworkInsightsMaxResults, location_name: "MaxResults"))
    DescribeNetworkInsightsAnalysesRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    DescribeNetworkInsightsAnalysesRequest.add_member(:next_token, Shapes::ShapeRef.new(shape: NextToken, location_name: "NextToken"))
    DescribeNetworkInsightsAnalysesRequest.struct_class = Types::DescribeNetworkInsightsAnalysesRequest

    DescribeNetworkInsightsAnalysesResult.add_member(:network_insights_analyses, Shapes::ShapeRef.new(shape: NetworkInsightsAnalysisList, location_name: "networkInsightsAnalysisSet"))
    DescribeNetworkInsightsAnalysesResult.add_member(:next_token, Shapes::ShapeRef.new(shape: String, location_name: "nextToken"))
    DescribeNetworkInsightsAnalysesResult.struct_class = Types::DescribeNetworkInsightsAnalysesResult

    DescribeNetworkInsightsPathsRequest.add_member(:network_insights_path_ids, Shapes::ShapeRef.new(shape: NetworkInsightsPathIdList, location_name: "NetworkInsightsPathId"))
    DescribeNetworkInsightsPathsRequest.add_member(:filters, Shapes::ShapeRef.new(shape: FilterList, location_name: "Filter"))
    DescribeNetworkInsightsPathsRequest.add_member(:max_results, Shapes::ShapeRef.new(shape: NetworkInsightsMaxResults, location_name: "MaxResults"))
    DescribeNetworkInsightsPathsRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    DescribeNetworkInsightsPathsRequest.add_member(:next_token, Shapes::ShapeRef.new(shape: NextToken, location_name: "NextToken"))
    DescribeNetworkInsightsPathsRequest.struct_class = Types::DescribeNetworkInsightsPathsRequest

    DescribeNetworkInsightsPathsResult.add_member(:network_insights_paths, Shapes::ShapeRef.new(shape: NetworkInsightsPathList, location_name: "networkInsightsPathSet"))
    DescribeNetworkInsightsPathsResult.add_member(:next_token, Shapes::ShapeRef.new(shape: String, location_name: "nextToken"))
    DescribeNetworkInsightsPathsResult.struct_class = Types::DescribeNetworkInsightsPathsResult

    DescribeNetworkInterfaceAttributeRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "dryRun"))
    DescribeNetworkInterfaceAttributeRequest.add_member(:network_interface_id, Shapes::ShapeRef.new(shape: NetworkInterfaceId, required: true, location_name: "networkInterfaceId"))
    DescribeNetworkInterfaceAttributeRequest.add_member(:attribute, Shapes::ShapeRef.new(shape: NetworkInterfaceAttribute, location_name: "attribute"))
    DescribeNetworkInterfaceAttributeRequest.struct_class = Types::DescribeNetworkInterfaceAttributeRequest

    DescribeNetworkInterfaceAttributeResult.add_member(:attachment, Shapes::ShapeRef.new(shape: NetworkInterfaceAttachment, location_name: "attachment"))
    DescribeNetworkInterfaceAttributeResult.add_member(:description, Shapes::ShapeRef.new(shape: AttributeValue, location_name: "description"))
    DescribeNetworkInterfaceAttributeResult.add_member(:groups, Shapes::ShapeRef.new(shape: GroupIdentifierList, location_name: "groupSet"))
    DescribeNetworkInterfaceAttributeResult.add_member(:network_interface_id, Shapes::ShapeRef.new(shape: String, location_name: "networkInterfaceId"))
    DescribeNetworkInterfaceAttributeResult.add_member(:source_dest_check, Shapes::ShapeRef.new(shape: AttributeBooleanValue, location_name: "sourceDestCheck"))
    DescribeNetworkInterfaceAttributeResult.add_member(:associate_public_ip_address, Shapes::ShapeRef.new(shape: Boolean, location_name: "associatePublicIpAddress"))
    DescribeNetworkInterfaceAttributeResult.struct_class = Types::DescribeNetworkInterfaceAttributeResult

    DescribeNetworkInterfacePermissionsRequest.add_member(:network_interface_permission_ids, Shapes::ShapeRef.new(shape: NetworkInterfacePermissionIdList, location_name: "NetworkInterfacePermissionId"))
    DescribeNetworkInterfacePermissionsRequest.add_member(:filters, Shapes::ShapeRef.new(shape: FilterList, location_name: "Filter"))
    DescribeNetworkInterfacePermissionsRequest.add_member(:next_token, Shapes::ShapeRef.new(shape: String, location_name: "NextToken"))
    DescribeNetworkInterfacePermissionsRequest.add_member(:max_results, Shapes::ShapeRef.new(shape: DescribeNetworkInterfacePermissionsMaxResults, location_name: "MaxResults"))
    DescribeNetworkInterfacePermissionsRequest.struct_class = Types::DescribeNetworkInterfacePermissionsRequest

    DescribeNetworkInterfacePermissionsResult.add_member(:network_interface_permissions, Shapes::ShapeRef.new(shape: NetworkInterfacePermissionList, location_name: "networkInterfacePermissions"))
    DescribeNetworkInterfacePermissionsResult.add_member(:next_token, Shapes::ShapeRef.new(shape: String, location_name: "nextToken"))
    DescribeNetworkInterfacePermissionsResult.struct_class = Types::DescribeNetworkInterfacePermissionsResult

    DescribeNetworkInterfacesRequest.add_member(:next_token, Shapes::ShapeRef.new(shape: String, location_name: "NextToken"))
    DescribeNetworkInterfacesRequest.add_member(:max_results, Shapes::ShapeRef.new(shape: DescribeNetworkInterfacesMaxResults, location_name: "MaxResults"))
    DescribeNetworkInterfacesRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "dryRun"))
    DescribeNetworkInterfacesRequest.add_member(:network_interface_ids, Shapes::ShapeRef.new(shape: NetworkInterfaceIdList, location_name: "NetworkInterfaceId"))
    DescribeNetworkInterfacesRequest.add_member(:filters, Shapes::ShapeRef.new(shape: FilterList, location_name: "filter"))
    DescribeNetworkInterfacesRequest.struct_class = Types::DescribeNetworkInterfacesRequest

    DescribeNetworkInterfacesResult.add_member(:network_interfaces, Shapes::ShapeRef.new(shape: NetworkInterfaceList, location_name: "networkInterfaceSet"))
    DescribeNetworkInterfacesResult.add_member(:next_token, Shapes::ShapeRef.new(shape: String, location_name: "nextToken"))
    DescribeNetworkInterfacesResult.struct_class = Types::DescribeNetworkInterfacesResult

    DescribePlacementGroupsRequest.add_member(:group_ids, Shapes::ShapeRef.new(shape: PlacementGroupIdStringList, location_name: "GroupId"))
    DescribePlacementGroupsRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "dryRun"))
    DescribePlacementGroupsRequest.add_member(:group_names, Shapes::ShapeRef.new(shape: PlacementGroupStringList, location_name: "groupName"))
    DescribePlacementGroupsRequest.add_member(:filters, Shapes::ShapeRef.new(shape: FilterList, location_name: "Filter"))
    DescribePlacementGroupsRequest.struct_class = Types::DescribePlacementGroupsRequest

    DescribePlacementGroupsResult.add_member(:placement_groups, Shapes::ShapeRef.new(shape: PlacementGroupList, location_name: "placementGroupSet"))
    DescribePlacementGroupsResult.struct_class = Types::DescribePlacementGroupsResult

    DescribePrefixListsRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    DescribePrefixListsRequest.add_member(:filters, Shapes::ShapeRef.new(shape: FilterList, location_name: "Filter"))
    DescribePrefixListsRequest.add_member(:max_results, Shapes::ShapeRef.new(shape: Integer, location_name: "MaxResults"))
    DescribePrefixListsRequest.add_member(:next_token, Shapes::ShapeRef.new(shape: String, location_name: "NextToken"))
    DescribePrefixListsRequest.add_member(:prefix_list_ids, Shapes::ShapeRef.new(shape: PrefixListResourceIdStringList, location_name: "PrefixListId"))
    DescribePrefixListsRequest.struct_class = Types::DescribePrefixListsRequest

    DescribePrefixListsResult.add_member(:next_token, Shapes::ShapeRef.new(shape: String, location_name: "nextToken"))
    DescribePrefixListsResult.add_member(:prefix_lists, Shapes::ShapeRef.new(shape: PrefixListSet, location_name: "prefixListSet"))
    DescribePrefixListsResult.struct_class = Types::DescribePrefixListsResult

    DescribePrincipalIdFormatRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    DescribePrincipalIdFormatRequest.add_member(:resources, Shapes::ShapeRef.new(shape: ResourceList, location_name: "Resource"))
    DescribePrincipalIdFormatRequest.add_member(:max_results, Shapes::ShapeRef.new(shape: DescribePrincipalIdFormatMaxResults, location_name: "MaxResults"))
    DescribePrincipalIdFormatRequest.add_member(:next_token, Shapes::ShapeRef.new(shape: String, location_name: "NextToken"))
    DescribePrincipalIdFormatRequest.struct_class = Types::DescribePrincipalIdFormatRequest

    DescribePrincipalIdFormatResult.add_member(:principals, Shapes::ShapeRef.new(shape: PrincipalIdFormatList, location_name: "principalSet"))
    DescribePrincipalIdFormatResult.add_member(:next_token, Shapes::ShapeRef.new(shape: String, location_name: "nextToken"))
    DescribePrincipalIdFormatResult.struct_class = Types::DescribePrincipalIdFormatResult

    DescribePublicIpv4PoolsRequest.add_member(:pool_ids, Shapes::ShapeRef.new(shape: PublicIpv4PoolIdStringList, location_name: "PoolId"))
    DescribePublicIpv4PoolsRequest.add_member(:next_token, Shapes::ShapeRef.new(shape: NextToken, location_name: "NextToken"))
    DescribePublicIpv4PoolsRequest.add_member(:max_results, Shapes::ShapeRef.new(shape: PoolMaxResults, location_name: "MaxResults"))
    DescribePublicIpv4PoolsRequest.add_member(:filters, Shapes::ShapeRef.new(shape: FilterList, location_name: "Filter"))
    DescribePublicIpv4PoolsRequest.struct_class = Types::DescribePublicIpv4PoolsRequest

    DescribePublicIpv4PoolsResult.add_member(:public_ipv_4_pools, Shapes::ShapeRef.new(shape: PublicIpv4PoolSet, location_name: "publicIpv4PoolSet"))
    DescribePublicIpv4PoolsResult.add_member(:next_token, Shapes::ShapeRef.new(shape: String, location_name: "nextToken"))
    DescribePublicIpv4PoolsResult.struct_class = Types::DescribePublicIpv4PoolsResult

    DescribeRegionsRequest.add_member(:region_names, Shapes::ShapeRef.new(shape: RegionNameStringList, location_name: "RegionName"))
    DescribeRegionsRequest.add_member(:all_regions, Shapes::ShapeRef.new(shape: Boolean, location_name: "AllRegions"))
    DescribeRegionsRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "dryRun"))
    DescribeRegionsRequest.add_member(:filters, Shapes::ShapeRef.new(shape: FilterList, location_name: "Filter"))
    DescribeRegionsRequest.struct_class = Types::DescribeRegionsRequest

    DescribeRegionsResult.add_member(:regions, Shapes::ShapeRef.new(shape: RegionList, location_name: "regionInfo"))
    DescribeRegionsResult.struct_class = Types::DescribeRegionsResult

    DescribeReplaceRootVolumeTasksRequest.add_member(:replace_root_volume_task_ids, Shapes::ShapeRef.new(shape: ReplaceRootVolumeTaskIds, location_name: "ReplaceRootVolumeTaskId"))
    DescribeReplaceRootVolumeTasksRequest.add_member(:filters, Shapes::ShapeRef.new(shape: FilterList, location_name: "Filter"))
    DescribeReplaceRootVolumeTasksRequest.add_member(:max_results, Shapes::ShapeRef.new(shape: DescribeReplaceRootVolumeTasksMaxResults, location_name: "MaxResults"))
    DescribeReplaceRootVolumeTasksRequest.add_member(:next_token, Shapes::ShapeRef.new(shape: NextToken, location_name: "NextToken"))
    DescribeReplaceRootVolumeTasksRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    DescribeReplaceRootVolumeTasksRequest.struct_class = Types::DescribeReplaceRootVolumeTasksRequest

    DescribeReplaceRootVolumeTasksResult.add_member(:replace_root_volume_tasks, Shapes::ShapeRef.new(shape: ReplaceRootVolumeTasks, location_name: "replaceRootVolumeTaskSet"))
    DescribeReplaceRootVolumeTasksResult.add_member(:next_token, Shapes::ShapeRef.new(shape: String, location_name: "nextToken"))
    DescribeReplaceRootVolumeTasksResult.struct_class = Types::DescribeReplaceRootVolumeTasksResult

    DescribeReservedInstancesListingsRequest.add_member(:reserved_instances_id, Shapes::ShapeRef.new(shape: ReservationId, location_name: "reservedInstancesId"))
    DescribeReservedInstancesListingsRequest.add_member(:reserved_instances_listing_id, Shapes::ShapeRef.new(shape: ReservedInstancesListingId, location_name: "reservedInstancesListingId"))
    DescribeReservedInstancesListingsRequest.add_member(:filters, Shapes::ShapeRef.new(shape: FilterList, location_name: "Filter"))
    DescribeReservedInstancesListingsRequest.struct_class = Types::DescribeReservedInstancesListingsRequest

    DescribeReservedInstancesListingsResult.add_member(:reserved_instances_listings, Shapes::ShapeRef.new(shape: ReservedInstancesListingList, location_name: "reservedInstancesListingsSet"))
    DescribeReservedInstancesListingsResult.struct_class = Types::DescribeReservedInstancesListingsResult

    DescribeReservedInstancesModificationsRequest.add_member(:reserved_instances_modification_ids, Shapes::ShapeRef.new(shape: ReservedInstancesModificationIdStringList, location_name: "ReservedInstancesModificationId"))
    DescribeReservedInstancesModificationsRequest.add_member(:next_token, Shapes::ShapeRef.new(shape: String, location_name: "nextToken"))
    DescribeReservedInstancesModificationsRequest.add_member(:filters, Shapes::ShapeRef.new(shape: FilterList, location_name: "Filter"))
    DescribeReservedInstancesModificationsRequest.struct_class = Types::DescribeReservedInstancesModificationsRequest

    DescribeReservedInstancesModificationsResult.add_member(:next_token, Shapes::ShapeRef.new(shape: String, location_name: "nextToken"))
    DescribeReservedInstancesModificationsResult.add_member(:reserved_instances_modifications, Shapes::ShapeRef.new(shape: ReservedInstancesModificationList, location_name: "reservedInstancesModificationsSet"))
    DescribeReservedInstancesModificationsResult.struct_class = Types::DescribeReservedInstancesModificationsResult

    DescribeReservedInstancesOfferingsRequest.add_member(:availability_zone, Shapes::ShapeRef.new(shape: String, location_name: "AvailabilityZone"))
    DescribeReservedInstancesOfferingsRequest.add_member(:include_marketplace, Shapes::ShapeRef.new(shape: Boolean, location_name: "IncludeMarketplace"))
    DescribeReservedInstancesOfferingsRequest.add_member(:instance_type, Shapes::ShapeRef.new(shape: InstanceType, location_name: "InstanceType"))
    DescribeReservedInstancesOfferingsRequest.add_member(:max_duration, Shapes::ShapeRef.new(shape: Long, location_name: "MaxDuration"))
    DescribeReservedInstancesOfferingsRequest.add_member(:max_instance_count, Shapes::ShapeRef.new(shape: Integer, location_name: "MaxInstanceCount"))
    DescribeReservedInstancesOfferingsRequest.add_member(:min_duration, Shapes::ShapeRef.new(shape: Long, location_name: "MinDuration"))
    DescribeReservedInstancesOfferingsRequest.add_member(:offering_class, Shapes::ShapeRef.new(shape: OfferingClassType, location_name: "OfferingClass"))
    DescribeReservedInstancesOfferingsRequest.add_member(:product_description, Shapes::ShapeRef.new(shape: RIProductDescription, location_name: "ProductDescription"))
    DescribeReservedInstancesOfferingsRequest.add_member(:reserved_instances_offering_ids, Shapes::ShapeRef.new(shape: ReservedInstancesOfferingIdStringList, location_name: "ReservedInstancesOfferingId"))
    DescribeReservedInstancesOfferingsRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "dryRun"))
    DescribeReservedInstancesOfferingsRequest.add_member(:filters, Shapes::ShapeRef.new(shape: FilterList, location_name: "Filter"))
    DescribeReservedInstancesOfferingsRequest.add_member(:instance_tenancy, Shapes::ShapeRef.new(shape: Tenancy, location_name: "instanceTenancy"))
    DescribeReservedInstancesOfferingsRequest.add_member(:offering_type, Shapes::ShapeRef.new(shape: OfferingTypeValues, location_name: "offeringType"))
    DescribeReservedInstancesOfferingsRequest.add_member(:next_token, Shapes::ShapeRef.new(shape: String, location_name: "nextToken"))
    DescribeReservedInstancesOfferingsRequest.add_member(:max_results, Shapes::ShapeRef.new(shape: Integer, location_name: "maxResults"))
    DescribeReservedInstancesOfferingsRequest.struct_class = Types::DescribeReservedInstancesOfferingsRequest

    DescribeReservedInstancesOfferingsResult.add_member(:next_token, Shapes::ShapeRef.new(shape: String, location_name: "nextToken"))
    DescribeReservedInstancesOfferingsResult.add_member(:reserved_instances_offerings, Shapes::ShapeRef.new(shape: ReservedInstancesOfferingList, location_name: "reservedInstancesOfferingsSet"))
    DescribeReservedInstancesOfferingsResult.struct_class = Types::DescribeReservedInstancesOfferingsResult

    DescribeReservedInstancesRequest.add_member(:offering_class, Shapes::ShapeRef.new(shape: OfferingClassType, location_name: "OfferingClass"))
    DescribeReservedInstancesRequest.add_member(:reserved_instances_ids, Shapes::ShapeRef.new(shape: ReservedInstancesIdStringList, location_name: "ReservedInstancesId"))
    DescribeReservedInstancesRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "dryRun"))
    DescribeReservedInstancesRequest.add_member(:filters, Shapes::ShapeRef.new(shape: FilterList, location_name: "Filter"))
    DescribeReservedInstancesRequest.add_member(:offering_type, Shapes::ShapeRef.new(shape: OfferingTypeValues, location_name: "offeringType"))
    DescribeReservedInstancesRequest.struct_class = Types::DescribeReservedInstancesRequest

    DescribeReservedInstancesResult.add_member(:reserved_instances, Shapes::ShapeRef.new(shape: ReservedInstancesList, location_name: "reservedInstancesSet"))
    DescribeReservedInstancesResult.struct_class = Types::DescribeReservedInstancesResult

    DescribeRouteTablesRequest.add_member(:next_token, Shapes::ShapeRef.new(shape: String, location_name: "NextToken"))
    DescribeRouteTablesRequest.add_member(:max_results, Shapes::ShapeRef.new(shape: DescribeRouteTablesMaxResults, location_name: "MaxResults"))
    DescribeRouteTablesRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "dryRun"))
    DescribeRouteTablesRequest.add_member(:route_table_ids, Shapes::ShapeRef.new(shape: RouteTableIdStringList, location_name: "RouteTableId"))
    DescribeRouteTablesRequest.add_member(:filters, Shapes::ShapeRef.new(shape: FilterList, location_name: "Filter"))
    DescribeRouteTablesRequest.struct_class = Types::DescribeRouteTablesRequest

    DescribeRouteTablesResult.add_member(:route_tables, Shapes::ShapeRef.new(shape: RouteTableList, location_name: "routeTableSet"))
    DescribeRouteTablesResult.add_member(:next_token, Shapes::ShapeRef.new(shape: String, location_name: "nextToken"))
    DescribeRouteTablesResult.struct_class = Types::DescribeRouteTablesResult

    DescribeScheduledInstanceAvailabilityRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    DescribeScheduledInstanceAvailabilityRequest.add_member(:filters, Shapes::ShapeRef.new(shape: FilterList, location_name: "Filter"))
    DescribeScheduledInstanceAvailabilityRequest.add_member(:first_slot_start_time_range, Shapes::ShapeRef.new(shape: SlotDateTimeRangeRequest, required: true, location_name: "FirstSlotStartTimeRange"))
    DescribeScheduledInstanceAvailabilityRequest.add_member(:max_results, Shapes::ShapeRef.new(shape: DescribeScheduledInstanceAvailabilityMaxResults, location_name: "MaxResults"))
    DescribeScheduledInstanceAvailabilityRequest.add_member(:max_slot_duration_in_hours, Shapes::ShapeRef.new(shape: Integer, location_name: "MaxSlotDurationInHours"))
    DescribeScheduledInstanceAvailabilityRequest.add_member(:min_slot_duration_in_hours, Shapes::ShapeRef.new(shape: Integer, location_name: "MinSlotDurationInHours"))
    DescribeScheduledInstanceAvailabilityRequest.add_member(:next_token, Shapes::ShapeRef.new(shape: String, location_name: "NextToken"))
    DescribeScheduledInstanceAvailabilityRequest.add_member(:recurrence, Shapes::ShapeRef.new(shape: ScheduledInstanceRecurrenceRequest, required: true, location_name: "Recurrence"))
    DescribeScheduledInstanceAvailabilityRequest.struct_class = Types::DescribeScheduledInstanceAvailabilityRequest

    DescribeScheduledInstanceAvailabilityResult.add_member(:next_token, Shapes::ShapeRef.new(shape: String, location_name: "nextToken"))
    DescribeScheduledInstanceAvailabilityResult.add_member(:scheduled_instance_availability_set, Shapes::ShapeRef.new(shape: ScheduledInstanceAvailabilitySet, location_name: "scheduledInstanceAvailabilitySet"))
    DescribeScheduledInstanceAvailabilityResult.struct_class = Types::DescribeScheduledInstanceAvailabilityResult

    DescribeScheduledInstancesRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    DescribeScheduledInstancesRequest.add_member(:filters, Shapes::ShapeRef.new(shape: FilterList, location_name: "Filter"))
    DescribeScheduledInstancesRequest.add_member(:max_results, Shapes::ShapeRef.new(shape: Integer, location_name: "MaxResults"))
    DescribeScheduledInstancesRequest.add_member(:next_token, Shapes::ShapeRef.new(shape: String, location_name: "NextToken"))
    DescribeScheduledInstancesRequest.add_member(:scheduled_instance_ids, Shapes::ShapeRef.new(shape: ScheduledInstanceIdRequestSet, location_name: "ScheduledInstanceId"))
    DescribeScheduledInstancesRequest.add_member(:slot_start_time_range, Shapes::ShapeRef.new(shape: SlotStartTimeRangeRequest, location_name: "SlotStartTimeRange"))
    DescribeScheduledInstancesRequest.struct_class = Types::DescribeScheduledInstancesRequest

    DescribeScheduledInstancesResult.add_member(:next_token, Shapes::ShapeRef.new(shape: String, location_name: "nextToken"))
    DescribeScheduledInstancesResult.add_member(:scheduled_instance_set, Shapes::ShapeRef.new(shape: ScheduledInstanceSet, location_name: "scheduledInstanceSet"))
    DescribeScheduledInstancesResult.struct_class = Types::DescribeScheduledInstancesResult

    DescribeSecurityGroupReferencesRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    DescribeSecurityGroupReferencesRequest.add_member(:group_id, Shapes::ShapeRef.new(shape: GroupIds, required: true, location_name: "GroupId"))
    DescribeSecurityGroupReferencesRequest.struct_class = Types::DescribeSecurityGroupReferencesRequest

    DescribeSecurityGroupReferencesResult.add_member(:security_group_reference_set, Shapes::ShapeRef.new(shape: SecurityGroupReferences, location_name: "securityGroupReferenceSet"))
    DescribeSecurityGroupReferencesResult.struct_class = Types::DescribeSecurityGroupReferencesResult

    DescribeSecurityGroupRulesRequest.add_member(:filters, Shapes::ShapeRef.new(shape: FilterList, location_name: "Filter"))
    DescribeSecurityGroupRulesRequest.add_member(:security_group_rule_ids, Shapes::ShapeRef.new(shape: SecurityGroupRuleIdList, location_name: "SecurityGroupRuleId"))
    DescribeSecurityGroupRulesRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    DescribeSecurityGroupRulesRequest.add_member(:next_token, Shapes::ShapeRef.new(shape: String, location_name: "NextToken"))
    DescribeSecurityGroupRulesRequest.add_member(:max_results, Shapes::ShapeRef.new(shape: DescribeSecurityGroupRulesMaxResults, location_name: "MaxResults"))
    DescribeSecurityGroupRulesRequest.struct_class = Types::DescribeSecurityGroupRulesRequest

    DescribeSecurityGroupRulesResult.add_member(:security_group_rules, Shapes::ShapeRef.new(shape: SecurityGroupRuleList, location_name: "securityGroupRuleSet"))
    DescribeSecurityGroupRulesResult.add_member(:next_token, Shapes::ShapeRef.new(shape: String, location_name: "nextToken"))
    DescribeSecurityGroupRulesResult.struct_class = Types::DescribeSecurityGroupRulesResult

    DescribeSecurityGroupVpcAssociationsRequest.add_member(:filters, Shapes::ShapeRef.new(shape: FilterList, location_name: "Filter"))
    DescribeSecurityGroupVpcAssociationsRequest.add_member(:next_token, Shapes::ShapeRef.new(shape: String, location_name: "NextToken"))
    DescribeSecurityGroupVpcAssociationsRequest.add_member(:max_results, Shapes::ShapeRef.new(shape: DescribeSecurityGroupVpcAssociationsMaxResults, location_name: "MaxResults"))
    DescribeSecurityGroupVpcAssociationsRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    DescribeSecurityGroupVpcAssociationsRequest.struct_class = Types::DescribeSecurityGroupVpcAssociationsRequest

    DescribeSecurityGroupVpcAssociationsResult.add_member(:security_group_vpc_associations, Shapes::ShapeRef.new(shape: SecurityGroupVpcAssociationList, location_name: "securityGroupVpcAssociationSet"))
    DescribeSecurityGroupVpcAssociationsResult.add_member(:next_token, Shapes::ShapeRef.new(shape: String, location_name: "nextToken"))
    DescribeSecurityGroupVpcAssociationsResult.struct_class = Types::DescribeSecurityGroupVpcAssociationsResult

    DescribeSecurityGroupsRequest.add_member(:group_ids, Shapes::ShapeRef.new(shape: GroupIdStringList, location_name: "GroupId"))
    DescribeSecurityGroupsRequest.add_member(:group_names, Shapes::ShapeRef.new(shape: GroupNameStringList, location_name: "GroupName"))
    DescribeSecurityGroupsRequest.add_member(:next_token, Shapes::ShapeRef.new(shape: String, location_name: "NextToken"))
    DescribeSecurityGroupsRequest.add_member(:max_results, Shapes::ShapeRef.new(shape: DescribeSecurityGroupsMaxResults, location_name: "MaxResults"))
    DescribeSecurityGroupsRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "dryRun"))
    DescribeSecurityGroupsRequest.add_member(:filters, Shapes::ShapeRef.new(shape: FilterList, location_name: "Filter"))
    DescribeSecurityGroupsRequest.struct_class = Types::DescribeSecurityGroupsRequest

    DescribeSecurityGroupsResult.add_member(:next_token, Shapes::ShapeRef.new(shape: String, location_name: "nextToken"))
    DescribeSecurityGroupsResult.add_member(:security_groups, Shapes::ShapeRef.new(shape: SecurityGroupList, location_name: "securityGroupInfo"))
    DescribeSecurityGroupsResult.struct_class = Types::DescribeSecurityGroupsResult

    DescribeSnapshotAttributeRequest.add_member(:attribute, Shapes::ShapeRef.new(shape: SnapshotAttributeName, required: true, location_name: "Attribute"))
    DescribeSnapshotAttributeRequest.add_member(:snapshot_id, Shapes::ShapeRef.new(shape: SnapshotId, required: true, location_name: "SnapshotId"))
    DescribeSnapshotAttributeRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "dryRun"))
    DescribeSnapshotAttributeRequest.struct_class = Types::DescribeSnapshotAttributeRequest

    DescribeSnapshotAttributeResult.add_member(:product_codes, Shapes::ShapeRef.new(shape: ProductCodeList, location_name: "productCodes"))
    DescribeSnapshotAttributeResult.add_member(:snapshot_id, Shapes::ShapeRef.new(shape: String, location_name: "snapshotId"))
    DescribeSnapshotAttributeResult.add_member(:create_volume_permissions, Shapes::ShapeRef.new(shape: CreateVolumePermissionList, location_name: "createVolumePermission"))
    DescribeSnapshotAttributeResult.struct_class = Types::DescribeSnapshotAttributeResult

    DescribeSnapshotTierStatusRequest.add_member(:filters, Shapes::ShapeRef.new(shape: FilterList, location_name: "Filter"))
    DescribeSnapshotTierStatusRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    DescribeSnapshotTierStatusRequest.add_member(:next_token, Shapes::ShapeRef.new(shape: String, location_name: "NextToken"))
    DescribeSnapshotTierStatusRequest.add_member(:max_results, Shapes::ShapeRef.new(shape: DescribeSnapshotTierStatusMaxResults, location_name: "MaxResults"))
    DescribeSnapshotTierStatusRequest.struct_class = Types::DescribeSnapshotTierStatusRequest

    DescribeSnapshotTierStatusResult.add_member(:snapshot_tier_statuses, Shapes::ShapeRef.new(shape: snapshotTierStatusSet, location_name: "snapshotTierStatusSet"))
    DescribeSnapshotTierStatusResult.add_member(:next_token, Shapes::ShapeRef.new(shape: String, location_name: "nextToken"))
    DescribeSnapshotTierStatusResult.struct_class = Types::DescribeSnapshotTierStatusResult

    DescribeSnapshotsRequest.add_member(:max_results, Shapes::ShapeRef.new(shape: Integer, location_name: "MaxResults"))
    DescribeSnapshotsRequest.add_member(:next_token, Shapes::ShapeRef.new(shape: String, location_name: "NextToken"))
    DescribeSnapshotsRequest.add_member(:owner_ids, Shapes::ShapeRef.new(shape: OwnerStringList, location_name: "Owner"))
    DescribeSnapshotsRequest.add_member(:restorable_by_user_ids, Shapes::ShapeRef.new(shape: RestorableByStringList, location_name: "RestorableBy"))
    DescribeSnapshotsRequest.add_member(:snapshot_ids, Shapes::ShapeRef.new(shape: SnapshotIdStringList, location_name: "SnapshotId"))
    DescribeSnapshotsRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "dryRun"))
    DescribeSnapshotsRequest.add_member(:filters, Shapes::ShapeRef.new(shape: FilterList, location_name: "Filter"))
    DescribeSnapshotsRequest.struct_class = Types::DescribeSnapshotsRequest

    DescribeSnapshotsResult.add_member(:next_token, Shapes::ShapeRef.new(shape: String, location_name: "nextToken"))
    DescribeSnapshotsResult.add_member(:snapshots, Shapes::ShapeRef.new(shape: SnapshotList, location_name: "snapshotSet"))
    DescribeSnapshotsResult.struct_class = Types::DescribeSnapshotsResult

    DescribeSpotDatafeedSubscriptionRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "dryRun"))
    DescribeSpotDatafeedSubscriptionRequest.struct_class = Types::DescribeSpotDatafeedSubscriptionRequest

    DescribeSpotDatafeedSubscriptionResult.add_member(:spot_datafeed_subscription, Shapes::ShapeRef.new(shape: SpotDatafeedSubscription, location_name: "spotDatafeedSubscription"))
    DescribeSpotDatafeedSubscriptionResult.struct_class = Types::DescribeSpotDatafeedSubscriptionResult

    DescribeSpotFleetInstancesRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "dryRun"))
    DescribeSpotFleetInstancesRequest.add_member(:spot_fleet_request_id, Shapes::ShapeRef.new(shape: SpotFleetRequestId, required: true, location_name: "spotFleetRequestId"))
    DescribeSpotFleetInstancesRequest.add_member(:next_token, Shapes::ShapeRef.new(shape: String, location_name: "nextToken"))
    DescribeSpotFleetInstancesRequest.add_member(:max_results, Shapes::ShapeRef.new(shape: DescribeSpotFleetInstancesMaxResults, location_name: "maxResults"))
    DescribeSpotFleetInstancesRequest.struct_class = Types::DescribeSpotFleetInstancesRequest

    DescribeSpotFleetInstancesResponse.add_member(:active_instances, Shapes::ShapeRef.new(shape: ActiveInstanceSet, location_name: "activeInstanceSet"))
    DescribeSpotFleetInstancesResponse.add_member(:next_token, Shapes::ShapeRef.new(shape: String, location_name: "nextToken"))
    DescribeSpotFleetInstancesResponse.add_member(:spot_fleet_request_id, Shapes::ShapeRef.new(shape: String, location_name: "spotFleetRequestId"))
    DescribeSpotFleetInstancesResponse.struct_class = Types::DescribeSpotFleetInstancesResponse

    DescribeSpotFleetRequestHistoryRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "dryRun"))
    DescribeSpotFleetRequestHistoryRequest.add_member(:spot_fleet_request_id, Shapes::ShapeRef.new(shape: SpotFleetRequestId, required: true, location_name: "spotFleetRequestId"))
    DescribeSpotFleetRequestHistoryRequest.add_member(:event_type, Shapes::ShapeRef.new(shape: EventType, location_name: "eventType"))
    DescribeSpotFleetRequestHistoryRequest.add_member(:start_time, Shapes::ShapeRef.new(shape: DateTime, required: true, location_name: "startTime"))
    DescribeSpotFleetRequestHistoryRequest.add_member(:next_token, Shapes::ShapeRef.new(shape: String, location_name: "nextToken"))
    DescribeSpotFleetRequestHistoryRequest.add_member(:max_results, Shapes::ShapeRef.new(shape: DescribeSpotFleetRequestHistoryMaxResults, location_name: "maxResults"))
    DescribeSpotFleetRequestHistoryRequest.struct_class = Types::DescribeSpotFleetRequestHistoryRequest

    DescribeSpotFleetRequestHistoryResponse.add_member(:history_records, Shapes::ShapeRef.new(shape: HistoryRecords, location_name: "historyRecordSet"))
    DescribeSpotFleetRequestHistoryResponse.add_member(:last_evaluated_time, Shapes::ShapeRef.new(shape: DateTime, location_name: "lastEvaluatedTime"))
    DescribeSpotFleetRequestHistoryResponse.add_member(:next_token, Shapes::ShapeRef.new(shape: String, location_name: "nextToken"))
    DescribeSpotFleetRequestHistoryResponse.add_member(:spot_fleet_request_id, Shapes::ShapeRef.new(shape: String, location_name: "spotFleetRequestId"))
    DescribeSpotFleetRequestHistoryResponse.add_member(:start_time, Shapes::ShapeRef.new(shape: DateTime, location_name: "startTime"))
    DescribeSpotFleetRequestHistoryResponse.struct_class = Types::DescribeSpotFleetRequestHistoryResponse

    DescribeSpotFleetRequestsRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "dryRun"))
    DescribeSpotFleetRequestsRequest.add_member(:spot_fleet_request_ids, Shapes::ShapeRef.new(shape: SpotFleetRequestIdList, location_name: "spotFleetRequestId"))
    DescribeSpotFleetRequestsRequest.add_member(:next_token, Shapes::ShapeRef.new(shape: String, location_name: "nextToken"))
    DescribeSpotFleetRequestsRequest.add_member(:max_results, Shapes::ShapeRef.new(shape: Integer, location_name: "maxResults"))
    DescribeSpotFleetRequestsRequest.struct_class = Types::DescribeSpotFleetRequestsRequest

    DescribeSpotFleetRequestsResponse.add_member(:next_token, Shapes::ShapeRef.new(shape: String, location_name: "nextToken"))
    DescribeSpotFleetRequestsResponse.add_member(:spot_fleet_request_configs, Shapes::ShapeRef.new(shape: SpotFleetRequestConfigSet, location_name: "spotFleetRequestConfigSet"))
    DescribeSpotFleetRequestsResponse.struct_class = Types::DescribeSpotFleetRequestsResponse

    DescribeSpotInstanceRequestsRequest.add_member(:next_token, Shapes::ShapeRef.new(shape: String, location_name: "NextToken"))
    DescribeSpotInstanceRequestsRequest.add_member(:max_results, Shapes::ShapeRef.new(shape: Integer, location_name: "MaxResults"))
    DescribeSpotInstanceRequestsRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "dryRun"))
    DescribeSpotInstanceRequestsRequest.add_member(:spot_instance_request_ids, Shapes::ShapeRef.new(shape: SpotInstanceRequestIdList, location_name: "SpotInstanceRequestId"))
    DescribeSpotInstanceRequestsRequest.add_member(:filters, Shapes::ShapeRef.new(shape: FilterList, location_name: "Filter"))
    DescribeSpotInstanceRequestsRequest.struct_class = Types::DescribeSpotInstanceRequestsRequest

    DescribeSpotInstanceRequestsResult.add_member(:spot_instance_requests, Shapes::ShapeRef.new(shape: SpotInstanceRequestList, location_name: "spotInstanceRequestSet"))
    DescribeSpotInstanceRequestsResult.add_member(:next_token, Shapes::ShapeRef.new(shape: String, location_name: "nextToken"))
    DescribeSpotInstanceRequestsResult.struct_class = Types::DescribeSpotInstanceRequestsResult

    DescribeSpotPriceHistoryRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "dryRun"))
    DescribeSpotPriceHistoryRequest.add_member(:start_time, Shapes::ShapeRef.new(shape: DateTime, location_name: "startTime"))
    DescribeSpotPriceHistoryRequest.add_member(:end_time, Shapes::ShapeRef.new(shape: DateTime, location_name: "endTime"))
    DescribeSpotPriceHistoryRequest.add_member(:instance_types, Shapes::ShapeRef.new(shape: InstanceTypeList, location_name: "InstanceType"))
    DescribeSpotPriceHistoryRequest.add_member(:product_descriptions, Shapes::ShapeRef.new(shape: ProductDescriptionList, location_name: "ProductDescription"))
    DescribeSpotPriceHistoryRequest.add_member(:filters, Shapes::ShapeRef.new(shape: FilterList, location_name: "Filter"))
    DescribeSpotPriceHistoryRequest.add_member(:availability_zone, Shapes::ShapeRef.new(shape: String, location_name: "availabilityZone"))
    DescribeSpotPriceHistoryRequest.add_member(:max_results, Shapes::ShapeRef.new(shape: Integer, location_name: "maxResults"))
    DescribeSpotPriceHistoryRequest.add_member(:next_token, Shapes::ShapeRef.new(shape: String, location_name: "nextToken"))
    DescribeSpotPriceHistoryRequest.struct_class = Types::DescribeSpotPriceHistoryRequest

    DescribeSpotPriceHistoryResult.add_member(:next_token, Shapes::ShapeRef.new(shape: String, location_name: "nextToken"))
    DescribeSpotPriceHistoryResult.add_member(:spot_price_history, Shapes::ShapeRef.new(shape: SpotPriceHistoryList, location_name: "spotPriceHistorySet"))
    DescribeSpotPriceHistoryResult.struct_class = Types::DescribeSpotPriceHistoryResult

    DescribeStaleSecurityGroupsRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    DescribeStaleSecurityGroupsRequest.add_member(:max_results, Shapes::ShapeRef.new(shape: DescribeStaleSecurityGroupsMaxResults, location_name: "MaxResults"))
    DescribeStaleSecurityGroupsRequest.add_member(:next_token, Shapes::ShapeRef.new(shape: DescribeStaleSecurityGroupsNextToken, location_name: "NextToken"))
    DescribeStaleSecurityGroupsRequest.add_member(:vpc_id, Shapes::ShapeRef.new(shape: VpcId, required: true, location_name: "VpcId"))
    DescribeStaleSecurityGroupsRequest.struct_class = Types::DescribeStaleSecurityGroupsRequest

    DescribeStaleSecurityGroupsResult.add_member(:next_token, Shapes::ShapeRef.new(shape: String, location_name: "nextToken"))
    DescribeStaleSecurityGroupsResult.add_member(:stale_security_group_set, Shapes::ShapeRef.new(shape: StaleSecurityGroupSet, location_name: "staleSecurityGroupSet"))
    DescribeStaleSecurityGroupsResult.struct_class = Types::DescribeStaleSecurityGroupsResult

    DescribeStoreImageTasksRequest.add_member(:image_ids, Shapes::ShapeRef.new(shape: ImageIdList, location_name: "ImageId"))
    DescribeStoreImageTasksRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    DescribeStoreImageTasksRequest.add_member(:filters, Shapes::ShapeRef.new(shape: FilterList, location_name: "Filter"))
    DescribeStoreImageTasksRequest.add_member(:next_token, Shapes::ShapeRef.new(shape: String, location_name: "NextToken"))
    DescribeStoreImageTasksRequest.add_member(:max_results, Shapes::ShapeRef.new(shape: DescribeStoreImageTasksRequestMaxResults, location_name: "MaxResults"))
    DescribeStoreImageTasksRequest.struct_class = Types::DescribeStoreImageTasksRequest

    DescribeStoreImageTasksResult.add_member(:store_image_task_results, Shapes::ShapeRef.new(shape: StoreImageTaskResultSet, location_name: "storeImageTaskResultSet"))
    DescribeStoreImageTasksResult.add_member(:next_token, Shapes::ShapeRef.new(shape: String, location_name: "nextToken"))
    DescribeStoreImageTasksResult.struct_class = Types::DescribeStoreImageTasksResult

    DescribeSubnetsRequest.add_member(:filters, Shapes::ShapeRef.new(shape: FilterList, location_name: "Filter"))
    DescribeSubnetsRequest.add_member(:subnet_ids, Shapes::ShapeRef.new(shape: SubnetIdStringList, location_name: "SubnetId"))
    DescribeSubnetsRequest.add_member(:next_token, Shapes::ShapeRef.new(shape: String, location_name: "NextToken"))
    DescribeSubnetsRequest.add_member(:max_results, Shapes::ShapeRef.new(shape: DescribeSubnetsMaxResults, location_name: "MaxResults"))
    DescribeSubnetsRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "dryRun"))
    DescribeSubnetsRequest.struct_class = Types::DescribeSubnetsRequest

    DescribeSubnetsResult.add_member(:next_token, Shapes::ShapeRef.new(shape: String, location_name: "nextToken"))
    DescribeSubnetsResult.add_member(:subnets, Shapes::ShapeRef.new(shape: SubnetList, location_name: "subnetSet"))
    DescribeSubnetsResult.struct_class = Types::DescribeSubnetsResult

    DescribeTagsRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "dryRun"))
    DescribeTagsRequest.add_member(:filters, Shapes::ShapeRef.new(shape: FilterList, location_name: "Filter"))
    DescribeTagsRequest.add_member(:max_results, Shapes::ShapeRef.new(shape: Integer, location_name: "maxResults"))
    DescribeTagsRequest.add_member(:next_token, Shapes::ShapeRef.new(shape: String, location_name: "nextToken"))
    DescribeTagsRequest.struct_class = Types::DescribeTagsRequest

    DescribeTagsResult.add_member(:next_token, Shapes::ShapeRef.new(shape: String, location_name: "nextToken"))
    DescribeTagsResult.add_member(:tags, Shapes::ShapeRef.new(shape: TagDescriptionList, location_name: "tagSet"))
    DescribeTagsResult.struct_class = Types::DescribeTagsResult

    DescribeTrafficMirrorFilterRulesRequest.add_member(:traffic_mirror_filter_rule_ids, Shapes::ShapeRef.new(shape: TrafficMirrorFilterRuleIdList, location_name: "TrafficMirrorFilterRuleId"))
    DescribeTrafficMirrorFilterRulesRequest.add_member(:traffic_mirror_filter_id, Shapes::ShapeRef.new(shape: TrafficMirrorFilterId, location_name: "TrafficMirrorFilterId"))
    DescribeTrafficMirrorFilterRulesRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    DescribeTrafficMirrorFilterRulesRequest.add_member(:filters, Shapes::ShapeRef.new(shape: FilterList, location_name: "Filter"))
    DescribeTrafficMirrorFilterRulesRequest.add_member(:max_results, Shapes::ShapeRef.new(shape: TrafficMirroringMaxResults, location_name: "MaxResults"))
    DescribeTrafficMirrorFilterRulesRequest.add_member(:next_token, Shapes::ShapeRef.new(shape: NextToken, location_name: "NextToken"))
    DescribeTrafficMirrorFilterRulesRequest.struct_class = Types::DescribeTrafficMirrorFilterRulesRequest

    DescribeTrafficMirrorFilterRulesResult.add_member(:traffic_mirror_filter_rules, Shapes::ShapeRef.new(shape: TrafficMirrorFilterRuleSet, location_name: "trafficMirrorFilterRuleSet"))
    DescribeTrafficMirrorFilterRulesResult.add_member(:next_token, Shapes::ShapeRef.new(shape: String, location_name: "nextToken"))
    DescribeTrafficMirrorFilterRulesResult.struct_class = Types::DescribeTrafficMirrorFilterRulesResult

    DescribeTrafficMirrorFiltersRequest.add_member(:traffic_mirror_filter_ids, Shapes::ShapeRef.new(shape: TrafficMirrorFilterIdList, location_name: "TrafficMirrorFilterId"))
    DescribeTrafficMirrorFiltersRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    DescribeTrafficMirrorFiltersRequest.add_member(:filters, Shapes::ShapeRef.new(shape: FilterList, location_name: "Filter"))
    DescribeTrafficMirrorFiltersRequest.add_member(:max_results, Shapes::ShapeRef.new(shape: TrafficMirroringMaxResults, location_name: "MaxResults"))
    DescribeTrafficMirrorFiltersRequest.add_member(:next_token, Shapes::ShapeRef.new(shape: NextToken, location_name: "NextToken"))
    DescribeTrafficMirrorFiltersRequest.struct_class = Types::DescribeTrafficMirrorFiltersRequest

    DescribeTrafficMirrorFiltersResult.add_member(:traffic_mirror_filters, Shapes::ShapeRef.new(shape: TrafficMirrorFilterSet, location_name: "trafficMirrorFilterSet"))
    DescribeTrafficMirrorFiltersResult.add_member(:next_token, Shapes::ShapeRef.new(shape: String, location_name: "nextToken"))
    DescribeTrafficMirrorFiltersResult.struct_class = Types::DescribeTrafficMirrorFiltersResult

    DescribeTrafficMirrorSessionsRequest.add_member(:traffic_mirror_session_ids, Shapes::ShapeRef.new(shape: TrafficMirrorSessionIdList, location_name: "TrafficMirrorSessionId"))
    DescribeTrafficMirrorSessionsRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    DescribeTrafficMirrorSessionsRequest.add_member(:filters, Shapes::ShapeRef.new(shape: FilterList, location_name: "Filter"))
    DescribeTrafficMirrorSessionsRequest.add_member(:max_results, Shapes::ShapeRef.new(shape: TrafficMirroringMaxResults, location_name: "MaxResults"))
    DescribeTrafficMirrorSessionsRequest.add_member(:next_token, Shapes::ShapeRef.new(shape: NextToken, location_name: "NextToken"))
    DescribeTrafficMirrorSessionsRequest.struct_class = Types::DescribeTrafficMirrorSessionsRequest

    DescribeTrafficMirrorSessionsResult.add_member(:traffic_mirror_sessions, Shapes::ShapeRef.new(shape: TrafficMirrorSessionSet, location_name: "trafficMirrorSessionSet"))
    DescribeTrafficMirrorSessionsResult.add_member(:next_token, Shapes::ShapeRef.new(shape: String, location_name: "nextToken"))
    DescribeTrafficMirrorSessionsResult.struct_class = Types::DescribeTrafficMirrorSessionsResult

    DescribeTrafficMirrorTargetsRequest.add_member(:traffic_mirror_target_ids, Shapes::ShapeRef.new(shape: TrafficMirrorTargetIdList, location_name: "TrafficMirrorTargetId"))
    DescribeTrafficMirrorTargetsRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    DescribeTrafficMirrorTargetsRequest.add_member(:filters, Shapes::ShapeRef.new(shape: FilterList, location_name: "Filter"))
    DescribeTrafficMirrorTargetsRequest.add_member(:max_results, Shapes::ShapeRef.new(shape: TrafficMirroringMaxResults, location_name: "MaxResults"))
    DescribeTrafficMirrorTargetsRequest.add_member(:next_token, Shapes::ShapeRef.new(shape: NextToken, location_name: "NextToken"))
    DescribeTrafficMirrorTargetsRequest.struct_class = Types::DescribeTrafficMirrorTargetsRequest

    DescribeTrafficMirrorTargetsResult.add_member(:traffic_mirror_targets, Shapes::ShapeRef.new(shape: TrafficMirrorTargetSet, location_name: "trafficMirrorTargetSet"))
    DescribeTrafficMirrorTargetsResult.add_member(:next_token, Shapes::ShapeRef.new(shape: String, location_name: "nextToken"))
    DescribeTrafficMirrorTargetsResult.struct_class = Types::DescribeTrafficMirrorTargetsResult

    DescribeTransitGatewayAttachmentsRequest.add_member(:transit_gateway_attachment_ids, Shapes::ShapeRef.new(shape: TransitGatewayAttachmentIdStringList, location_name: "TransitGatewayAttachmentIds"))
    DescribeTransitGatewayAttachmentsRequest.add_member(:filters, Shapes::ShapeRef.new(shape: FilterList, location_name: "Filter"))
    DescribeTransitGatewayAttachmentsRequest.add_member(:max_results, Shapes::ShapeRef.new(shape: TransitGatewayMaxResults, location_name: "MaxResults"))
    DescribeTransitGatewayAttachmentsRequest.add_member(:next_token, Shapes::ShapeRef.new(shape: String, location_name: "NextToken"))
    DescribeTransitGatewayAttachmentsRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    DescribeTransitGatewayAttachmentsRequest.struct_class = Types::DescribeTransitGatewayAttachmentsRequest

    DescribeTransitGatewayAttachmentsResult.add_member(:transit_gateway_attachments, Shapes::ShapeRef.new(shape: TransitGatewayAttachmentList, location_name: "transitGatewayAttachments"))
    DescribeTransitGatewayAttachmentsResult.add_member(:next_token, Shapes::ShapeRef.new(shape: String, location_name: "nextToken"))
    DescribeTransitGatewayAttachmentsResult.struct_class = Types::DescribeTransitGatewayAttachmentsResult

    DescribeTransitGatewayConnectPeersRequest.add_member(:transit_gateway_connect_peer_ids, Shapes::ShapeRef.new(shape: TransitGatewayConnectPeerIdStringList, location_name: "TransitGatewayConnectPeerIds"))
    DescribeTransitGatewayConnectPeersRequest.add_member(:filters, Shapes::ShapeRef.new(shape: FilterList, location_name: "Filter"))
    DescribeTransitGatewayConnectPeersRequest.add_member(:max_results, Shapes::ShapeRef.new(shape: TransitGatewayMaxResults, location_name: "MaxResults"))
    DescribeTransitGatewayConnectPeersRequest.add_member(:next_token, Shapes::ShapeRef.new(shape: String, location_name: "NextToken"))
    DescribeTransitGatewayConnectPeersRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    DescribeTransitGatewayConnectPeersRequest.struct_class = Types::DescribeTransitGatewayConnectPeersRequest

    DescribeTransitGatewayConnectPeersResult.add_member(:transit_gateway_connect_peers, Shapes::ShapeRef.new(shape: TransitGatewayConnectPeerList, location_name: "transitGatewayConnectPeerSet"))
    DescribeTransitGatewayConnectPeersResult.add_member(:next_token, Shapes::ShapeRef.new(shape: String, location_name: "nextToken"))
    DescribeTransitGatewayConnectPeersResult.struct_class = Types::DescribeTransitGatewayConnectPeersResult

    DescribeTransitGatewayConnectsRequest.add_member(:transit_gateway_attachment_ids, Shapes::ShapeRef.new(shape: TransitGatewayAttachmentIdStringList, location_name: "TransitGatewayAttachmentIds"))
    DescribeTransitGatewayConnectsRequest.add_member(:filters, Shapes::ShapeRef.new(shape: FilterList, location_name: "Filter"))
    DescribeTransitGatewayConnectsRequest.add_member(:max_results, Shapes::ShapeRef.new(shape: TransitGatewayMaxResults, location_name: "MaxResults"))
    DescribeTransitGatewayConnectsRequest.add_member(:next_token, Shapes::ShapeRef.new(shape: String, location_name: "NextToken"))
    DescribeTransitGatewayConnectsRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    DescribeTransitGatewayConnectsRequest.struct_class = Types::DescribeTransitGatewayConnectsRequest

    DescribeTransitGatewayConnectsResult.add_member(:transit_gateway_connects, Shapes::ShapeRef.new(shape: TransitGatewayConnectList, location_name: "transitGatewayConnectSet"))
    DescribeTransitGatewayConnectsResult.add_member(:next_token, Shapes::ShapeRef.new(shape: String, location_name: "nextToken"))
    DescribeTransitGatewayConnectsResult.struct_class = Types::DescribeTransitGatewayConnectsResult

    DescribeTransitGatewayMulticastDomainsRequest.add_member(:transit_gateway_multicast_domain_ids, Shapes::ShapeRef.new(shape: TransitGatewayMulticastDomainIdStringList, location_name: "TransitGatewayMulticastDomainIds"))
    DescribeTransitGatewayMulticastDomainsRequest.add_member(:filters, Shapes::ShapeRef.new(shape: FilterList, location_name: "Filter"))
    DescribeTransitGatewayMulticastDomainsRequest.add_member(:max_results, Shapes::ShapeRef.new(shape: TransitGatewayMaxResults, location_name: "MaxResults"))
    DescribeTransitGatewayMulticastDomainsRequest.add_member(:next_token, Shapes::ShapeRef.new(shape: String, location_name: "NextToken"))
    DescribeTransitGatewayMulticastDomainsRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    DescribeTransitGatewayMulticastDomainsRequest.struct_class = Types::DescribeTransitGatewayMulticastDomainsRequest

    DescribeTransitGatewayMulticastDomainsResult.add_member(:transit_gateway_multicast_domains, Shapes::ShapeRef.new(shape: TransitGatewayMulticastDomainList, location_name: "transitGatewayMulticastDomains"))
    DescribeTransitGatewayMulticastDomainsResult.add_member(:next_token, Shapes::ShapeRef.new(shape: String, location_name: "nextToken"))
    DescribeTransitGatewayMulticastDomainsResult.struct_class = Types::DescribeTransitGatewayMulticastDomainsResult

    DescribeTransitGatewayPeeringAttachmentsRequest.add_member(:transit_gateway_attachment_ids, Shapes::ShapeRef.new(shape: TransitGatewayAttachmentIdStringList, location_name: "TransitGatewayAttachmentIds"))
    DescribeTransitGatewayPeeringAttachmentsRequest.add_member(:filters, Shapes::ShapeRef.new(shape: FilterList, location_name: "Filter"))
    DescribeTransitGatewayPeeringAttachmentsRequest.add_member(:max_results, Shapes::ShapeRef.new(shape: TransitGatewayMaxResults, location_name: "MaxResults"))
    DescribeTransitGatewayPeeringAttachmentsRequest.add_member(:next_token, Shapes::ShapeRef.new(shape: String, location_name: "NextToken"))
    DescribeTransitGatewayPeeringAttachmentsRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    DescribeTransitGatewayPeeringAttachmentsRequest.struct_class = Types::DescribeTransitGatewayPeeringAttachmentsRequest

    DescribeTransitGatewayPeeringAttachmentsResult.add_member(:transit_gateway_peering_attachments, Shapes::ShapeRef.new(shape: TransitGatewayPeeringAttachmentList, location_name: "transitGatewayPeeringAttachments"))
    DescribeTransitGatewayPeeringAttachmentsResult.add_member(:next_token, Shapes::ShapeRef.new(shape: String, location_name: "nextToken"))
    DescribeTransitGatewayPeeringAttachmentsResult.struct_class = Types::DescribeTransitGatewayPeeringAttachmentsResult

    DescribeTransitGatewayPolicyTablesRequest.add_member(:transit_gateway_policy_table_ids, Shapes::ShapeRef.new(shape: TransitGatewayPolicyTableIdStringList, location_name: "TransitGatewayPolicyTableIds"))
    DescribeTransitGatewayPolicyTablesRequest.add_member(:filters, Shapes::ShapeRef.new(shape: FilterList, location_name: "Filter"))
    DescribeTransitGatewayPolicyTablesRequest.add_member(:max_results, Shapes::ShapeRef.new(shape: TransitGatewayMaxResults, location_name: "MaxResults"))
    DescribeTransitGatewayPolicyTablesRequest.add_member(:next_token, Shapes::ShapeRef.new(shape: String, location_name: "NextToken"))
    DescribeTransitGatewayPolicyTablesRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    DescribeTransitGatewayPolicyTablesRequest.struct_class = Types::DescribeTransitGatewayPolicyTablesRequest

    DescribeTransitGatewayPolicyTablesResult.add_member(:transit_gateway_policy_tables, Shapes::ShapeRef.new(shape: TransitGatewayPolicyTableList, location_name: "transitGatewayPolicyTables"))
    DescribeTransitGatewayPolicyTablesResult.add_member(:next_token, Shapes::ShapeRef.new(shape: String, location_name: "nextToken"))
    DescribeTransitGatewayPolicyTablesResult.struct_class = Types::DescribeTransitGatewayPolicyTablesResult

    DescribeTransitGatewayRouteTableAnnouncementsRequest.add_member(:transit_gateway_route_table_announcement_ids, Shapes::ShapeRef.new(shape: TransitGatewayRouteTableAnnouncementIdStringList, location_name: "TransitGatewayRouteTableAnnouncementIds"))
    DescribeTransitGatewayRouteTableAnnouncementsRequest.add_member(:filters, Shapes::ShapeRef.new(shape: FilterList, location_name: "Filter"))
    DescribeTransitGatewayRouteTableAnnouncementsRequest.add_member(:max_results, Shapes::ShapeRef.new(shape: TransitGatewayMaxResults, location_name: "MaxResults"))
    DescribeTransitGatewayRouteTableAnnouncementsRequest.add_member(:next_token, Shapes::ShapeRef.new(shape: String, location_name: "NextToken"))
    DescribeTransitGatewayRouteTableAnnouncementsRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    DescribeTransitGatewayRouteTableAnnouncementsRequest.struct_class = Types::DescribeTransitGatewayRouteTableAnnouncementsRequest

    DescribeTransitGatewayRouteTableAnnouncementsResult.add_member(:transit_gateway_route_table_announcements, Shapes::ShapeRef.new(shape: TransitGatewayRouteTableAnnouncementList, location_name: "transitGatewayRouteTableAnnouncements"))
    DescribeTransitGatewayRouteTableAnnouncementsResult.add_member(:next_token, Shapes::ShapeRef.new(shape: String, location_name: "nextToken"))
    DescribeTransitGatewayRouteTableAnnouncementsResult.struct_class = Types::DescribeTransitGatewayRouteTableAnnouncementsResult

    DescribeTransitGatewayRouteTablesRequest.add_member(:transit_gateway_route_table_ids, Shapes::ShapeRef.new(shape: TransitGatewayRouteTableIdStringList, location_name: "TransitGatewayRouteTableIds"))
    DescribeTransitGatewayRouteTablesRequest.add_member(:filters, Shapes::ShapeRef.new(shape: FilterList, location_name: "Filter"))
    DescribeTransitGatewayRouteTablesRequest.add_member(:max_results, Shapes::ShapeRef.new(shape: TransitGatewayMaxResults, location_name: "MaxResults"))
    DescribeTransitGatewayRouteTablesRequest.add_member(:next_token, Shapes::ShapeRef.new(shape: String, location_name: "NextToken"))
    DescribeTransitGatewayRouteTablesRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    DescribeTransitGatewayRouteTablesRequest.struct_class = Types::DescribeTransitGatewayRouteTablesRequest

    DescribeTransitGatewayRouteTablesResult.add_member(:transit_gateway_route_tables, Shapes::ShapeRef.new(shape: TransitGatewayRouteTableList, location_name: "transitGatewayRouteTables"))
    DescribeTransitGatewayRouteTablesResult.add_member(:next_token, Shapes::ShapeRef.new(shape: String, location_name: "nextToken"))
    DescribeTransitGatewayRouteTablesResult.struct_class = Types::DescribeTransitGatewayRouteTablesResult

    DescribeTransitGatewayVpcAttachmentsRequest.add_member(:transit_gateway_attachment_ids, Shapes::ShapeRef.new(shape: TransitGatewayAttachmentIdStringList, location_name: "TransitGatewayAttachmentIds"))
    DescribeTransitGatewayVpcAttachmentsRequest.add_member(:filters, Shapes::ShapeRef.new(shape: FilterList, location_name: "Filter"))
    DescribeTransitGatewayVpcAttachmentsRequest.add_member(:max_results, Shapes::ShapeRef.new(shape: TransitGatewayMaxResults, location_name: "MaxResults"))
    DescribeTransitGatewayVpcAttachmentsRequest.add_member(:next_token, Shapes::ShapeRef.new(shape: String, location_name: "NextToken"))
    DescribeTransitGatewayVpcAttachmentsRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    DescribeTransitGatewayVpcAttachmentsRequest.struct_class = Types::DescribeTransitGatewayVpcAttachmentsRequest

    DescribeTransitGatewayVpcAttachmentsResult.add_member(:transit_gateway_vpc_attachments, Shapes::ShapeRef.new(shape: TransitGatewayVpcAttachmentList, location_name: "transitGatewayVpcAttachments"))
    DescribeTransitGatewayVpcAttachmentsResult.add_member(:next_token, Shapes::ShapeRef.new(shape: String, location_name: "nextToken"))
    DescribeTransitGatewayVpcAttachmentsResult.struct_class = Types::DescribeTransitGatewayVpcAttachmentsResult

    DescribeTransitGatewaysRequest.add_member(:transit_gateway_ids, Shapes::ShapeRef.new(shape: TransitGatewayIdStringList, location_name: "TransitGatewayIds"))
    DescribeTransitGatewaysRequest.add_member(:filters, Shapes::ShapeRef.new(shape: FilterList, location_name: "Filter"))
    DescribeTransitGatewaysRequest.add_member(:max_results, Shapes::ShapeRef.new(shape: TransitGatewayMaxResults, location_name: "MaxResults"))
    DescribeTransitGatewaysRequest.add_member(:next_token, Shapes::ShapeRef.new(shape: String, location_name: "NextToken"))
    DescribeTransitGatewaysRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    DescribeTransitGatewaysRequest.struct_class = Types::DescribeTransitGatewaysRequest

    DescribeTransitGatewaysResult.add_member(:transit_gateways, Shapes::ShapeRef.new(shape: TransitGatewayList, location_name: "transitGatewaySet"))
    DescribeTransitGatewaysResult.add_member(:next_token, Shapes::ShapeRef.new(shape: String, location_name: "nextToken"))
    DescribeTransitGatewaysResult.struct_class = Types::DescribeTransitGatewaysResult

    DescribeTrunkInterfaceAssociationsRequest.add_member(:association_ids, Shapes::ShapeRef.new(shape: TrunkInterfaceAssociationIdList, location_name: "AssociationId"))
    DescribeTrunkInterfaceAssociationsRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    DescribeTrunkInterfaceAssociationsRequest.add_member(:filters, Shapes::ShapeRef.new(shape: FilterList, location_name: "Filter"))
    DescribeTrunkInterfaceAssociationsRequest.add_member(:next_token, Shapes::ShapeRef.new(shape: String, location_name: "NextToken"))
    DescribeTrunkInterfaceAssociationsRequest.add_member(:max_results, Shapes::ShapeRef.new(shape: DescribeTrunkInterfaceAssociationsMaxResults, location_name: "MaxResults"))
    DescribeTrunkInterfaceAssociationsRequest.struct_class = Types::DescribeTrunkInterfaceAssociationsRequest

    DescribeTrunkInterfaceAssociationsResult.add_member(:interface_associations, Shapes::ShapeRef.new(shape: TrunkInterfaceAssociationList, location_name: "interfaceAssociationSet"))
    DescribeTrunkInterfaceAssociationsResult.add_member(:next_token, Shapes::ShapeRef.new(shape: String, location_name: "nextToken"))
    DescribeTrunkInterfaceAssociationsResult.struct_class = Types::DescribeTrunkInterfaceAssociationsResult

    DescribeVerifiedAccessEndpointsRequest.add_member(:verified_access_endpoint_ids, Shapes::ShapeRef.new(shape: VerifiedAccessEndpointIdList, location_name: "VerifiedAccessEndpointId"))
    DescribeVerifiedAccessEndpointsRequest.add_member(:verified_access_instance_id, Shapes::ShapeRef.new(shape: VerifiedAccessInstanceId, location_name: "VerifiedAccessInstanceId"))
    DescribeVerifiedAccessEndpointsRequest.add_member(:verified_access_group_id, Shapes::ShapeRef.new(shape: VerifiedAccessGroupId, location_name: "VerifiedAccessGroupId"))
    DescribeVerifiedAccessEndpointsRequest.add_member(:max_results, Shapes::ShapeRef.new(shape: DescribeVerifiedAccessEndpointsMaxResults, location_name: "MaxResults"))
    DescribeVerifiedAccessEndpointsRequest.add_member(:next_token, Shapes::ShapeRef.new(shape: NextToken, location_name: "NextToken"))
    DescribeVerifiedAccessEndpointsRequest.add_member(:filters, Shapes::ShapeRef.new(shape: FilterList, location_name: "Filter"))
    DescribeVerifiedAccessEndpointsRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    DescribeVerifiedAccessEndpointsRequest.struct_class = Types::DescribeVerifiedAccessEndpointsRequest

    DescribeVerifiedAccessEndpointsResult.add_member(:verified_access_endpoints, Shapes::ShapeRef.new(shape: VerifiedAccessEndpointList, location_name: "verifiedAccessEndpointSet"))
    DescribeVerifiedAccessEndpointsResult.add_member(:next_token, Shapes::ShapeRef.new(shape: NextToken, location_name: "nextToken"))
    DescribeVerifiedAccessEndpointsResult.struct_class = Types::DescribeVerifiedAccessEndpointsResult

    DescribeVerifiedAccessGroupsRequest.add_member(:verified_access_group_ids, Shapes::ShapeRef.new(shape: VerifiedAccessGroupIdList, location_name: "VerifiedAccessGroupId"))
    DescribeVerifiedAccessGroupsRequest.add_member(:verified_access_instance_id, Shapes::ShapeRef.new(shape: VerifiedAccessInstanceId, location_name: "VerifiedAccessInstanceId"))
    DescribeVerifiedAccessGroupsRequest.add_member(:max_results, Shapes::ShapeRef.new(shape: DescribeVerifiedAccessGroupMaxResults, location_name: "MaxResults"))
    DescribeVerifiedAccessGroupsRequest.add_member(:next_token, Shapes::ShapeRef.new(shape: NextToken, location_name: "NextToken"))
    DescribeVerifiedAccessGroupsRequest.add_member(:filters, Shapes::ShapeRef.new(shape: FilterList, location_name: "Filter"))
    DescribeVerifiedAccessGroupsRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    DescribeVerifiedAccessGroupsRequest.struct_class = Types::DescribeVerifiedAccessGroupsRequest

    DescribeVerifiedAccessGroupsResult.add_member(:verified_access_groups, Shapes::ShapeRef.new(shape: VerifiedAccessGroupList, location_name: "verifiedAccessGroupSet"))
    DescribeVerifiedAccessGroupsResult.add_member(:next_token, Shapes::ShapeRef.new(shape: NextToken, location_name: "nextToken"))
    DescribeVerifiedAccessGroupsResult.struct_class = Types::DescribeVerifiedAccessGroupsResult

    DescribeVerifiedAccessInstanceLoggingConfigurationsRequest.add_member(:verified_access_instance_ids, Shapes::ShapeRef.new(shape: VerifiedAccessInstanceIdList, location_name: "VerifiedAccessInstanceId"))
    DescribeVerifiedAccessInstanceLoggingConfigurationsRequest.add_member(:max_results, Shapes::ShapeRef.new(shape: DescribeVerifiedAccessInstanceLoggingConfigurationsMaxResults, location_name: "MaxResults"))
    DescribeVerifiedAccessInstanceLoggingConfigurationsRequest.add_member(:next_token, Shapes::ShapeRef.new(shape: NextToken, location_name: "NextToken"))
    DescribeVerifiedAccessInstanceLoggingConfigurationsRequest.add_member(:filters, Shapes::ShapeRef.new(shape: FilterList, location_name: "Filter"))
    DescribeVerifiedAccessInstanceLoggingConfigurationsRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    DescribeVerifiedAccessInstanceLoggingConfigurationsRequest.struct_class = Types::DescribeVerifiedAccessInstanceLoggingConfigurationsRequest

    DescribeVerifiedAccessInstanceLoggingConfigurationsResult.add_member(:logging_configurations, Shapes::ShapeRef.new(shape: VerifiedAccessInstanceLoggingConfigurationList, location_name: "loggingConfigurationSet"))
    DescribeVerifiedAccessInstanceLoggingConfigurationsResult.add_member(:next_token, Shapes::ShapeRef.new(shape: NextToken, location_name: "nextToken"))
    DescribeVerifiedAccessInstanceLoggingConfigurationsResult.struct_class = Types::DescribeVerifiedAccessInstanceLoggingConfigurationsResult

    DescribeVerifiedAccessInstancesRequest.add_member(:verified_access_instance_ids, Shapes::ShapeRef.new(shape: VerifiedAccessInstanceIdList, location_name: "VerifiedAccessInstanceId"))
    DescribeVerifiedAccessInstancesRequest.add_member(:max_results, Shapes::ShapeRef.new(shape: DescribeVerifiedAccessInstancesMaxResults, location_name: "MaxResults"))
    DescribeVerifiedAccessInstancesRequest.add_member(:next_token, Shapes::ShapeRef.new(shape: NextToken, location_name: "NextToken"))
    DescribeVerifiedAccessInstancesRequest.add_member(:filters, Shapes::ShapeRef.new(shape: FilterList, location_name: "Filter"))
    DescribeVerifiedAccessInstancesRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    DescribeVerifiedAccessInstancesRequest.struct_class = Types::DescribeVerifiedAccessInstancesRequest

    DescribeVerifiedAccessInstancesResult.add_member(:verified_access_instances, Shapes::ShapeRef.new(shape: VerifiedAccessInstanceList, location_name: "verifiedAccessInstanceSet"))
    DescribeVerifiedAccessInstancesResult.add_member(:next_token, Shapes::ShapeRef.new(shape: NextToken, location_name: "nextToken"))
    DescribeVerifiedAccessInstancesResult.struct_class = Types::DescribeVerifiedAccessInstancesResult

    DescribeVerifiedAccessTrustProvidersRequest.add_member(:verified_access_trust_provider_ids, Shapes::ShapeRef.new(shape: VerifiedAccessTrustProviderIdList, location_name: "VerifiedAccessTrustProviderId"))
    DescribeVerifiedAccessTrustProvidersRequest.add_member(:max_results, Shapes::ShapeRef.new(shape: DescribeVerifiedAccessTrustProvidersMaxResults, location_name: "MaxResults"))
    DescribeVerifiedAccessTrustProvidersRequest.add_member(:next_token, Shapes::ShapeRef.new(shape: NextToken, location_name: "NextToken"))
    DescribeVerifiedAccessTrustProvidersRequest.add_member(:filters, Shapes::ShapeRef.new(shape: FilterList, location_name: "Filter"))
    DescribeVerifiedAccessTrustProvidersRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    DescribeVerifiedAccessTrustProvidersRequest.struct_class = Types::DescribeVerifiedAccessTrustProvidersRequest

    DescribeVerifiedAccessTrustProvidersResult.add_member(:verified_access_trust_providers, Shapes::ShapeRef.new(shape: VerifiedAccessTrustProviderList, location_name: "verifiedAccessTrustProviderSet"))
    DescribeVerifiedAccessTrustProvidersResult.add_member(:next_token, Shapes::ShapeRef.new(shape: NextToken, location_name: "nextToken"))
    DescribeVerifiedAccessTrustProvidersResult.struct_class = Types::DescribeVerifiedAccessTrustProvidersResult

    DescribeVolumeAttributeRequest.add_member(:attribute, Shapes::ShapeRef.new(shape: VolumeAttributeName, required: true, location_name: "Attribute"))
    DescribeVolumeAttributeRequest.add_member(:volume_id, Shapes::ShapeRef.new(shape: VolumeId, required: true, location_name: "VolumeId"))
    DescribeVolumeAttributeRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "dryRun"))
    DescribeVolumeAttributeRequest.struct_class = Types::DescribeVolumeAttributeRequest

    DescribeVolumeAttributeResult.add_member(:auto_enable_io, Shapes::ShapeRef.new(shape: AttributeBooleanValue, location_name: "autoEnableIO"))
    DescribeVolumeAttributeResult.add_member(:product_codes, Shapes::ShapeRef.new(shape: ProductCodeList, location_name: "productCodes"))
    DescribeVolumeAttributeResult.add_member(:volume_id, Shapes::ShapeRef.new(shape: String, location_name: "volumeId"))
    DescribeVolumeAttributeResult.struct_class = Types::DescribeVolumeAttributeResult

    DescribeVolumeStatusRequest.add_member(:max_results, Shapes::ShapeRef.new(shape: Integer, location_name: "MaxResults"))
    DescribeVolumeStatusRequest.add_member(:next_token, Shapes::ShapeRef.new(shape: String, location_name: "NextToken"))
    DescribeVolumeStatusRequest.add_member(:volume_ids, Shapes::ShapeRef.new(shape: VolumeIdStringList, location_name: "VolumeId"))
    DescribeVolumeStatusRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "dryRun"))
    DescribeVolumeStatusRequest.add_member(:filters, Shapes::ShapeRef.new(shape: FilterList, location_name: "Filter"))
    DescribeVolumeStatusRequest.struct_class = Types::DescribeVolumeStatusRequest

    DescribeVolumeStatusResult.add_member(:next_token, Shapes::ShapeRef.new(shape: String, location_name: "nextToken"))
    DescribeVolumeStatusResult.add_member(:volume_statuses, Shapes::ShapeRef.new(shape: VolumeStatusList, location_name: "volumeStatusSet"))
    DescribeVolumeStatusResult.struct_class = Types::DescribeVolumeStatusResult

    DescribeVolumesModificationsRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    DescribeVolumesModificationsRequest.add_member(:volume_ids, Shapes::ShapeRef.new(shape: VolumeIdStringList, location_name: "VolumeId"))
    DescribeVolumesModificationsRequest.add_member(:filters, Shapes::ShapeRef.new(shape: FilterList, location_name: "Filter"))
    DescribeVolumesModificationsRequest.add_member(:next_token, Shapes::ShapeRef.new(shape: String, location_name: "NextToken"))
    DescribeVolumesModificationsRequest.add_member(:max_results, Shapes::ShapeRef.new(shape: Integer, location_name: "MaxResults"))
    DescribeVolumesModificationsRequest.struct_class = Types::DescribeVolumesModificationsRequest

    DescribeVolumesModificationsResult.add_member(:next_token, Shapes::ShapeRef.new(shape: String, location_name: "nextToken"))
    DescribeVolumesModificationsResult.add_member(:volumes_modifications, Shapes::ShapeRef.new(shape: VolumeModificationList, location_name: "volumeModificationSet"))
    DescribeVolumesModificationsResult.struct_class = Types::DescribeVolumesModificationsResult

    DescribeVolumesRequest.add_member(:volume_ids, Shapes::ShapeRef.new(shape: VolumeIdStringList, location_name: "VolumeId"))
    DescribeVolumesRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "dryRun"))
    DescribeVolumesRequest.add_member(:filters, Shapes::ShapeRef.new(shape: FilterList, location_name: "Filter"))
    DescribeVolumesRequest.add_member(:next_token, Shapes::ShapeRef.new(shape: String, location_name: "nextToken"))
    DescribeVolumesRequest.add_member(:max_results, Shapes::ShapeRef.new(shape: Integer, location_name: "maxResults"))
    DescribeVolumesRequest.struct_class = Types::DescribeVolumesRequest

    DescribeVolumesResult.add_member(:next_token, Shapes::ShapeRef.new(shape: String, location_name: "nextToken"))
    DescribeVolumesResult.add_member(:volumes, Shapes::ShapeRef.new(shape: VolumeList, location_name: "volumeSet"))
    DescribeVolumesResult.struct_class = Types::DescribeVolumesResult

    DescribeVpcAttributeRequest.add_member(:attribute, Shapes::ShapeRef.new(shape: VpcAttributeName, required: true, location_name: "Attribute"))
    DescribeVpcAttributeRequest.add_member(:vpc_id, Shapes::ShapeRef.new(shape: VpcId, required: true, location_name: "VpcId"))
    DescribeVpcAttributeRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "dryRun"))
    DescribeVpcAttributeRequest.struct_class = Types::DescribeVpcAttributeRequest

    DescribeVpcAttributeResult.add_member(:enable_dns_hostnames, Shapes::ShapeRef.new(shape: AttributeBooleanValue, location_name: "enableDnsHostnames"))
    DescribeVpcAttributeResult.add_member(:enable_dns_support, Shapes::ShapeRef.new(shape: AttributeBooleanValue, location_name: "enableDnsSupport"))
    DescribeVpcAttributeResult.add_member(:enable_network_address_usage_metrics, Shapes::ShapeRef.new(shape: AttributeBooleanValue, location_name: "enableNetworkAddressUsageMetrics"))
    DescribeVpcAttributeResult.add_member(:vpc_id, Shapes::ShapeRef.new(shape: String, location_name: "vpcId"))
    DescribeVpcAttributeResult.struct_class = Types::DescribeVpcAttributeResult

    DescribeVpcBlockPublicAccessExclusionsRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    DescribeVpcBlockPublicAccessExclusionsRequest.add_member(:filters, Shapes::ShapeRef.new(shape: FilterList, location_name: "Filter"))
    DescribeVpcBlockPublicAccessExclusionsRequest.add_member(:exclusion_ids, Shapes::ShapeRef.new(shape: VpcBlockPublicAccessExclusionIdList, location_name: "ExclusionId"))
    DescribeVpcBlockPublicAccessExclusionsRequest.add_member(:next_token, Shapes::ShapeRef.new(shape: String, location_name: "NextToken"))
    DescribeVpcBlockPublicAccessExclusionsRequest.add_member(:max_results, Shapes::ShapeRef.new(shape: DescribeVpcBlockPublicAccessExclusionsMaxResults, location_name: "MaxResults"))
    DescribeVpcBlockPublicAccessExclusionsRequest.struct_class = Types::DescribeVpcBlockPublicAccessExclusionsRequest

    DescribeVpcBlockPublicAccessExclusionsResult.add_member(:vpc_block_public_access_exclusions, Shapes::ShapeRef.new(shape: VpcBlockPublicAccessExclusionList, location_name: "vpcBlockPublicAccessExclusionSet"))
    DescribeVpcBlockPublicAccessExclusionsResult.add_member(:next_token, Shapes::ShapeRef.new(shape: String, location_name: "nextToken"))
    DescribeVpcBlockPublicAccessExclusionsResult.struct_class = Types::DescribeVpcBlockPublicAccessExclusionsResult

    DescribeVpcBlockPublicAccessOptionsRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    DescribeVpcBlockPublicAccessOptionsRequest.struct_class = Types::DescribeVpcBlockPublicAccessOptionsRequest

    DescribeVpcBlockPublicAccessOptionsResult.add_member(:vpc_block_public_access_options, Shapes::ShapeRef.new(shape: VpcBlockPublicAccessOptions, location_name: "vpcBlockPublicAccessOptions"))
    DescribeVpcBlockPublicAccessOptionsResult.struct_class = Types::DescribeVpcBlockPublicAccessOptionsResult

    DescribeVpcClassicLinkDnsSupportRequest.add_member(:vpc_ids, Shapes::ShapeRef.new(shape: VpcClassicLinkIdList, location_name: "VpcIds"))
    DescribeVpcClassicLinkDnsSupportRequest.add_member(:max_results, Shapes::ShapeRef.new(shape: DescribeVpcClassicLinkDnsSupportMaxResults, location_name: "maxResults"))
    DescribeVpcClassicLinkDnsSupportRequest.add_member(:next_token, Shapes::ShapeRef.new(shape: DescribeVpcClassicLinkDnsSupportNextToken, location_name: "nextToken"))
    DescribeVpcClassicLinkDnsSupportRequest.struct_class = Types::DescribeVpcClassicLinkDnsSupportRequest

    DescribeVpcClassicLinkDnsSupportResult.add_member(:next_token, Shapes::ShapeRef.new(shape: DescribeVpcClassicLinkDnsSupportNextToken, location_name: "nextToken"))
    DescribeVpcClassicLinkDnsSupportResult.add_member(:vpcs, Shapes::ShapeRef.new(shape: ClassicLinkDnsSupportList, location_name: "vpcs"))
    DescribeVpcClassicLinkDnsSupportResult.struct_class = Types::DescribeVpcClassicLinkDnsSupportResult

    DescribeVpcClassicLinkRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "dryRun"))
    DescribeVpcClassicLinkRequest.add_member(:vpc_ids, Shapes::ShapeRef.new(shape: VpcClassicLinkIdList, location_name: "VpcId"))
    DescribeVpcClassicLinkRequest.add_member(:filters, Shapes::ShapeRef.new(shape: FilterList, location_name: "Filter"))
    DescribeVpcClassicLinkRequest.struct_class = Types::DescribeVpcClassicLinkRequest

    DescribeVpcClassicLinkResult.add_member(:vpcs, Shapes::ShapeRef.new(shape: VpcClassicLinkList, location_name: "vpcSet"))
    DescribeVpcClassicLinkResult.struct_class = Types::DescribeVpcClassicLinkResult

    DescribeVpcEndpointAssociationsRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    DescribeVpcEndpointAssociationsRequest.add_member(:vpc_endpoint_ids, Shapes::ShapeRef.new(shape: VpcEndpointIdList, location_name: "VpcEndpointId"))
    DescribeVpcEndpointAssociationsRequest.add_member(:filters, Shapes::ShapeRef.new(shape: FilterList, location_name: "Filter"))
    DescribeVpcEndpointAssociationsRequest.add_member(:max_results, Shapes::ShapeRef.new(shape: maxResults, location_name: "MaxResults"))
    DescribeVpcEndpointAssociationsRequest.add_member(:next_token, Shapes::ShapeRef.new(shape: String, location_name: "NextToken"))
    DescribeVpcEndpointAssociationsRequest.struct_class = Types::DescribeVpcEndpointAssociationsRequest

    DescribeVpcEndpointAssociationsResult.add_member(:vpc_endpoint_associations, Shapes::ShapeRef.new(shape: VpcEndpointAssociationSet, location_name: "vpcEndpointAssociationSet"))
    DescribeVpcEndpointAssociationsResult.add_member(:next_token, Shapes::ShapeRef.new(shape: String, location_name: "nextToken"))
    DescribeVpcEndpointAssociationsResult.struct_class = Types::DescribeVpcEndpointAssociationsResult

    DescribeVpcEndpointConnectionNotificationsRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    DescribeVpcEndpointConnectionNotificationsRequest.add_member(:connection_notification_id, Shapes::ShapeRef.new(shape: ConnectionNotificationId, location_name: "ConnectionNotificationId"))
    DescribeVpcEndpointConnectionNotificationsRequest.add_member(:filters, Shapes::ShapeRef.new(shape: FilterList, location_name: "Filter"))
    DescribeVpcEndpointConnectionNotificationsRequest.add_member(:max_results, Shapes::ShapeRef.new(shape: Integer, location_name: "MaxResults"))
    DescribeVpcEndpointConnectionNotificationsRequest.add_member(:next_token, Shapes::ShapeRef.new(shape: String, location_name: "NextToken"))
    DescribeVpcEndpointConnectionNotificationsRequest.struct_class = Types::DescribeVpcEndpointConnectionNotificationsRequest

    DescribeVpcEndpointConnectionNotificationsResult.add_member(:connection_notification_set, Shapes::ShapeRef.new(shape: ConnectionNotificationSet, location_name: "connectionNotificationSet"))
    DescribeVpcEndpointConnectionNotificationsResult.add_member(:next_token, Shapes::ShapeRef.new(shape: String, location_name: "nextToken"))
    DescribeVpcEndpointConnectionNotificationsResult.struct_class = Types::DescribeVpcEndpointConnectionNotificationsResult

    DescribeVpcEndpointConnectionsRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    DescribeVpcEndpointConnectionsRequest.add_member(:filters, Shapes::ShapeRef.new(shape: FilterList, location_name: "Filter"))
    DescribeVpcEndpointConnectionsRequest.add_member(:max_results, Shapes::ShapeRef.new(shape: Integer, location_name: "MaxResults"))
    DescribeVpcEndpointConnectionsRequest.add_member(:next_token, Shapes::ShapeRef.new(shape: String, location_name: "NextToken"))
    DescribeVpcEndpointConnectionsRequest.struct_class = Types::DescribeVpcEndpointConnectionsRequest

    DescribeVpcEndpointConnectionsResult.add_member(:vpc_endpoint_connections, Shapes::ShapeRef.new(shape: VpcEndpointConnectionSet, location_name: "vpcEndpointConnectionSet"))
    DescribeVpcEndpointConnectionsResult.add_member(:next_token, Shapes::ShapeRef.new(shape: String, location_name: "nextToken"))
    DescribeVpcEndpointConnectionsResult.struct_class = Types::DescribeVpcEndpointConnectionsResult

    DescribeVpcEndpointServiceConfigurationsRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    DescribeVpcEndpointServiceConfigurationsRequest.add_member(:service_ids, Shapes::ShapeRef.new(shape: VpcEndpointServiceIdList, location_name: "ServiceId"))
    DescribeVpcEndpointServiceConfigurationsRequest.add_member(:filters, Shapes::ShapeRef.new(shape: FilterList, location_name: "Filter"))
    DescribeVpcEndpointServiceConfigurationsRequest.add_member(:max_results, Shapes::ShapeRef.new(shape: Integer, location_name: "MaxResults"))
    DescribeVpcEndpointServiceConfigurationsRequest.add_member(:next_token, Shapes::ShapeRef.new(shape: String, location_name: "NextToken"))
    DescribeVpcEndpointServiceConfigurationsRequest.struct_class = Types::DescribeVpcEndpointServiceConfigurationsRequest

    DescribeVpcEndpointServiceConfigurationsResult.add_member(:service_configurations, Shapes::ShapeRef.new(shape: ServiceConfigurationSet, location_name: "serviceConfigurationSet"))
    DescribeVpcEndpointServiceConfigurationsResult.add_member(:next_token, Shapes::ShapeRef.new(shape: String, location_name: "nextToken"))
    DescribeVpcEndpointServiceConfigurationsResult.struct_class = Types::DescribeVpcEndpointServiceConfigurationsResult

    DescribeVpcEndpointServicePermissionsRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    DescribeVpcEndpointServicePermissionsRequest.add_member(:service_id, Shapes::ShapeRef.new(shape: VpcEndpointServiceId, required: true, location_name: "ServiceId"))
    DescribeVpcEndpointServicePermissionsRequest.add_member(:filters, Shapes::ShapeRef.new(shape: FilterList, location_name: "Filter"))
    DescribeVpcEndpointServicePermissionsRequest.add_member(:max_results, Shapes::ShapeRef.new(shape: Integer, location_name: "MaxResults"))
    DescribeVpcEndpointServicePermissionsRequest.add_member(:next_token, Shapes::ShapeRef.new(shape: String, location_name: "NextToken"))
    DescribeVpcEndpointServicePermissionsRequest.struct_class = Types::DescribeVpcEndpointServicePermissionsRequest

    DescribeVpcEndpointServicePermissionsResult.add_member(:allowed_principals, Shapes::ShapeRef.new(shape: AllowedPrincipalSet, location_name: "allowedPrincipals"))
    DescribeVpcEndpointServicePermissionsResult.add_member(:next_token, Shapes::ShapeRef.new(shape: String, location_name: "nextToken"))
    DescribeVpcEndpointServicePermissionsResult.struct_class = Types::DescribeVpcEndpointServicePermissionsResult

    DescribeVpcEndpointServicesRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    DescribeVpcEndpointServicesRequest.add_member(:service_names, Shapes::ShapeRef.new(shape: ValueStringList, location_name: "ServiceName"))
    DescribeVpcEndpointServicesRequest.add_member(:filters, Shapes::ShapeRef.new(shape: FilterList, location_name: "Filter"))
    DescribeVpcEndpointServicesRequest.add_member(:max_results, Shapes::ShapeRef.new(shape: Integer, location_name: "MaxResults"))
    DescribeVpcEndpointServicesRequest.add_member(:next_token, Shapes::ShapeRef.new(shape: String, location_name: "NextToken"))
    DescribeVpcEndpointServicesRequest.add_member(:service_regions, Shapes::ShapeRef.new(shape: ValueStringList, location_name: "ServiceRegion"))
    DescribeVpcEndpointServicesRequest.struct_class = Types::DescribeVpcEndpointServicesRequest

    DescribeVpcEndpointServicesResult.add_member(:service_names, Shapes::ShapeRef.new(shape: ValueStringList, location_name: "serviceNameSet"))
    DescribeVpcEndpointServicesResult.add_member(:service_details, Shapes::ShapeRef.new(shape: ServiceDetailSet, location_name: "serviceDetailSet"))
    DescribeVpcEndpointServicesResult.add_member(:next_token, Shapes::ShapeRef.new(shape: String, location_name: "nextToken"))
    DescribeVpcEndpointServicesResult.struct_class = Types::DescribeVpcEndpointServicesResult

    DescribeVpcEndpointsRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    DescribeVpcEndpointsRequest.add_member(:vpc_endpoint_ids, Shapes::ShapeRef.new(shape: VpcEndpointIdList, location_name: "VpcEndpointId"))
    DescribeVpcEndpointsRequest.add_member(:filters, Shapes::ShapeRef.new(shape: FilterList, location_name: "Filter"))
    DescribeVpcEndpointsRequest.add_member(:max_results, Shapes::ShapeRef.new(shape: Integer, location_name: "MaxResults"))
    DescribeVpcEndpointsRequest.add_member(:next_token, Shapes::ShapeRef.new(shape: String, location_name: "NextToken"))
    DescribeVpcEndpointsRequest.struct_class = Types::DescribeVpcEndpointsRequest

    DescribeVpcEndpointsResult.add_member(:vpc_endpoints, Shapes::ShapeRef.new(shape: VpcEndpointSet, location_name: "vpcEndpointSet"))
    DescribeVpcEndpointsResult.add_member(:next_token, Shapes::ShapeRef.new(shape: String, location_name: "nextToken"))
    DescribeVpcEndpointsResult.struct_class = Types::DescribeVpcEndpointsResult

    DescribeVpcPeeringConnectionsRequest.add_member(:next_token, Shapes::ShapeRef.new(shape: String, location_name: "NextToken"))
    DescribeVpcPeeringConnectionsRequest.add_member(:max_results, Shapes::ShapeRef.new(shape: DescribeVpcPeeringConnectionsMaxResults, location_name: "MaxResults"))
    DescribeVpcPeeringConnectionsRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "dryRun"))
    DescribeVpcPeeringConnectionsRequest.add_member(:vpc_peering_connection_ids, Shapes::ShapeRef.new(shape: VpcPeeringConnectionIdList, location_name: "VpcPeeringConnectionId"))
    DescribeVpcPeeringConnectionsRequest.add_member(:filters, Shapes::ShapeRef.new(shape: FilterList, location_name: "Filter"))
    DescribeVpcPeeringConnectionsRequest.struct_class = Types::DescribeVpcPeeringConnectionsRequest

    DescribeVpcPeeringConnectionsResult.add_member(:vpc_peering_connections, Shapes::ShapeRef.new(shape: VpcPeeringConnectionList, location_name: "vpcPeeringConnectionSet"))
    DescribeVpcPeeringConnectionsResult.add_member(:next_token, Shapes::ShapeRef.new(shape: String, location_name: "nextToken"))
    DescribeVpcPeeringConnectionsResult.struct_class = Types::DescribeVpcPeeringConnectionsResult

    DescribeVpcsRequest.add_member(:filters, Shapes::ShapeRef.new(shape: FilterList, location_name: "Filter"))
    DescribeVpcsRequest.add_member(:vpc_ids, Shapes::ShapeRef.new(shape: VpcIdStringList, location_name: "VpcId"))
    DescribeVpcsRequest.add_member(:next_token, Shapes::ShapeRef.new(shape: String, location_name: "NextToken"))
    DescribeVpcsRequest.add_member(:max_results, Shapes::ShapeRef.new(shape: DescribeVpcsMaxResults, location_name: "MaxResults"))
    DescribeVpcsRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "dryRun"))
    DescribeVpcsRequest.struct_class = Types::DescribeVpcsRequest

    DescribeVpcsResult.add_member(:next_token, Shapes::ShapeRef.new(shape: String, location_name: "nextToken"))
    DescribeVpcsResult.add_member(:vpcs, Shapes::ShapeRef.new(shape: VpcList, location_name: "vpcSet"))
    DescribeVpcsResult.struct_class = Types::DescribeVpcsResult

    DescribeVpnConnectionsRequest.add_member(:filters, Shapes::ShapeRef.new(shape: FilterList, location_name: "Filter"))
    DescribeVpnConnectionsRequest.add_member(:vpn_connection_ids, Shapes::ShapeRef.new(shape: VpnConnectionIdStringList, location_name: "VpnConnectionId"))
    DescribeVpnConnectionsRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "dryRun"))
    DescribeVpnConnectionsRequest.struct_class = Types::DescribeVpnConnectionsRequest

    DescribeVpnConnectionsResult.add_member(:vpn_connections, Shapes::ShapeRef.new(shape: VpnConnectionList, location_name: "vpnConnectionSet"))
    DescribeVpnConnectionsResult.struct_class = Types::DescribeVpnConnectionsResult

    DescribeVpnGatewaysRequest.add_member(:filters, Shapes::ShapeRef.new(shape: FilterList, location_name: "Filter"))
    DescribeVpnGatewaysRequest.add_member(:vpn_gateway_ids, Shapes::ShapeRef.new(shape: VpnGatewayIdStringList, location_name: "VpnGatewayId"))
    DescribeVpnGatewaysRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "dryRun"))
    DescribeVpnGatewaysRequest.struct_class = Types::DescribeVpnGatewaysRequest

    DescribeVpnGatewaysResult.add_member(:vpn_gateways, Shapes::ShapeRef.new(shape: VpnGatewayList, location_name: "vpnGatewaySet"))
    DescribeVpnGatewaysResult.struct_class = Types::DescribeVpnGatewaysResult

    DestinationOptionsRequest.add_member(:file_format, Shapes::ShapeRef.new(shape: DestinationFileFormat, location_name: "FileFormat"))
    DestinationOptionsRequest.add_member(:hive_compatible_partitions, Shapes::ShapeRef.new(shape: Boolean, location_name: "HiveCompatiblePartitions"))
    DestinationOptionsRequest.add_member(:per_hour_partition, Shapes::ShapeRef.new(shape: Boolean, location_name: "PerHourPartition"))
    DestinationOptionsRequest.struct_class = Types::DestinationOptionsRequest

    DestinationOptionsResponse.add_member(:file_format, Shapes::ShapeRef.new(shape: DestinationFileFormat, location_name: "fileFormat"))
    DestinationOptionsResponse.add_member(:hive_compatible_partitions, Shapes::ShapeRef.new(shape: Boolean, location_name: "hiveCompatiblePartitions"))
    DestinationOptionsResponse.add_member(:per_hour_partition, Shapes::ShapeRef.new(shape: Boolean, location_name: "perHourPartition"))
    DestinationOptionsResponse.struct_class = Types::DestinationOptionsResponse

    DetachClassicLinkVpcRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "dryRun"))
    DetachClassicLinkVpcRequest.add_member(:instance_id, Shapes::ShapeRef.new(shape: InstanceId, required: true, location_name: "instanceId"))
    DetachClassicLinkVpcRequest.add_member(:vpc_id, Shapes::ShapeRef.new(shape: VpcId, required: true, location_name: "vpcId"))
    DetachClassicLinkVpcRequest.struct_class = Types::DetachClassicLinkVpcRequest

    DetachClassicLinkVpcResult.add_member(:return, Shapes::ShapeRef.new(shape: Boolean, location_name: "return"))
    DetachClassicLinkVpcResult.struct_class = Types::DetachClassicLinkVpcResult

    DetachInternetGatewayRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "dryRun"))
    DetachInternetGatewayRequest.add_member(:internet_gateway_id, Shapes::ShapeRef.new(shape: InternetGatewayId, required: true, location_name: "internetGatewayId"))
    DetachInternetGatewayRequest.add_member(:vpc_id, Shapes::ShapeRef.new(shape: VpcId, required: true, location_name: "vpcId"))
    DetachInternetGatewayRequest.struct_class = Types::DetachInternetGatewayRequest

    DetachNetworkInterfaceRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "dryRun"))
    DetachNetworkInterfaceRequest.add_member(:attachment_id, Shapes::ShapeRef.new(shape: NetworkInterfaceAttachmentId, required: true, location_name: "attachmentId"))
    DetachNetworkInterfaceRequest.add_member(:force, Shapes::ShapeRef.new(shape: Boolean, location_name: "force"))
    DetachNetworkInterfaceRequest.struct_class = Types::DetachNetworkInterfaceRequest

    DetachVerifiedAccessTrustProviderRequest.add_member(:verified_access_instance_id, Shapes::ShapeRef.new(shape: VerifiedAccessInstanceId, required: true, location_name: "VerifiedAccessInstanceId"))
    DetachVerifiedAccessTrustProviderRequest.add_member(:verified_access_trust_provider_id, Shapes::ShapeRef.new(shape: VerifiedAccessTrustProviderId, required: true, location_name: "VerifiedAccessTrustProviderId"))
    DetachVerifiedAccessTrustProviderRequest.add_member(:client_token, Shapes::ShapeRef.new(shape: String, location_name: "ClientToken", metadata: {"idempotencyToken"=>true}))
    DetachVerifiedAccessTrustProviderRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    DetachVerifiedAccessTrustProviderRequest.struct_class = Types::DetachVerifiedAccessTrustProviderRequest

    DetachVerifiedAccessTrustProviderResult.add_member(:verified_access_trust_provider, Shapes::ShapeRef.new(shape: VerifiedAccessTrustProvider, location_name: "verifiedAccessTrustProvider"))
    DetachVerifiedAccessTrustProviderResult.add_member(:verified_access_instance, Shapes::ShapeRef.new(shape: VerifiedAccessInstance, location_name: "verifiedAccessInstance"))
    DetachVerifiedAccessTrustProviderResult.struct_class = Types::DetachVerifiedAccessTrustProviderResult

    DetachVolumeRequest.add_member(:device, Shapes::ShapeRef.new(shape: String, location_name: "Device"))
    DetachVolumeRequest.add_member(:force, Shapes::ShapeRef.new(shape: Boolean, location_name: "Force"))
    DetachVolumeRequest.add_member(:instance_id, Shapes::ShapeRef.new(shape: InstanceIdForResolver, location_name: "InstanceId"))
    DetachVolumeRequest.add_member(:volume_id, Shapes::ShapeRef.new(shape: VolumeIdWithResolver, required: true, location_name: "VolumeId"))
    DetachVolumeRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "dryRun"))
    DetachVolumeRequest.struct_class = Types::DetachVolumeRequest

    DetachVpnGatewayRequest.add_member(:vpc_id, Shapes::ShapeRef.new(shape: VpcId, required: true, location_name: "VpcId"))
    DetachVpnGatewayRequest.add_member(:vpn_gateway_id, Shapes::ShapeRef.new(shape: VpnGatewayId, required: true, location_name: "VpnGatewayId"))
    DetachVpnGatewayRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "dryRun"))
    DetachVpnGatewayRequest.struct_class = Types::DetachVpnGatewayRequest

    DeviceOptions.add_member(:tenant_id, Shapes::ShapeRef.new(shape: String, location_name: "tenantId"))
    DeviceOptions.add_member(:public_signing_key_url, Shapes::ShapeRef.new(shape: String, location_name: "publicSigningKeyUrl"))
    DeviceOptions.struct_class = Types::DeviceOptions

    DeviceTrustProviderTypeList.member = Shapes::ShapeRef.new(shape: DeviceTrustProviderType, location_name: "item")

    DhcpConfiguration.add_member(:key, Shapes::ShapeRef.new(shape: String, location_name: "key"))
    DhcpConfiguration.add_member(:values, Shapes::ShapeRef.new(shape: DhcpConfigurationValueList, location_name: "valueSet"))
    DhcpConfiguration.struct_class = Types::DhcpConfiguration

    DhcpConfigurationList.member = Shapes::ShapeRef.new(shape: DhcpConfiguration, location_name: "item")

    DhcpConfigurationValueList.member = Shapes::ShapeRef.new(shape: AttributeValue, location_name: "item")

    DhcpOptions.add_member(:owner_id, Shapes::ShapeRef.new(shape: String, location_name: "ownerId"))
    DhcpOptions.add_member(:tags, Shapes::ShapeRef.new(shape: TagList, location_name: "tagSet"))
    DhcpOptions.add_member(:dhcp_options_id, Shapes::ShapeRef.new(shape: String, location_name: "dhcpOptionsId"))
    DhcpOptions.add_member(:dhcp_configurations, Shapes::ShapeRef.new(shape: DhcpConfigurationList, location_name: "dhcpConfigurationSet"))
    DhcpOptions.struct_class = Types::DhcpOptions

    DhcpOptionsIdStringList.member = Shapes::ShapeRef.new(shape: DhcpOptionsId, location_name: "DhcpOptionsId")

    DhcpOptionsList.member = Shapes::ShapeRef.new(shape: DhcpOptions, location_name: "item")

    DirectoryServiceAuthentication.add_member(:directory_id, Shapes::ShapeRef.new(shape: String, location_name: "directoryId"))
    DirectoryServiceAuthentication.struct_class = Types::DirectoryServiceAuthentication

    DirectoryServiceAuthenticationRequest.add_member(:directory_id, Shapes::ShapeRef.new(shape: String, location_name: "DirectoryId"))
    DirectoryServiceAuthenticationRequest.struct_class = Types::DirectoryServiceAuthenticationRequest

    DisableAddressTransferRequest.add_member(:allocation_id, Shapes::ShapeRef.new(shape: AllocationId, required: true, location_name: "AllocationId"))
    DisableAddressTransferRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    DisableAddressTransferRequest.struct_class = Types::DisableAddressTransferRequest

    DisableAddressTransferResult.add_member(:address_transfer, Shapes::ShapeRef.new(shape: AddressTransfer, location_name: "addressTransfer"))
    DisableAddressTransferResult.struct_class = Types::DisableAddressTransferResult

    DisableAllowedImagesSettingsRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    DisableAllowedImagesSettingsRequest.struct_class = Types::DisableAllowedImagesSettingsRequest

    DisableAllowedImagesSettingsResult.add_member(:allowed_images_settings_state, Shapes::ShapeRef.new(shape: AllowedImagesSettingsDisabledState, location_name: "allowedImagesSettingsState"))
    DisableAllowedImagesSettingsResult.struct_class = Types::DisableAllowedImagesSettingsResult

    DisableAwsNetworkPerformanceMetricSubscriptionRequest.add_member(:source, Shapes::ShapeRef.new(shape: String, location_name: "Source"))
    DisableAwsNetworkPerformanceMetricSubscriptionRequest.add_member(:destination, Shapes::ShapeRef.new(shape: String, location_name: "Destination"))
    DisableAwsNetworkPerformanceMetricSubscriptionRequest.add_member(:metric, Shapes::ShapeRef.new(shape: MetricType, location_name: "Metric"))
    DisableAwsNetworkPerformanceMetricSubscriptionRequest.add_member(:statistic, Shapes::ShapeRef.new(shape: StatisticType, location_name: "Statistic"))
    DisableAwsNetworkPerformanceMetricSubscriptionRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    DisableAwsNetworkPerformanceMetricSubscriptionRequest.struct_class = Types::DisableAwsNetworkPerformanceMetricSubscriptionRequest

    DisableAwsNetworkPerformanceMetricSubscriptionResult.add_member(:output, Shapes::ShapeRef.new(shape: Boolean, location_name: "output"))
    DisableAwsNetworkPerformanceMetricSubscriptionResult.struct_class = Types::DisableAwsNetworkPerformanceMetricSubscriptionResult

    DisableEbsEncryptionByDefaultRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    DisableEbsEncryptionByDefaultRequest.struct_class = Types::DisableEbsEncryptionByDefaultRequest

    DisableEbsEncryptionByDefaultResult.add_member(:ebs_encryption_by_default, Shapes::ShapeRef.new(shape: Boolean, location_name: "ebsEncryptionByDefault"))
    DisableEbsEncryptionByDefaultResult.struct_class = Types::DisableEbsEncryptionByDefaultResult

    DisableFastLaunchRequest.add_member(:image_id, Shapes::ShapeRef.new(shape: ImageId, required: true, location_name: "ImageId"))
    DisableFastLaunchRequest.add_member(:force, Shapes::ShapeRef.new(shape: Boolean, location_name: "Force"))
    DisableFastLaunchRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    DisableFastLaunchRequest.struct_class = Types::DisableFastLaunchRequest

    DisableFastLaunchResult.add_member(:image_id, Shapes::ShapeRef.new(shape: ImageId, location_name: "imageId"))
    DisableFastLaunchResult.add_member(:resource_type, Shapes::ShapeRef.new(shape: FastLaunchResourceType, location_name: "resourceType"))
    DisableFastLaunchResult.add_member(:snapshot_configuration, Shapes::ShapeRef.new(shape: FastLaunchSnapshotConfigurationResponse, location_name: "snapshotConfiguration"))
    DisableFastLaunchResult.add_member(:launch_template, Shapes::ShapeRef.new(shape: FastLaunchLaunchTemplateSpecificationResponse, location_name: "launchTemplate"))
    DisableFastLaunchResult.add_member(:max_parallel_launches, Shapes::ShapeRef.new(shape: Integer, location_name: "maxParallelLaunches"))
    DisableFastLaunchResult.add_member(:owner_id, Shapes::ShapeRef.new(shape: String, location_name: "ownerId"))
    DisableFastLaunchResult.add_member(:state, Shapes::ShapeRef.new(shape: FastLaunchStateCode, location_name: "state"))
    DisableFastLaunchResult.add_member(:state_transition_reason, Shapes::ShapeRef.new(shape: String, location_name: "stateTransitionReason"))
    DisableFastLaunchResult.add_member(:state_transition_time, Shapes::ShapeRef.new(shape: MillisecondDateTime, location_name: "stateTransitionTime"))
    DisableFastLaunchResult.struct_class = Types::DisableFastLaunchResult

    DisableFastSnapshotRestoreErrorItem.add_member(:snapshot_id, Shapes::ShapeRef.new(shape: String, location_name: "snapshotId"))
    DisableFastSnapshotRestoreErrorItem.add_member(:fast_snapshot_restore_state_errors, Shapes::ShapeRef.new(shape: DisableFastSnapshotRestoreStateErrorSet, location_name: "fastSnapshotRestoreStateErrorSet"))
    DisableFastSnapshotRestoreErrorItem.struct_class = Types::DisableFastSnapshotRestoreErrorItem

    DisableFastSnapshotRestoreErrorSet.member = Shapes::ShapeRef.new(shape: DisableFastSnapshotRestoreErrorItem, location_name: "item")

    DisableFastSnapshotRestoreStateError.add_member(:code, Shapes::ShapeRef.new(shape: String, location_name: "code"))
    DisableFastSnapshotRestoreStateError.add_member(:message, Shapes::ShapeRef.new(shape: String, location_name: "message"))
    DisableFastSnapshotRestoreStateError.struct_class = Types::DisableFastSnapshotRestoreStateError

    DisableFastSnapshotRestoreStateErrorItem.add_member(:availability_zone, Shapes::ShapeRef.new(shape: String, location_name: "availabilityZone"))
    DisableFastSnapshotRestoreStateErrorItem.add_member(:error, Shapes::ShapeRef.new(shape: DisableFastSnapshotRestoreStateError, location_name: "error"))
    DisableFastSnapshotRestoreStateErrorItem.struct_class = Types::DisableFastSnapshotRestoreStateErrorItem

    DisableFastSnapshotRestoreStateErrorSet.member = Shapes::ShapeRef.new(shape: DisableFastSnapshotRestoreStateErrorItem, location_name: "item")

    DisableFastSnapshotRestoreSuccessItem.add_member(:snapshot_id, Shapes::ShapeRef.new(shape: String, location_name: "snapshotId"))
    DisableFastSnapshotRestoreSuccessItem.add_member(:availability_zone, Shapes::ShapeRef.new(shape: String, location_name: "availabilityZone"))
    DisableFastSnapshotRestoreSuccessItem.add_member(:state, Shapes::ShapeRef.new(shape: FastSnapshotRestoreStateCode, location_name: "state"))
    DisableFastSnapshotRestoreSuccessItem.add_member(:state_transition_reason, Shapes::ShapeRef.new(shape: String, location_name: "stateTransitionReason"))
    DisableFastSnapshotRestoreSuccessItem.add_member(:owner_id, Shapes::ShapeRef.new(shape: String, location_name: "ownerId"))
    DisableFastSnapshotRestoreSuccessItem.add_member(:owner_alias, Shapes::ShapeRef.new(shape: String, location_name: "ownerAlias"))
    DisableFastSnapshotRestoreSuccessItem.add_member(:enabling_time, Shapes::ShapeRef.new(shape: MillisecondDateTime, location_name: "enablingTime"))
    DisableFastSnapshotRestoreSuccessItem.add_member(:optimizing_time, Shapes::ShapeRef.new(shape: MillisecondDateTime, location_name: "optimizingTime"))
    DisableFastSnapshotRestoreSuccessItem.add_member(:enabled_time, Shapes::ShapeRef.new(shape: MillisecondDateTime, location_name: "enabledTime"))
    DisableFastSnapshotRestoreSuccessItem.add_member(:disabling_time, Shapes::ShapeRef.new(shape: MillisecondDateTime, location_name: "disablingTime"))
    DisableFastSnapshotRestoreSuccessItem.add_member(:disabled_time, Shapes::ShapeRef.new(shape: MillisecondDateTime, location_name: "disabledTime"))
    DisableFastSnapshotRestoreSuccessItem.struct_class = Types::DisableFastSnapshotRestoreSuccessItem

    DisableFastSnapshotRestoreSuccessSet.member = Shapes::ShapeRef.new(shape: DisableFastSnapshotRestoreSuccessItem, location_name: "item")

    DisableFastSnapshotRestoresRequest.add_member(:availability_zones, Shapes::ShapeRef.new(shape: AvailabilityZoneStringList, required: true, location_name: "AvailabilityZone"))
    DisableFastSnapshotRestoresRequest.add_member(:source_snapshot_ids, Shapes::ShapeRef.new(shape: SnapshotIdStringList, required: true, location_name: "SourceSnapshotId"))
    DisableFastSnapshotRestoresRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    DisableFastSnapshotRestoresRequest.struct_class = Types::DisableFastSnapshotRestoresRequest

    DisableFastSnapshotRestoresResult.add_member(:successful, Shapes::ShapeRef.new(shape: DisableFastSnapshotRestoreSuccessSet, location_name: "successful"))
    DisableFastSnapshotRestoresResult.add_member(:unsuccessful, Shapes::ShapeRef.new(shape: DisableFastSnapshotRestoreErrorSet, location_name: "unsuccessful"))
    DisableFastSnapshotRestoresResult.struct_class = Types::DisableFastSnapshotRestoresResult

    DisableImageBlockPublicAccessRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    DisableImageBlockPublicAccessRequest.struct_class = Types::DisableImageBlockPublicAccessRequest

    DisableImageBlockPublicAccessResult.add_member(:image_block_public_access_state, Shapes::ShapeRef.new(shape: ImageBlockPublicAccessDisabledState, location_name: "imageBlockPublicAccessState"))
    DisableImageBlockPublicAccessResult.struct_class = Types::DisableImageBlockPublicAccessResult

    DisableImageDeprecationRequest.add_member(:image_id, Shapes::ShapeRef.new(shape: ImageId, required: true, location_name: "ImageId"))
    DisableImageDeprecationRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    DisableImageDeprecationRequest.struct_class = Types::DisableImageDeprecationRequest

    DisableImageDeprecationResult.add_member(:return, Shapes::ShapeRef.new(shape: Boolean, location_name: "return"))
    DisableImageDeprecationResult.struct_class = Types::DisableImageDeprecationResult

    DisableImageDeregistrationProtectionRequest.add_member(:image_id, Shapes::ShapeRef.new(shape: ImageId, required: true, location_name: "ImageId"))
    DisableImageDeregistrationProtectionRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    DisableImageDeregistrationProtectionRequest.struct_class = Types::DisableImageDeregistrationProtectionRequest

    DisableImageDeregistrationProtectionResult.add_member(:return, Shapes::ShapeRef.new(shape: String, location_name: "return"))
    DisableImageDeregistrationProtectionResult.struct_class = Types::DisableImageDeregistrationProtectionResult

    DisableImageRequest.add_member(:image_id, Shapes::ShapeRef.new(shape: ImageId, required: true, location_name: "ImageId"))
    DisableImageRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    DisableImageRequest.struct_class = Types::DisableImageRequest

    DisableImageResult.add_member(:return, Shapes::ShapeRef.new(shape: Boolean, location_name: "return"))
    DisableImageResult.struct_class = Types::DisableImageResult

    DisableIpamOrganizationAdminAccountRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    DisableIpamOrganizationAdminAccountRequest.add_member(:delegated_admin_account_id, Shapes::ShapeRef.new(shape: String, required: true, location_name: "DelegatedAdminAccountId"))
    DisableIpamOrganizationAdminAccountRequest.struct_class = Types::DisableIpamOrganizationAdminAccountRequest

    DisableIpamOrganizationAdminAccountResult.add_member(:success, Shapes::ShapeRef.new(shape: Boolean, location_name: "success"))
    DisableIpamOrganizationAdminAccountResult.struct_class = Types::DisableIpamOrganizationAdminAccountResult

    DisableSerialConsoleAccessRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    DisableSerialConsoleAccessRequest.struct_class = Types::DisableSerialConsoleAccessRequest

    DisableSerialConsoleAccessResult.add_member(:serial_console_access_enabled, Shapes::ShapeRef.new(shape: Boolean, location_name: "serialConsoleAccessEnabled"))
    DisableSerialConsoleAccessResult.struct_class = Types::DisableSerialConsoleAccessResult

    DisableSnapshotBlockPublicAccessRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    DisableSnapshotBlockPublicAccessRequest.struct_class = Types::DisableSnapshotBlockPublicAccessRequest

    DisableSnapshotBlockPublicAccessResult.add_member(:state, Shapes::ShapeRef.new(shape: SnapshotBlockPublicAccessState, location_name: "state"))
    DisableSnapshotBlockPublicAccessResult.struct_class = Types::DisableSnapshotBlockPublicAccessResult

    DisableTransitGatewayRouteTablePropagationRequest.add_member(:transit_gateway_route_table_id, Shapes::ShapeRef.new(shape: TransitGatewayRouteTableId, required: true, location_name: "TransitGatewayRouteTableId"))
    DisableTransitGatewayRouteTablePropagationRequest.add_member(:transit_gateway_attachment_id, Shapes::ShapeRef.new(shape: TransitGatewayAttachmentId, location_name: "TransitGatewayAttachmentId"))
    DisableTransitGatewayRouteTablePropagationRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    DisableTransitGatewayRouteTablePropagationRequest.add_member(:transit_gateway_route_table_announcement_id, Shapes::ShapeRef.new(shape: TransitGatewayRouteTableAnnouncementId, location_name: "TransitGatewayRouteTableAnnouncementId"))
    DisableTransitGatewayRouteTablePropagationRequest.struct_class = Types::DisableTransitGatewayRouteTablePropagationRequest

    DisableTransitGatewayRouteTablePropagationResult.add_member(:propagation, Shapes::ShapeRef.new(shape: TransitGatewayPropagation, location_name: "propagation"))
    DisableTransitGatewayRouteTablePropagationResult.struct_class = Types::DisableTransitGatewayRouteTablePropagationResult

    DisableVgwRoutePropagationRequest.add_member(:gateway_id, Shapes::ShapeRef.new(shape: VpnGatewayId, required: true, location_name: "GatewayId"))
    DisableVgwRoutePropagationRequest.add_member(:route_table_id, Shapes::ShapeRef.new(shape: RouteTableId, required: true, location_name: "RouteTableId"))
    DisableVgwRoutePropagationRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    DisableVgwRoutePropagationRequest.struct_class = Types::DisableVgwRoutePropagationRequest

    DisableVpcClassicLinkDnsSupportRequest.add_member(:vpc_id, Shapes::ShapeRef.new(shape: VpcId, location_name: "VpcId"))
    DisableVpcClassicLinkDnsSupportRequest.struct_class = Types::DisableVpcClassicLinkDnsSupportRequest

    DisableVpcClassicLinkDnsSupportResult.add_member(:return, Shapes::ShapeRef.new(shape: Boolean, location_name: "return"))
    DisableVpcClassicLinkDnsSupportResult.struct_class = Types::DisableVpcClassicLinkDnsSupportResult

    DisableVpcClassicLinkRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "dryRun"))
    DisableVpcClassicLinkRequest.add_member(:vpc_id, Shapes::ShapeRef.new(shape: VpcId, required: true, location_name: "vpcId"))
    DisableVpcClassicLinkRequest.struct_class = Types::DisableVpcClassicLinkRequest

    DisableVpcClassicLinkResult.add_member(:return, Shapes::ShapeRef.new(shape: Boolean, location_name: "return"))
    DisableVpcClassicLinkResult.struct_class = Types::DisableVpcClassicLinkResult

    DisassociateAddressRequest.add_member(:association_id, Shapes::ShapeRef.new(shape: ElasticIpAssociationId, location_name: "AssociationId"))
    DisassociateAddressRequest.add_member(:public_ip, Shapes::ShapeRef.new(shape: EipAllocationPublicIp, location_name: "PublicIp"))
    DisassociateAddressRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "dryRun"))
    DisassociateAddressRequest.struct_class = Types::DisassociateAddressRequest

    DisassociateCapacityReservationBillingOwnerRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    DisassociateCapacityReservationBillingOwnerRequest.add_member(:capacity_reservation_id, Shapes::ShapeRef.new(shape: CapacityReservationId, required: true, location_name: "CapacityReservationId"))
    DisassociateCapacityReservationBillingOwnerRequest.add_member(:unused_reservation_billing_owner_id, Shapes::ShapeRef.new(shape: AccountID, required: true, location_name: "UnusedReservationBillingOwnerId"))
    DisassociateCapacityReservationBillingOwnerRequest.struct_class = Types::DisassociateCapacityReservationBillingOwnerRequest

    DisassociateCapacityReservationBillingOwnerResult.add_member(:return, Shapes::ShapeRef.new(shape: Boolean, location_name: "return"))
    DisassociateCapacityReservationBillingOwnerResult.struct_class = Types::DisassociateCapacityReservationBillingOwnerResult

    DisassociateClientVpnTargetNetworkRequest.add_member(:client_vpn_endpoint_id, Shapes::ShapeRef.new(shape: ClientVpnEndpointId, required: true, location_name: "ClientVpnEndpointId"))
    DisassociateClientVpnTargetNetworkRequest.add_member(:association_id, Shapes::ShapeRef.new(shape: String, required: true, location_name: "AssociationId"))
    DisassociateClientVpnTargetNetworkRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    DisassociateClientVpnTargetNetworkRequest.struct_class = Types::DisassociateClientVpnTargetNetworkRequest

    DisassociateClientVpnTargetNetworkResult.add_member(:association_id, Shapes::ShapeRef.new(shape: String, location_name: "associationId"))
    DisassociateClientVpnTargetNetworkResult.add_member(:status, Shapes::ShapeRef.new(shape: AssociationStatus, location_name: "status"))
    DisassociateClientVpnTargetNetworkResult.struct_class = Types::DisassociateClientVpnTargetNetworkResult

    DisassociateEnclaveCertificateIamRoleRequest.add_member(:certificate_arn, Shapes::ShapeRef.new(shape: CertificateId, required: true, location_name: "CertificateArn"))
    DisassociateEnclaveCertificateIamRoleRequest.add_member(:role_arn, Shapes::ShapeRef.new(shape: RoleId, required: true, location_name: "RoleArn"))
    DisassociateEnclaveCertificateIamRoleRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    DisassociateEnclaveCertificateIamRoleRequest.struct_class = Types::DisassociateEnclaveCertificateIamRoleRequest

    DisassociateEnclaveCertificateIamRoleResult.add_member(:return, Shapes::ShapeRef.new(shape: Boolean, location_name: "return"))
    DisassociateEnclaveCertificateIamRoleResult.struct_class = Types::DisassociateEnclaveCertificateIamRoleResult

    DisassociateIamInstanceProfileRequest.add_member(:association_id, Shapes::ShapeRef.new(shape: IamInstanceProfileAssociationId, required: true, location_name: "AssociationId"))
    DisassociateIamInstanceProfileRequest.struct_class = Types::DisassociateIamInstanceProfileRequest

    DisassociateIamInstanceProfileResult.add_member(:iam_instance_profile_association, Shapes::ShapeRef.new(shape: IamInstanceProfileAssociation, location_name: "iamInstanceProfileAssociation"))
    DisassociateIamInstanceProfileResult.struct_class = Types::DisassociateIamInstanceProfileResult

    DisassociateInstanceEventWindowRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    DisassociateInstanceEventWindowRequest.add_member(:instance_event_window_id, Shapes::ShapeRef.new(shape: InstanceEventWindowId, required: true, location_name: "InstanceEventWindowId"))
    DisassociateInstanceEventWindowRequest.add_member(:association_target, Shapes::ShapeRef.new(shape: InstanceEventWindowDisassociationRequest, required: true, location_name: "AssociationTarget"))
    DisassociateInstanceEventWindowRequest.struct_class = Types::DisassociateInstanceEventWindowRequest

    DisassociateInstanceEventWindowResult.add_member(:instance_event_window, Shapes::ShapeRef.new(shape: InstanceEventWindow, location_name: "instanceEventWindow"))
    DisassociateInstanceEventWindowResult.struct_class = Types::DisassociateInstanceEventWindowResult

    DisassociateIpamByoasnRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    DisassociateIpamByoasnRequest.add_member(:asn, Shapes::ShapeRef.new(shape: String, required: true, location_name: "Asn"))
    DisassociateIpamByoasnRequest.add_member(:cidr, Shapes::ShapeRef.new(shape: String, required: true, location_name: "Cidr"))
    DisassociateIpamByoasnRequest.struct_class = Types::DisassociateIpamByoasnRequest

    DisassociateIpamByoasnResult.add_member(:asn_association, Shapes::ShapeRef.new(shape: AsnAssociation, location_name: "asnAssociation"))
    DisassociateIpamByoasnResult.struct_class = Types::DisassociateIpamByoasnResult

    DisassociateIpamResourceDiscoveryRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    DisassociateIpamResourceDiscoveryRequest.add_member(:ipam_resource_discovery_association_id, Shapes::ShapeRef.new(shape: IpamResourceDiscoveryAssociationId, required: true, location_name: "IpamResourceDiscoveryAssociationId"))
    DisassociateIpamResourceDiscoveryRequest.struct_class = Types::DisassociateIpamResourceDiscoveryRequest

    DisassociateIpamResourceDiscoveryResult.add_member(:ipam_resource_discovery_association, Shapes::ShapeRef.new(shape: IpamResourceDiscoveryAssociation, location_name: "ipamResourceDiscoveryAssociation"))
    DisassociateIpamResourceDiscoveryResult.struct_class = Types::DisassociateIpamResourceDiscoveryResult

    DisassociateNatGatewayAddressRequest.add_member(:nat_gateway_id, Shapes::ShapeRef.new(shape: NatGatewayId, required: true, location_name: "NatGatewayId"))
    DisassociateNatGatewayAddressRequest.add_member(:association_ids, Shapes::ShapeRef.new(shape: EipAssociationIdList, required: true, location_name: "AssociationId"))
    DisassociateNatGatewayAddressRequest.add_member(:max_drain_duration_seconds, Shapes::ShapeRef.new(shape: DrainSeconds, location_name: "MaxDrainDurationSeconds"))
    DisassociateNatGatewayAddressRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    DisassociateNatGatewayAddressRequest.struct_class = Types::DisassociateNatGatewayAddressRequest

    DisassociateNatGatewayAddressResult.add_member(:nat_gateway_id, Shapes::ShapeRef.new(shape: NatGatewayId, location_name: "natGatewayId"))
    DisassociateNatGatewayAddressResult.add_member(:nat_gateway_addresses, Shapes::ShapeRef.new(shape: NatGatewayAddressList, location_name: "natGatewayAddressSet"))
    DisassociateNatGatewayAddressResult.struct_class = Types::DisassociateNatGatewayAddressResult

    DisassociateRouteTableRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "dryRun"))
    DisassociateRouteTableRequest.add_member(:association_id, Shapes::ShapeRef.new(shape: RouteTableAssociationId, required: true, location_name: "associationId"))
    DisassociateRouteTableRequest.struct_class = Types::DisassociateRouteTableRequest

    DisassociateSecurityGroupVpcRequest.add_member(:group_id, Shapes::ShapeRef.new(shape: DisassociateSecurityGroupVpcSecurityGroupId, required: true, location_name: "GroupId"))
    DisassociateSecurityGroupVpcRequest.add_member(:vpc_id, Shapes::ShapeRef.new(shape: String, required: true, location_name: "VpcId"))
    DisassociateSecurityGroupVpcRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    DisassociateSecurityGroupVpcRequest.struct_class = Types::DisassociateSecurityGroupVpcRequest

    DisassociateSecurityGroupVpcResult.add_member(:state, Shapes::ShapeRef.new(shape: SecurityGroupVpcAssociationState, location_name: "state"))
    DisassociateSecurityGroupVpcResult.struct_class = Types::DisassociateSecurityGroupVpcResult

    DisassociateSubnetCidrBlockRequest.add_member(:association_id, Shapes::ShapeRef.new(shape: SubnetCidrAssociationId, required: true, location_name: "associationId"))
    DisassociateSubnetCidrBlockRequest.struct_class = Types::DisassociateSubnetCidrBlockRequest

    DisassociateSubnetCidrBlockResult.add_member(:ipv_6_cidr_block_association, Shapes::ShapeRef.new(shape: SubnetIpv6CidrBlockAssociation, location_name: "ipv6CidrBlockAssociation"))
    DisassociateSubnetCidrBlockResult.add_member(:subnet_id, Shapes::ShapeRef.new(shape: String, location_name: "subnetId"))
    DisassociateSubnetCidrBlockResult.struct_class = Types::DisassociateSubnetCidrBlockResult

    DisassociateTransitGatewayMulticastDomainRequest.add_member(:transit_gateway_multicast_domain_id, Shapes::ShapeRef.new(shape: TransitGatewayMulticastDomainId, required: true, location_name: "TransitGatewayMulticastDomainId"))
    DisassociateTransitGatewayMulticastDomainRequest.add_member(:transit_gateway_attachment_id, Shapes::ShapeRef.new(shape: TransitGatewayAttachmentId, required: true, location_name: "TransitGatewayAttachmentId"))
    DisassociateTransitGatewayMulticastDomainRequest.add_member(:subnet_ids, Shapes::ShapeRef.new(shape: TransitGatewaySubnetIdList, required: true, location_name: "SubnetIds"))
    DisassociateTransitGatewayMulticastDomainRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    DisassociateTransitGatewayMulticastDomainRequest.struct_class = Types::DisassociateTransitGatewayMulticastDomainRequest

    DisassociateTransitGatewayMulticastDomainResult.add_member(:associations, Shapes::ShapeRef.new(shape: TransitGatewayMulticastDomainAssociations, location_name: "associations"))
    DisassociateTransitGatewayMulticastDomainResult.struct_class = Types::DisassociateTransitGatewayMulticastDomainResult

    DisassociateTransitGatewayPolicyTableRequest.add_member(:transit_gateway_policy_table_id, Shapes::ShapeRef.new(shape: TransitGatewayPolicyTableId, required: true, location_name: "TransitGatewayPolicyTableId"))
    DisassociateTransitGatewayPolicyTableRequest.add_member(:transit_gateway_attachment_id, Shapes::ShapeRef.new(shape: TransitGatewayAttachmentId, required: true, location_name: "TransitGatewayAttachmentId"))
    DisassociateTransitGatewayPolicyTableRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    DisassociateTransitGatewayPolicyTableRequest.struct_class = Types::DisassociateTransitGatewayPolicyTableRequest

    DisassociateTransitGatewayPolicyTableResult.add_member(:association, Shapes::ShapeRef.new(shape: TransitGatewayPolicyTableAssociation, location_name: "association"))
    DisassociateTransitGatewayPolicyTableResult.struct_class = Types::DisassociateTransitGatewayPolicyTableResult

    DisassociateTransitGatewayRouteTableRequest.add_member(:transit_gateway_route_table_id, Shapes::ShapeRef.new(shape: TransitGatewayRouteTableId, required: true, location_name: "TransitGatewayRouteTableId"))
    DisassociateTransitGatewayRouteTableRequest.add_member(:transit_gateway_attachment_id, Shapes::ShapeRef.new(shape: TransitGatewayAttachmentId, required: true, location_name: "TransitGatewayAttachmentId"))
    DisassociateTransitGatewayRouteTableRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    DisassociateTransitGatewayRouteTableRequest.struct_class = Types::DisassociateTransitGatewayRouteTableRequest

    DisassociateTransitGatewayRouteTableResult.add_member(:association, Shapes::ShapeRef.new(shape: TransitGatewayAssociation, location_name: "association"))
    DisassociateTransitGatewayRouteTableResult.struct_class = Types::DisassociateTransitGatewayRouteTableResult

    DisassociateTrunkInterfaceRequest.add_member(:association_id, Shapes::ShapeRef.new(shape: TrunkInterfaceAssociationId, required: true, location_name: "AssociationId"))
    DisassociateTrunkInterfaceRequest.add_member(:client_token, Shapes::ShapeRef.new(shape: String, location_name: "ClientToken", metadata: {"idempotencyToken"=>true}))
    DisassociateTrunkInterfaceRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    DisassociateTrunkInterfaceRequest.struct_class = Types::DisassociateTrunkInterfaceRequest

    DisassociateTrunkInterfaceResult.add_member(:return, Shapes::ShapeRef.new(shape: Boolean, location_name: "return"))
    DisassociateTrunkInterfaceResult.add_member(:client_token, Shapes::ShapeRef.new(shape: String, location_name: "clientToken"))
    DisassociateTrunkInterfaceResult.struct_class = Types::DisassociateTrunkInterfaceResult

    DisassociateVpcCidrBlockRequest.add_member(:association_id, Shapes::ShapeRef.new(shape: VpcCidrAssociationId, required: true, location_name: "associationId"))
    DisassociateVpcCidrBlockRequest.struct_class = Types::DisassociateVpcCidrBlockRequest

    DisassociateVpcCidrBlockResult.add_member(:ipv_6_cidr_block_association, Shapes::ShapeRef.new(shape: VpcIpv6CidrBlockAssociation, location_name: "ipv6CidrBlockAssociation"))
    DisassociateVpcCidrBlockResult.add_member(:cidr_block_association, Shapes::ShapeRef.new(shape: VpcCidrBlockAssociation, location_name: "cidrBlockAssociation"))
    DisassociateVpcCidrBlockResult.add_member(:vpc_id, Shapes::ShapeRef.new(shape: String, location_name: "vpcId"))
    DisassociateVpcCidrBlockResult.struct_class = Types::DisassociateVpcCidrBlockResult

    DiskImage.add_member(:description, Shapes::ShapeRef.new(shape: String, location_name: "Description"))
    DiskImage.add_member(:image, Shapes::ShapeRef.new(shape: DiskImageDetail, location_name: "Image"))
    DiskImage.add_member(:volume, Shapes::ShapeRef.new(shape: VolumeDetail, location_name: "Volume"))
    DiskImage.struct_class = Types::DiskImage

    DiskImageDescription.add_member(:checksum, Shapes::ShapeRef.new(shape: String, location_name: "checksum"))
    DiskImageDescription.add_member(:format, Shapes::ShapeRef.new(shape: DiskImageFormat, location_name: "format"))
    DiskImageDescription.add_member(:import_manifest_url, Shapes::ShapeRef.new(shape: ImportManifestUrl, location_name: "importManifestUrl"))
    DiskImageDescription.add_member(:size, Shapes::ShapeRef.new(shape: Long, location_name: "size"))
    DiskImageDescription.struct_class = Types::DiskImageDescription

    DiskImageDetail.add_member(:format, Shapes::ShapeRef.new(shape: DiskImageFormat, required: true, location_name: "format"))
    DiskImageDetail.add_member(:bytes, Shapes::ShapeRef.new(shape: Long, required: true, location_name: "bytes"))
    DiskImageDetail.add_member(:import_manifest_url, Shapes::ShapeRef.new(shape: ImportManifestUrl, required: true, location_name: "importManifestUrl"))
    DiskImageDetail.struct_class = Types::DiskImageDetail

    DiskImageList.member = Shapes::ShapeRef.new(shape: DiskImage)

    DiskImageVolumeDescription.add_member(:id, Shapes::ShapeRef.new(shape: String, location_name: "id"))
    DiskImageVolumeDescription.add_member(:size, Shapes::ShapeRef.new(shape: Long, location_name: "size"))
    DiskImageVolumeDescription.struct_class = Types::DiskImageVolumeDescription

    DiskInfo.add_member(:size_in_gb, Shapes::ShapeRef.new(shape: DiskSize, location_name: "sizeInGB"))
    DiskInfo.add_member(:count, Shapes::ShapeRef.new(shape: DiskCount, location_name: "count"))
    DiskInfo.add_member(:type, Shapes::ShapeRef.new(shape: DiskType, location_name: "type"))
    DiskInfo.struct_class = Types::DiskInfo

    DiskInfoList.member = Shapes::ShapeRef.new(shape: DiskInfo, location_name: "item")

    DnsEntry.add_member(:dns_name, Shapes::ShapeRef.new(shape: String, location_name: "dnsName"))
    DnsEntry.add_member(:hosted_zone_id, Shapes::ShapeRef.new(shape: String, location_name: "hostedZoneId"))
    DnsEntry.struct_class = Types::DnsEntry

    DnsEntrySet.member = Shapes::ShapeRef.new(shape: DnsEntry, location_name: "item")

    DnsOptions.add_member(:dns_record_ip_type, Shapes::ShapeRef.new(shape: DnsRecordIpType, location_name: "dnsRecordIpType"))
    DnsOptions.add_member(:private_dns_only_for_inbound_resolver_endpoint, Shapes::ShapeRef.new(shape: Boolean, location_name: "privateDnsOnlyForInboundResolverEndpoint"))
    DnsOptions.struct_class = Types::DnsOptions

    DnsOptionsSpecification.add_member(:dns_record_ip_type, Shapes::ShapeRef.new(shape: DnsRecordIpType, location_name: "DnsRecordIpType"))
    DnsOptionsSpecification.add_member(:private_dns_only_for_inbound_resolver_endpoint, Shapes::ShapeRef.new(shape: Boolean, location_name: "PrivateDnsOnlyForInboundResolverEndpoint"))
    DnsOptionsSpecification.struct_class = Types::DnsOptionsSpecification

    DnsServersOptionsModifyStructure.add_member(:custom_dns_servers, Shapes::ShapeRef.new(shape: ValueStringList, location_name: "CustomDnsServers"))
    DnsServersOptionsModifyStructure.add_member(:enabled, Shapes::ShapeRef.new(shape: Boolean, location_name: "Enabled"))
    DnsServersOptionsModifyStructure.struct_class = Types::DnsServersOptionsModifyStructure

    EbsBlockDevice.add_member(:delete_on_termination, Shapes::ShapeRef.new(shape: Boolean, location_name: "deleteOnTermination"))
    EbsBlockDevice.add_member(:iops, Shapes::ShapeRef.new(shape: Integer, location_name: "iops"))
    EbsBlockDevice.add_member(:snapshot_id, Shapes::ShapeRef.new(shape: SnapshotId, location_name: "snapshotId"))
    EbsBlockDevice.add_member(:volume_size, Shapes::ShapeRef.new(shape: Integer, location_name: "volumeSize"))
    EbsBlockDevice.add_member(:volume_type, Shapes::ShapeRef.new(shape: VolumeType, location_name: "volumeType"))
    EbsBlockDevice.add_member(:kms_key_id, Shapes::ShapeRef.new(shape: String, location_name: "kmsKeyId"))
    EbsBlockDevice.add_member(:throughput, Shapes::ShapeRef.new(shape: Integer, location_name: "throughput"))
    EbsBlockDevice.add_member(:outpost_arn, Shapes::ShapeRef.new(shape: String, location_name: "outpostArn"))
    EbsBlockDevice.add_member(:encrypted, Shapes::ShapeRef.new(shape: Boolean, location_name: "encrypted"))
    EbsBlockDevice.struct_class = Types::EbsBlockDevice

    EbsBlockDeviceResponse.add_member(:encrypted, Shapes::ShapeRef.new(shape: Boolean, location_name: "encrypted"))
    EbsBlockDeviceResponse.add_member(:delete_on_termination, Shapes::ShapeRef.new(shape: Boolean, location_name: "deleteOnTermination"))
    EbsBlockDeviceResponse.add_member(:iops, Shapes::ShapeRef.new(shape: Integer, location_name: "iops"))
    EbsBlockDeviceResponse.add_member(:throughput, Shapes::ShapeRef.new(shape: Integer, location_name: "throughput"))
    EbsBlockDeviceResponse.add_member(:kms_key_id, Shapes::ShapeRef.new(shape: KmsKeyId, location_name: "kmsKeyId"))
    EbsBlockDeviceResponse.add_member(:snapshot_id, Shapes::ShapeRef.new(shape: SnapshotId, location_name: "snapshotId"))
    EbsBlockDeviceResponse.add_member(:volume_size, Shapes::ShapeRef.new(shape: Integer, location_name: "volumeSize"))
    EbsBlockDeviceResponse.add_member(:volume_type, Shapes::ShapeRef.new(shape: VolumeType, location_name: "volumeType"))
    EbsBlockDeviceResponse.struct_class = Types::EbsBlockDeviceResponse

    EbsInfo.add_member(:ebs_optimized_support, Shapes::ShapeRef.new(shape: EbsOptimizedSupport, location_name: "ebsOptimizedSupport"))
    EbsInfo.add_member(:encryption_support, Shapes::ShapeRef.new(shape: EbsEncryptionSupport, location_name: "encryptionSupport"))
    EbsInfo.add_member(:ebs_optimized_info, Shapes::ShapeRef.new(shape: EbsOptimizedInfo, location_name: "ebsOptimizedInfo"))
    EbsInfo.add_member(:nvme_support, Shapes::ShapeRef.new(shape: EbsNvmeSupport, location_name: "nvmeSupport"))
    EbsInfo.struct_class = Types::EbsInfo

    EbsInstanceBlockDevice.add_member(:attach_time, Shapes::ShapeRef.new(shape: DateTime, location_name: "attachTime"))
    EbsInstanceBlockDevice.add_member(:delete_on_termination, Shapes::ShapeRef.new(shape: Boolean, location_name: "deleteOnTermination"))
    EbsInstanceBlockDevice.add_member(:status, Shapes::ShapeRef.new(shape: AttachmentStatus, location_name: "status"))
    EbsInstanceBlockDevice.add_member(:volume_id, Shapes::ShapeRef.new(shape: String, location_name: "volumeId"))
    EbsInstanceBlockDevice.add_member(:associated_resource, Shapes::ShapeRef.new(shape: String, location_name: "associatedResource"))
    EbsInstanceBlockDevice.add_member(:volume_owner_id, Shapes::ShapeRef.new(shape: String, location_name: "volumeOwnerId"))
    EbsInstanceBlockDevice.add_member(:operator, Shapes::ShapeRef.new(shape: OperatorResponse, location_name: "operator"))
    EbsInstanceBlockDevice.struct_class = Types::EbsInstanceBlockDevice

    EbsInstanceBlockDeviceSpecification.add_member(:volume_id, Shapes::ShapeRef.new(shape: VolumeId, location_name: "volumeId"))
    EbsInstanceBlockDeviceSpecification.add_member(:delete_on_termination, Shapes::ShapeRef.new(shape: Boolean, location_name: "deleteOnTermination"))
    EbsInstanceBlockDeviceSpecification.struct_class = Types::EbsInstanceBlockDeviceSpecification

    EbsOptimizedInfo.add_member(:baseline_bandwidth_in_mbps, Shapes::ShapeRef.new(shape: BaselineBandwidthInMbps, location_name: "baselineBandwidthInMbps"))
    EbsOptimizedInfo.add_member(:baseline_throughput_in_m_bps, Shapes::ShapeRef.new(shape: BaselineThroughputInMBps, location_name: "baselineThroughputInMBps"))
    EbsOptimizedInfo.add_member(:baseline_iops, Shapes::ShapeRef.new(shape: BaselineIops, location_name: "baselineIops"))
    EbsOptimizedInfo.add_member(:maximum_bandwidth_in_mbps, Shapes::ShapeRef.new(shape: MaximumBandwidthInMbps, location_name: "maximumBandwidthInMbps"))
    EbsOptimizedInfo.add_member(:maximum_throughput_in_m_bps, Shapes::ShapeRef.new(shape: MaximumThroughputInMBps, location_name: "maximumThroughputInMBps"))
    EbsOptimizedInfo.add_member(:maximum_iops, Shapes::ShapeRef.new(shape: MaximumIops, location_name: "maximumIops"))
    EbsOptimizedInfo.struct_class = Types::EbsOptimizedInfo

    EbsStatusDetails.add_member(:impaired_since, Shapes::ShapeRef.new(shape: MillisecondDateTime, location_name: "impairedSince"))
    EbsStatusDetails.add_member(:name, Shapes::ShapeRef.new(shape: StatusName, location_name: "name"))
    EbsStatusDetails.add_member(:status, Shapes::ShapeRef.new(shape: StatusType, location_name: "status"))
    EbsStatusDetails.struct_class = Types::EbsStatusDetails

    EbsStatusDetailsList.member = Shapes::ShapeRef.new(shape: EbsStatusDetails, location_name: "item")

    EbsStatusSummary.add_member(:details, Shapes::ShapeRef.new(shape: EbsStatusDetailsList, location_name: "details"))
    EbsStatusSummary.add_member(:status, Shapes::ShapeRef.new(shape: SummaryStatus, location_name: "status"))
    EbsStatusSummary.struct_class = Types::EbsStatusSummary

    Ec2InstanceConnectEndpoint.add_member(:owner_id, Shapes::ShapeRef.new(shape: String, location_name: "ownerId"))
    Ec2InstanceConnectEndpoint.add_member(:instance_connect_endpoint_id, Shapes::ShapeRef.new(shape: InstanceConnectEndpointId, location_name: "instanceConnectEndpointId"))
    Ec2InstanceConnectEndpoint.add_member(:instance_connect_endpoint_arn, Shapes::ShapeRef.new(shape: ResourceArn, location_name: "instanceConnectEndpointArn"))
    Ec2InstanceConnectEndpoint.add_member(:state, Shapes::ShapeRef.new(shape: Ec2InstanceConnectEndpointState, location_name: "state"))
    Ec2InstanceConnectEndpoint.add_member(:state_message, Shapes::ShapeRef.new(shape: String, location_name: "stateMessage"))
    Ec2InstanceConnectEndpoint.add_member(:dns_name, Shapes::ShapeRef.new(shape: String, location_name: "dnsName"))
    Ec2InstanceConnectEndpoint.add_member(:fips_dns_name, Shapes::ShapeRef.new(shape: String, location_name: "fipsDnsName"))
    Ec2InstanceConnectEndpoint.add_member(:network_interface_ids, Shapes::ShapeRef.new(shape: NetworkInterfaceIdSet, location_name: "networkInterfaceIdSet"))
    Ec2InstanceConnectEndpoint.add_member(:vpc_id, Shapes::ShapeRef.new(shape: VpcId, location_name: "vpcId"))
    Ec2InstanceConnectEndpoint.add_member(:availability_zone, Shapes::ShapeRef.new(shape: String, location_name: "availabilityZone"))
    Ec2InstanceConnectEndpoint.add_member(:created_at, Shapes::ShapeRef.new(shape: MillisecondDateTime, location_name: "createdAt"))
    Ec2InstanceConnectEndpoint.add_member(:subnet_id, Shapes::ShapeRef.new(shape: SubnetId, location_name: "subnetId"))
    Ec2InstanceConnectEndpoint.add_member(:preserve_client_ip, Shapes::ShapeRef.new(shape: Boolean, location_name: "preserveClientIp"))
    Ec2InstanceConnectEndpoint.add_member(:security_group_ids, Shapes::ShapeRef.new(shape: SecurityGroupIdSet, location_name: "securityGroupIdSet"))
    Ec2InstanceConnectEndpoint.add_member(:tags, Shapes::ShapeRef.new(shape: TagList, location_name: "tagSet"))
    Ec2InstanceConnectEndpoint.struct_class = Types::Ec2InstanceConnectEndpoint

    EfaInfo.add_member(:maximum_efa_interfaces, Shapes::ShapeRef.new(shape: MaximumEfaInterfaces, location_name: "maximumEfaInterfaces"))
    EfaInfo.struct_class = Types::EfaInfo

    EgressOnlyInternetGateway.add_member(:attachments, Shapes::ShapeRef.new(shape: InternetGatewayAttachmentList, location_name: "attachmentSet"))
    EgressOnlyInternetGateway.add_member(:egress_only_internet_gateway_id, Shapes::ShapeRef.new(shape: EgressOnlyInternetGatewayId, location_name: "egressOnlyInternetGatewayId"))
    EgressOnlyInternetGateway.add_member(:tags, Shapes::ShapeRef.new(shape: TagList, location_name: "tagSet"))
    EgressOnlyInternetGateway.struct_class = Types::EgressOnlyInternetGateway

    EgressOnlyInternetGatewayIdList.member = Shapes::ShapeRef.new(shape: EgressOnlyInternetGatewayId, location_name: "item")

    EgressOnlyInternetGatewayList.member = Shapes::ShapeRef.new(shape: EgressOnlyInternetGateway, location_name: "item")

    EipAssociationIdList.member = Shapes::ShapeRef.new(shape: ElasticIpAssociationId, location_name: "item")

    ElasticGpuAssociation.add_member(:elastic_gpu_id, Shapes::ShapeRef.new(shape: ElasticGpuId, location_name: "elasticGpuId"))
    ElasticGpuAssociation.add_member(:elastic_gpu_association_id, Shapes::ShapeRef.new(shape: String, location_name: "elasticGpuAssociationId"))
    ElasticGpuAssociation.add_member(:elastic_gpu_association_state, Shapes::ShapeRef.new(shape: String, location_name: "elasticGpuAssociationState"))
    ElasticGpuAssociation.add_member(:elastic_gpu_association_time, Shapes::ShapeRef.new(shape: String, location_name: "elasticGpuAssociationTime"))
    ElasticGpuAssociation.struct_class = Types::ElasticGpuAssociation

    ElasticGpuAssociationList.member = Shapes::ShapeRef.new(shape: ElasticGpuAssociation, location_name: "item")

    ElasticGpuHealth.add_member(:status, Shapes::ShapeRef.new(shape: ElasticGpuStatus, location_name: "status"))
    ElasticGpuHealth.struct_class = Types::ElasticGpuHealth

    ElasticGpuIdSet.member = Shapes::ShapeRef.new(shape: ElasticGpuId, location_name: "item")

    ElasticGpuSet.member = Shapes::ShapeRef.new(shape: ElasticGpus, location_name: "item")

    ElasticGpuSpecification.add_member(:type, Shapes::ShapeRef.new(shape: String, required: true, location_name: "Type"))
    ElasticGpuSpecification.struct_class = Types::ElasticGpuSpecification

    ElasticGpuSpecificationList.member = Shapes::ShapeRef.new(shape: ElasticGpuSpecification, location_name: "ElasticGpuSpecification")

    ElasticGpuSpecificationResponse.add_member(:type, Shapes::ShapeRef.new(shape: String, location_name: "type"))
    ElasticGpuSpecificationResponse.struct_class = Types::ElasticGpuSpecificationResponse

    ElasticGpuSpecificationResponseList.member = Shapes::ShapeRef.new(shape: ElasticGpuSpecificationResponse, location_name: "item")

    ElasticGpuSpecifications.member = Shapes::ShapeRef.new(shape: ElasticGpuSpecification, location_name: "item")

    ElasticGpus.add_member(:elastic_gpu_id, Shapes::ShapeRef.new(shape: String, location_name: "elasticGpuId"))
    ElasticGpus.add_member(:availability_zone, Shapes::ShapeRef.new(shape: String, location_name: "availabilityZone"))
    ElasticGpus.add_member(:elastic_gpu_type, Shapes::ShapeRef.new(shape: String, location_name: "elasticGpuType"))
    ElasticGpus.add_member(:elastic_gpu_health, Shapes::ShapeRef.new(shape: ElasticGpuHealth, location_name: "elasticGpuHealth"))
    ElasticGpus.add_member(:elastic_gpu_state, Shapes::ShapeRef.new(shape: ElasticGpuState, location_name: "elasticGpuState"))
    ElasticGpus.add_member(:instance_id, Shapes::ShapeRef.new(shape: String, location_name: "instanceId"))
    ElasticGpus.add_member(:tags, Shapes::ShapeRef.new(shape: TagList, location_name: "tagSet"))
    ElasticGpus.struct_class = Types::ElasticGpus

    ElasticInferenceAccelerator.add_member(:type, Shapes::ShapeRef.new(shape: String, required: true, location_name: "Type"))
    ElasticInferenceAccelerator.add_member(:count, Shapes::ShapeRef.new(shape: ElasticInferenceAcceleratorCount, location_name: "Count"))
    ElasticInferenceAccelerator.struct_class = Types::ElasticInferenceAccelerator

    ElasticInferenceAcceleratorAssociation.add_member(:elastic_inference_accelerator_arn, Shapes::ShapeRef.new(shape: String, location_name: "elasticInferenceAcceleratorArn"))
    ElasticInferenceAcceleratorAssociation.add_member(:elastic_inference_accelerator_association_id, Shapes::ShapeRef.new(shape: String, location_name: "elasticInferenceAcceleratorAssociationId"))
    ElasticInferenceAcceleratorAssociation.add_member(:elastic_inference_accelerator_association_state, Shapes::ShapeRef.new(shape: String, location_name: "elasticInferenceAcceleratorAssociationState"))
    ElasticInferenceAcceleratorAssociation.add_member(:elastic_inference_accelerator_association_time, Shapes::ShapeRef.new(shape: DateTime, location_name: "elasticInferenceAcceleratorAssociationTime"))
    ElasticInferenceAcceleratorAssociation.struct_class = Types::ElasticInferenceAcceleratorAssociation

    ElasticInferenceAcceleratorAssociationList.member = Shapes::ShapeRef.new(shape: ElasticInferenceAcceleratorAssociation, location_name: "item")

    ElasticInferenceAccelerators.member = Shapes::ShapeRef.new(shape: ElasticInferenceAccelerator, location_name: "item")

    EnaSrdSpecification.add_member(:ena_srd_enabled, Shapes::ShapeRef.new(shape: Boolean, location_name: "EnaSrdEnabled"))
    EnaSrdSpecification.add_member(:ena_srd_udp_specification, Shapes::ShapeRef.new(shape: EnaSrdUdpSpecification, location_name: "EnaSrdUdpSpecification"))
    EnaSrdSpecification.struct_class = Types::EnaSrdSpecification

    EnaSrdSpecificationRequest.add_member(:ena_srd_enabled, Shapes::ShapeRef.new(shape: Boolean, location_name: "EnaSrdEnabled"))
    EnaSrdSpecificationRequest.add_member(:ena_srd_udp_specification, Shapes::ShapeRef.new(shape: EnaSrdUdpSpecificationRequest, location_name: "EnaSrdUdpSpecification"))
    EnaSrdSpecificationRequest.struct_class = Types::EnaSrdSpecificationRequest

    EnaSrdUdpSpecification.add_member(:ena_srd_udp_enabled, Shapes::ShapeRef.new(shape: Boolean, location_name: "EnaSrdUdpEnabled"))
    EnaSrdUdpSpecification.struct_class = Types::EnaSrdUdpSpecification

    EnaSrdUdpSpecificationRequest.add_member(:ena_srd_udp_enabled, Shapes::ShapeRef.new(shape: Boolean, location_name: "EnaSrdUdpEnabled"))
    EnaSrdUdpSpecificationRequest.struct_class = Types::EnaSrdUdpSpecificationRequest

    EnableAddressTransferRequest.add_member(:allocation_id, Shapes::ShapeRef.new(shape: AllocationId, required: true, location_name: "AllocationId"))
    EnableAddressTransferRequest.add_member(:transfer_account_id, Shapes::ShapeRef.new(shape: String, required: true, location_name: "TransferAccountId"))
    EnableAddressTransferRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    EnableAddressTransferRequest.struct_class = Types::EnableAddressTransferRequest

    EnableAddressTransferResult.add_member(:address_transfer, Shapes::ShapeRef.new(shape: AddressTransfer, location_name: "addressTransfer"))
    EnableAddressTransferResult.struct_class = Types::EnableAddressTransferResult

    EnableAllowedImagesSettingsRequest.add_member(:allowed_images_settings_state, Shapes::ShapeRef.new(shape: AllowedImagesSettingsEnabledState, required: true, location_name: "AllowedImagesSettingsState"))
    EnableAllowedImagesSettingsRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    EnableAllowedImagesSettingsRequest.struct_class = Types::EnableAllowedImagesSettingsRequest

    EnableAllowedImagesSettingsResult.add_member(:allowed_images_settings_state, Shapes::ShapeRef.new(shape: AllowedImagesSettingsEnabledState, location_name: "allowedImagesSettingsState"))
    EnableAllowedImagesSettingsResult.struct_class = Types::EnableAllowedImagesSettingsResult

    EnableAwsNetworkPerformanceMetricSubscriptionRequest.add_member(:source, Shapes::ShapeRef.new(shape: String, location_name: "Source"))
    EnableAwsNetworkPerformanceMetricSubscriptionRequest.add_member(:destination, Shapes::ShapeRef.new(shape: String, location_name: "Destination"))
    EnableAwsNetworkPerformanceMetricSubscriptionRequest.add_member(:metric, Shapes::ShapeRef.new(shape: MetricType, location_name: "Metric"))
    EnableAwsNetworkPerformanceMetricSubscriptionRequest.add_member(:statistic, Shapes::ShapeRef.new(shape: StatisticType, location_name: "Statistic"))
    EnableAwsNetworkPerformanceMetricSubscriptionRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    EnableAwsNetworkPerformanceMetricSubscriptionRequest.struct_class = Types::EnableAwsNetworkPerformanceMetricSubscriptionRequest

    EnableAwsNetworkPerformanceMetricSubscriptionResult.add_member(:output, Shapes::ShapeRef.new(shape: Boolean, location_name: "output"))
    EnableAwsNetworkPerformanceMetricSubscriptionResult.struct_class = Types::EnableAwsNetworkPerformanceMetricSubscriptionResult

    EnableEbsEncryptionByDefaultRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    EnableEbsEncryptionByDefaultRequest.struct_class = Types::EnableEbsEncryptionByDefaultRequest

    EnableEbsEncryptionByDefaultResult.add_member(:ebs_encryption_by_default, Shapes::ShapeRef.new(shape: Boolean, location_name: "ebsEncryptionByDefault"))
    EnableEbsEncryptionByDefaultResult.struct_class = Types::EnableEbsEncryptionByDefaultResult

    EnableFastLaunchRequest.add_member(:image_id, Shapes::ShapeRef.new(shape: ImageId, required: true, location_name: "ImageId"))
    EnableFastLaunchRequest.add_member(:resource_type, Shapes::ShapeRef.new(shape: String, location_name: "ResourceType"))
    EnableFastLaunchRequest.add_member(:snapshot_configuration, Shapes::ShapeRef.new(shape: FastLaunchSnapshotConfigurationRequest, location_name: "SnapshotConfiguration"))
    EnableFastLaunchRequest.add_member(:launch_template, Shapes::ShapeRef.new(shape: FastLaunchLaunchTemplateSpecificationRequest, location_name: "LaunchTemplate"))
    EnableFastLaunchRequest.add_member(:max_parallel_launches, Shapes::ShapeRef.new(shape: Integer, location_name: "MaxParallelLaunches"))
    EnableFastLaunchRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    EnableFastLaunchRequest.struct_class = Types::EnableFastLaunchRequest

    EnableFastLaunchResult.add_member(:image_id, Shapes::ShapeRef.new(shape: ImageId, location_name: "imageId"))
    EnableFastLaunchResult.add_member(:resource_type, Shapes::ShapeRef.new(shape: FastLaunchResourceType, location_name: "resourceType"))
    EnableFastLaunchResult.add_member(:snapshot_configuration, Shapes::ShapeRef.new(shape: FastLaunchSnapshotConfigurationResponse, location_name: "snapshotConfiguration"))
    EnableFastLaunchResult.add_member(:launch_template, Shapes::ShapeRef.new(shape: FastLaunchLaunchTemplateSpecificationResponse, location_name: "launchTemplate"))
    EnableFastLaunchResult.add_member(:max_parallel_launches, Shapes::ShapeRef.new(shape: Integer, location_name: "maxParallelLaunches"))
    EnableFastLaunchResult.add_member(:owner_id, Shapes::ShapeRef.new(shape: String, location_name: "ownerId"))
    EnableFastLaunchResult.add_member(:state, Shapes::ShapeRef.new(shape: FastLaunchStateCode, location_name: "state"))
    EnableFastLaunchResult.add_member(:state_transition_reason, Shapes::ShapeRef.new(shape: String, location_name: "stateTransitionReason"))
    EnableFastLaunchResult.add_member(:state_transition_time, Shapes::ShapeRef.new(shape: MillisecondDateTime, location_name: "stateTransitionTime"))
    EnableFastLaunchResult.struct_class = Types::EnableFastLaunchResult

    EnableFastSnapshotRestoreErrorItem.add_member(:snapshot_id, Shapes::ShapeRef.new(shape: String, location_name: "snapshotId"))
    EnableFastSnapshotRestoreErrorItem.add_member(:fast_snapshot_restore_state_errors, Shapes::ShapeRef.new(shape: EnableFastSnapshotRestoreStateErrorSet, location_name: "fastSnapshotRestoreStateErrorSet"))
    EnableFastSnapshotRestoreErrorItem.struct_class = Types::EnableFastSnapshotRestoreErrorItem

    EnableFastSnapshotRestoreErrorSet.member = Shapes::ShapeRef.new(shape: EnableFastSnapshotRestoreErrorItem, location_name: "item")

    EnableFastSnapshotRestoreStateError.add_member(:code, Shapes::ShapeRef.new(shape: String, location_name: "code"))
    EnableFastSnapshotRestoreStateError.add_member(:message, Shapes::ShapeRef.new(shape: String, location_name: "message"))
    EnableFastSnapshotRestoreStateError.struct_class = Types::EnableFastSnapshotRestoreStateError

    EnableFastSnapshotRestoreStateErrorItem.add_member(:availability_zone, Shapes::ShapeRef.new(shape: String, location_name: "availabilityZone"))
    EnableFastSnapshotRestoreStateErrorItem.add_member(:error, Shapes::ShapeRef.new(shape: EnableFastSnapshotRestoreStateError, location_name: "error"))
    EnableFastSnapshotRestoreStateErrorItem.struct_class = Types::EnableFastSnapshotRestoreStateErrorItem

    EnableFastSnapshotRestoreStateErrorSet.member = Shapes::ShapeRef.new(shape: EnableFastSnapshotRestoreStateErrorItem, location_name: "item")

    EnableFastSnapshotRestoreSuccessItem.add_member(:snapshot_id, Shapes::ShapeRef.new(shape: String, location_name: "snapshotId"))
    EnableFastSnapshotRestoreSuccessItem.add_member(:availability_zone, Shapes::ShapeRef.new(shape: String, location_name: "availabilityZone"))
    EnableFastSnapshotRestoreSuccessItem.add_member(:state, Shapes::ShapeRef.new(shape: FastSnapshotRestoreStateCode, location_name: "state"))
    EnableFastSnapshotRestoreSuccessItem.add_member(:state_transition_reason, Shapes::ShapeRef.new(shape: String, location_name: "stateTransitionReason"))
    EnableFastSnapshotRestoreSuccessItem.add_member(:owner_id, Shapes::ShapeRef.new(shape: String, location_name: "ownerId"))
    EnableFastSnapshotRestoreSuccessItem.add_member(:owner_alias, Shapes::ShapeRef.new(shape: String, location_name: "ownerAlias"))
    EnableFastSnapshotRestoreSuccessItem.add_member(:enabling_time, Shapes::ShapeRef.new(shape: MillisecondDateTime, location_name: "enablingTime"))
    EnableFastSnapshotRestoreSuccessItem.add_member(:optimizing_time, Shapes::ShapeRef.new(shape: MillisecondDateTime, location_name: "optimizingTime"))
    EnableFastSnapshotRestoreSuccessItem.add_member(:enabled_time, Shapes::ShapeRef.new(shape: MillisecondDateTime, location_name: "enabledTime"))
    EnableFastSnapshotRestoreSuccessItem.add_member(:disabling_time, Shapes::ShapeRef.new(shape: MillisecondDateTime, location_name: "disablingTime"))
    EnableFastSnapshotRestoreSuccessItem.add_member(:disabled_time, Shapes::ShapeRef.new(shape: MillisecondDateTime, location_name: "disabledTime"))
    EnableFastSnapshotRestoreSuccessItem.struct_class = Types::EnableFastSnapshotRestoreSuccessItem

    EnableFastSnapshotRestoreSuccessSet.member = Shapes::ShapeRef.new(shape: EnableFastSnapshotRestoreSuccessItem, location_name: "item")

    EnableFastSnapshotRestoresRequest.add_member(:availability_zones, Shapes::ShapeRef.new(shape: AvailabilityZoneStringList, required: true, location_name: "AvailabilityZone"))
    EnableFastSnapshotRestoresRequest.add_member(:source_snapshot_ids, Shapes::ShapeRef.new(shape: SnapshotIdStringList, required: true, location_name: "SourceSnapshotId"))
    EnableFastSnapshotRestoresRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    EnableFastSnapshotRestoresRequest.struct_class = Types::EnableFastSnapshotRestoresRequest

    EnableFastSnapshotRestoresResult.add_member(:successful, Shapes::ShapeRef.new(shape: EnableFastSnapshotRestoreSuccessSet, location_name: "successful"))
    EnableFastSnapshotRestoresResult.add_member(:unsuccessful, Shapes::ShapeRef.new(shape: EnableFastSnapshotRestoreErrorSet, location_name: "unsuccessful"))
    EnableFastSnapshotRestoresResult.struct_class = Types::EnableFastSnapshotRestoresResult

    EnableImageBlockPublicAccessRequest.add_member(:image_block_public_access_state, Shapes::ShapeRef.new(shape: ImageBlockPublicAccessEnabledState, required: true, location_name: "ImageBlockPublicAccessState"))
    EnableImageBlockPublicAccessRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    EnableImageBlockPublicAccessRequest.struct_class = Types::EnableImageBlockPublicAccessRequest

    EnableImageBlockPublicAccessResult.add_member(:image_block_public_access_state, Shapes::ShapeRef.new(shape: ImageBlockPublicAccessEnabledState, location_name: "imageBlockPublicAccessState"))
    EnableImageBlockPublicAccessResult.struct_class = Types::EnableImageBlockPublicAccessResult

    EnableImageDeprecationRequest.add_member(:image_id, Shapes::ShapeRef.new(shape: ImageId, required: true, location_name: "ImageId"))
    EnableImageDeprecationRequest.add_member(:deprecate_at, Shapes::ShapeRef.new(shape: MillisecondDateTime, required: true, location_name: "DeprecateAt"))
    EnableImageDeprecationRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    EnableImageDeprecationRequest.struct_class = Types::EnableImageDeprecationRequest

    EnableImageDeprecationResult.add_member(:return, Shapes::ShapeRef.new(shape: Boolean, location_name: "return"))
    EnableImageDeprecationResult.struct_class = Types::EnableImageDeprecationResult

    EnableImageDeregistrationProtectionRequest.add_member(:image_id, Shapes::ShapeRef.new(shape: ImageId, required: true, location_name: "ImageId"))
    EnableImageDeregistrationProtectionRequest.add_member(:with_cooldown, Shapes::ShapeRef.new(shape: Boolean, location_name: "WithCooldown"))
    EnableImageDeregistrationProtectionRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    EnableImageDeregistrationProtectionRequest.struct_class = Types::EnableImageDeregistrationProtectionRequest

    EnableImageDeregistrationProtectionResult.add_member(:return, Shapes::ShapeRef.new(shape: String, location_name: "return"))
    EnableImageDeregistrationProtectionResult.struct_class = Types::EnableImageDeregistrationProtectionResult

    EnableImageRequest.add_member(:image_id, Shapes::ShapeRef.new(shape: ImageId, required: true, location_name: "ImageId"))
    EnableImageRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    EnableImageRequest.struct_class = Types::EnableImageRequest

    EnableImageResult.add_member(:return, Shapes::ShapeRef.new(shape: Boolean, location_name: "return"))
    EnableImageResult.struct_class = Types::EnableImageResult

    EnableIpamOrganizationAdminAccountRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    EnableIpamOrganizationAdminAccountRequest.add_member(:delegated_admin_account_id, Shapes::ShapeRef.new(shape: String, required: true, location_name: "DelegatedAdminAccountId"))
    EnableIpamOrganizationAdminAccountRequest.struct_class = Types::EnableIpamOrganizationAdminAccountRequest

    EnableIpamOrganizationAdminAccountResult.add_member(:success, Shapes::ShapeRef.new(shape: Boolean, location_name: "success"))
    EnableIpamOrganizationAdminAccountResult.struct_class = Types::EnableIpamOrganizationAdminAccountResult

    EnableReachabilityAnalyzerOrganizationSharingRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    EnableReachabilityAnalyzerOrganizationSharingRequest.struct_class = Types::EnableReachabilityAnalyzerOrganizationSharingRequest

    EnableReachabilityAnalyzerOrganizationSharingResult.add_member(:return_value, Shapes::ShapeRef.new(shape: Boolean, location_name: "returnValue"))
    EnableReachabilityAnalyzerOrganizationSharingResult.struct_class = Types::EnableReachabilityAnalyzerOrganizationSharingResult

    EnableSerialConsoleAccessRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    EnableSerialConsoleAccessRequest.struct_class = Types::EnableSerialConsoleAccessRequest

    EnableSerialConsoleAccessResult.add_member(:serial_console_access_enabled, Shapes::ShapeRef.new(shape: Boolean, location_name: "serialConsoleAccessEnabled"))
    EnableSerialConsoleAccessResult.struct_class = Types::EnableSerialConsoleAccessResult

    EnableSnapshotBlockPublicAccessRequest.add_member(:state, Shapes::ShapeRef.new(shape: SnapshotBlockPublicAccessState, required: true, location_name: "State"))
    EnableSnapshotBlockPublicAccessRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    EnableSnapshotBlockPublicAccessRequest.struct_class = Types::EnableSnapshotBlockPublicAccessRequest

    EnableSnapshotBlockPublicAccessResult.add_member(:state, Shapes::ShapeRef.new(shape: SnapshotBlockPublicAccessState, location_name: "state"))
    EnableSnapshotBlockPublicAccessResult.struct_class = Types::EnableSnapshotBlockPublicAccessResult

    EnableTransitGatewayRouteTablePropagationRequest.add_member(:transit_gateway_route_table_id, Shapes::ShapeRef.new(shape: TransitGatewayRouteTableId, required: true, location_name: "TransitGatewayRouteTableId"))
    EnableTransitGatewayRouteTablePropagationRequest.add_member(:transit_gateway_attachment_id, Shapes::ShapeRef.new(shape: TransitGatewayAttachmentId, location_name: "TransitGatewayAttachmentId"))
    EnableTransitGatewayRouteTablePropagationRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    EnableTransitGatewayRouteTablePropagationRequest.add_member(:transit_gateway_route_table_announcement_id, Shapes::ShapeRef.new(shape: TransitGatewayRouteTableAnnouncementId, location_name: "TransitGatewayRouteTableAnnouncementId"))
    EnableTransitGatewayRouteTablePropagationRequest.struct_class = Types::EnableTransitGatewayRouteTablePropagationRequest

    EnableTransitGatewayRouteTablePropagationResult.add_member(:propagation, Shapes::ShapeRef.new(shape: TransitGatewayPropagation, location_name: "propagation"))
    EnableTransitGatewayRouteTablePropagationResult.struct_class = Types::EnableTransitGatewayRouteTablePropagationResult

    EnableVgwRoutePropagationRequest.add_member(:gateway_id, Shapes::ShapeRef.new(shape: VpnGatewayId, required: true, location_name: "GatewayId"))
    EnableVgwRoutePropagationRequest.add_member(:route_table_id, Shapes::ShapeRef.new(shape: RouteTableId, required: true, location_name: "RouteTableId"))
    EnableVgwRoutePropagationRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    EnableVgwRoutePropagationRequest.struct_class = Types::EnableVgwRoutePropagationRequest

    EnableVolumeIORequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "dryRun"))
    EnableVolumeIORequest.add_member(:volume_id, Shapes::ShapeRef.new(shape: VolumeId, required: true, location_name: "volumeId"))
    EnableVolumeIORequest.struct_class = Types::EnableVolumeIORequest

    EnableVpcClassicLinkDnsSupportRequest.add_member(:vpc_id, Shapes::ShapeRef.new(shape: VpcId, location_name: "VpcId"))
    EnableVpcClassicLinkDnsSupportRequest.struct_class = Types::EnableVpcClassicLinkDnsSupportRequest

    EnableVpcClassicLinkDnsSupportResult.add_member(:return, Shapes::ShapeRef.new(shape: Boolean, location_name: "return"))
    EnableVpcClassicLinkDnsSupportResult.struct_class = Types::EnableVpcClassicLinkDnsSupportResult

    EnableVpcClassicLinkRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "dryRun"))
    EnableVpcClassicLinkRequest.add_member(:vpc_id, Shapes::ShapeRef.new(shape: VpcId, required: true, location_name: "vpcId"))
    EnableVpcClassicLinkRequest.struct_class = Types::EnableVpcClassicLinkRequest

    EnableVpcClassicLinkResult.add_member(:return, Shapes::ShapeRef.new(shape: Boolean, location_name: "return"))
    EnableVpcClassicLinkResult.struct_class = Types::EnableVpcClassicLinkResult

    EnclaveOptions.add_member(:enabled, Shapes::ShapeRef.new(shape: Boolean, location_name: "enabled"))
    EnclaveOptions.struct_class = Types::EnclaveOptions

    EnclaveOptionsRequest.add_member(:enabled, Shapes::ShapeRef.new(shape: Boolean, location_name: "Enabled"))
    EnclaveOptionsRequest.struct_class = Types::EnclaveOptionsRequest

    EndpointSet.member = Shapes::ShapeRef.new(shape: ClientVpnEndpoint, location_name: "item")

    ErrorSet.member = Shapes::ShapeRef.new(shape: ValidationError, location_name: "item")

    EventInformation.add_member(:event_description, Shapes::ShapeRef.new(shape: String, location_name: "eventDescription"))
    EventInformation.add_member(:event_sub_type, Shapes::ShapeRef.new(shape: String, location_name: "eventSubType"))
    EventInformation.add_member(:instance_id, Shapes::ShapeRef.new(shape: String, location_name: "instanceId"))
    EventInformation.struct_class = Types::EventInformation

    ExcludedInstanceTypeSet.member = Shapes::ShapeRef.new(shape: ExcludedInstanceType, location_name: "item")

    ExecutableByStringList.member = Shapes::ShapeRef.new(shape: String, location_name: "ExecutableBy")

    Explanation.add_member(:acl, Shapes::ShapeRef.new(shape: AnalysisComponent, location_name: "acl"))
    Explanation.add_member(:acl_rule, Shapes::ShapeRef.new(shape: AnalysisAclRule, location_name: "aclRule"))
    Explanation.add_member(:address, Shapes::ShapeRef.new(shape: IpAddress, location_name: "address"))
    Explanation.add_member(:addresses, Shapes::ShapeRef.new(shape: IpAddressList, location_name: "addressSet"))
    Explanation.add_member(:attached_to, Shapes::ShapeRef.new(shape: AnalysisComponent, location_name: "attachedTo"))
    Explanation.add_member(:availability_zones, Shapes::ShapeRef.new(shape: ValueStringList, location_name: "availabilityZoneSet"))
    Explanation.add_member(:cidrs, Shapes::ShapeRef.new(shape: ValueStringList, location_name: "cidrSet"))
    Explanation.add_member(:component, Shapes::ShapeRef.new(shape: AnalysisComponent, location_name: "component"))
    Explanation.add_member(:customer_gateway, Shapes::ShapeRef.new(shape: AnalysisComponent, location_name: "customerGateway"))
    Explanation.add_member(:destination, Shapes::ShapeRef.new(shape: AnalysisComponent, location_name: "destination"))
    Explanation.add_member(:destination_vpc, Shapes::ShapeRef.new(shape: AnalysisComponent, location_name: "destinationVpc"))
    Explanation.add_member(:direction, Shapes::ShapeRef.new(shape: String, location_name: "direction"))
    Explanation.add_member(:explanation_code, Shapes::ShapeRef.new(shape: String, location_name: "explanationCode"))
    Explanation.add_member(:ingress_route_table, Shapes::ShapeRef.new(shape: AnalysisComponent, location_name: "ingressRouteTable"))
    Explanation.add_member(:internet_gateway, Shapes::ShapeRef.new(shape: AnalysisComponent, location_name: "internetGateway"))
    Explanation.add_member(:load_balancer_arn, Shapes::ShapeRef.new(shape: ResourceArn, location_name: "loadBalancerArn"))
    Explanation.add_member(:classic_load_balancer_listener, Shapes::ShapeRef.new(shape: AnalysisLoadBalancerListener, location_name: "classicLoadBalancerListener"))
    Explanation.add_member(:load_balancer_listener_port, Shapes::ShapeRef.new(shape: Port, location_name: "loadBalancerListenerPort"))
    Explanation.add_member(:load_balancer_target, Shapes::ShapeRef.new(shape: AnalysisLoadBalancerTarget, location_name: "loadBalancerTarget"))
    Explanation.add_member(:load_balancer_target_group, Shapes::ShapeRef.new(shape: AnalysisComponent, location_name: "loadBalancerTargetGroup"))
    Explanation.add_member(:load_balancer_target_groups, Shapes::ShapeRef.new(shape: AnalysisComponentList, location_name: "loadBalancerTargetGroupSet"))
    Explanation.add_member(:load_balancer_target_port, Shapes::ShapeRef.new(shape: Port, location_name: "loadBalancerTargetPort"))
    Explanation.add_member(:elastic_load_balancer_listener, Shapes::ShapeRef.new(shape: AnalysisComponent, location_name: "elasticLoadBalancerListener"))
    Explanation.add_member(:missing_component, Shapes::ShapeRef.new(shape: String, location_name: "missingComponent"))
    Explanation.add_member(:nat_gateway, Shapes::ShapeRef.new(shape: AnalysisComponent, location_name: "natGateway"))
    Explanation.add_member(:network_interface, Shapes::ShapeRef.new(shape: AnalysisComponent, location_name: "networkInterface"))
    Explanation.add_member(:packet_field, Shapes::ShapeRef.new(shape: String, location_name: "packetField"))
    Explanation.add_member(:vpc_peering_connection, Shapes::ShapeRef.new(shape: AnalysisComponent, location_name: "vpcPeeringConnection"))
    Explanation.add_member(:port, Shapes::ShapeRef.new(shape: Port, location_name: "port"))
    Explanation.add_member(:port_ranges, Shapes::ShapeRef.new(shape: PortRangeList, location_name: "portRangeSet"))
    Explanation.add_member(:prefix_list, Shapes::ShapeRef.new(shape: AnalysisComponent, location_name: "prefixList"))
    Explanation.add_member(:protocols, Shapes::ShapeRef.new(shape: StringList, location_name: "protocolSet"))
    Explanation.add_member(:route_table_route, Shapes::ShapeRef.new(shape: AnalysisRouteTableRoute, location_name: "routeTableRoute"))
    Explanation.add_member(:route_table, Shapes::ShapeRef.new(shape: AnalysisComponent, location_name: "routeTable"))
    Explanation.add_member(:security_group, Shapes::ShapeRef.new(shape: AnalysisComponent, location_name: "securityGroup"))
    Explanation.add_member(:security_group_rule, Shapes::ShapeRef.new(shape: AnalysisSecurityGroupRule, location_name: "securityGroupRule"))
    Explanation.add_member(:security_groups, Shapes::ShapeRef.new(shape: AnalysisComponentList, location_name: "securityGroupSet"))
    Explanation.add_member(:source_vpc, Shapes::ShapeRef.new(shape: AnalysisComponent, location_name: "sourceVpc"))
    Explanation.add_member(:state, Shapes::ShapeRef.new(shape: String, location_name: "state"))
    Explanation.add_member(:subnet, Shapes::ShapeRef.new(shape: AnalysisComponent, location_name: "subnet"))
    Explanation.add_member(:subnet_route_table, Shapes::ShapeRef.new(shape: AnalysisComponent, location_name: "subnetRouteTable"))
    Explanation.add_member(:vpc, Shapes::ShapeRef.new(shape: AnalysisComponent, location_name: "vpc"))
    Explanation.add_member(:vpc_endpoint, Shapes::ShapeRef.new(shape: AnalysisComponent, location_name: "vpcEndpoint"))
    Explanation.add_member(:vpn_connection, Shapes::ShapeRef.new(shape: AnalysisComponent, location_name: "vpnConnection"))
    Explanation.add_member(:vpn_gateway, Shapes::ShapeRef.new(shape: AnalysisComponent, location_name: "vpnGateway"))
    Explanation.add_member(:transit_gateway, Shapes::ShapeRef.new(shape: AnalysisComponent, location_name: "transitGateway"))
    Explanation.add_member(:transit_gateway_route_table, Shapes::ShapeRef.new(shape: AnalysisComponent, location_name: "transitGatewayRouteTable"))
    Explanation.add_member(:transit_gateway_route_table_route, Shapes::ShapeRef.new(shape: TransitGatewayRouteTableRoute, location_name: "transitGatewayRouteTableRoute"))
    Explanation.add_member(:transit_gateway_attachment, Shapes::ShapeRef.new(shape: AnalysisComponent, location_name: "transitGatewayAttachment"))
    Explanation.add_member(:component_account, Shapes::ShapeRef.new(shape: ComponentAccount, location_name: "componentAccount"))
    Explanation.add_member(:component_region, Shapes::ShapeRef.new(shape: ComponentRegion, location_name: "componentRegion"))
    Explanation.add_member(:firewall_stateless_rule, Shapes::ShapeRef.new(shape: FirewallStatelessRule, location_name: "firewallStatelessRule"))
    Explanation.add_member(:firewall_stateful_rule, Shapes::ShapeRef.new(shape: FirewallStatefulRule, location_name: "firewallStatefulRule"))
    Explanation.struct_class = Types::Explanation

    ExplanationList.member = Shapes::ShapeRef.new(shape: Explanation, location_name: "item")

    ExportClientVpnClientCertificateRevocationListRequest.add_member(:client_vpn_endpoint_id, Shapes::ShapeRef.new(shape: ClientVpnEndpointId, required: true, location_name: "ClientVpnEndpointId"))
    ExportClientVpnClientCertificateRevocationListRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    ExportClientVpnClientCertificateRevocationListRequest.struct_class = Types::ExportClientVpnClientCertificateRevocationListRequest

    ExportClientVpnClientCertificateRevocationListResult.add_member(:certificate_revocation_list, Shapes::ShapeRef.new(shape: String, location_name: "certificateRevocationList"))
    ExportClientVpnClientCertificateRevocationListResult.add_member(:status, Shapes::ShapeRef.new(shape: ClientCertificateRevocationListStatus, location_name: "status"))
    ExportClientVpnClientCertificateRevocationListResult.struct_class = Types::ExportClientVpnClientCertificateRevocationListResult

    ExportClientVpnClientConfigurationRequest.add_member(:client_vpn_endpoint_id, Shapes::ShapeRef.new(shape: ClientVpnEndpointId, required: true, location_name: "ClientVpnEndpointId"))
    ExportClientVpnClientConfigurationRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    ExportClientVpnClientConfigurationRequest.struct_class = Types::ExportClientVpnClientConfigurationRequest

    ExportClientVpnClientConfigurationResult.add_member(:client_configuration, Shapes::ShapeRef.new(shape: String, location_name: "clientConfiguration"))
    ExportClientVpnClientConfigurationResult.struct_class = Types::ExportClientVpnClientConfigurationResult

    ExportImageRequest.add_member(:client_token, Shapes::ShapeRef.new(shape: String, location_name: "ClientToken", metadata: {"idempotencyToken"=>true}))
    ExportImageRequest.add_member(:description, Shapes::ShapeRef.new(shape: String, location_name: "Description"))
    ExportImageRequest.add_member(:disk_image_format, Shapes::ShapeRef.new(shape: DiskImageFormat, required: true, location_name: "DiskImageFormat"))
    ExportImageRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    ExportImageRequest.add_member(:image_id, Shapes::ShapeRef.new(shape: ImageId, required: true, location_name: "ImageId"))
    ExportImageRequest.add_member(:s3_export_location, Shapes::ShapeRef.new(shape: ExportTaskS3LocationRequest, required: true, location_name: "S3ExportLocation"))
    ExportImageRequest.add_member(:role_name, Shapes::ShapeRef.new(shape: String, location_name: "RoleName"))
    ExportImageRequest.add_member(:tag_specifications, Shapes::ShapeRef.new(shape: TagSpecificationList, location_name: "TagSpecification"))
    ExportImageRequest.struct_class = Types::ExportImageRequest

    ExportImageResult.add_member(:description, Shapes::ShapeRef.new(shape: String, location_name: "description"))
    ExportImageResult.add_member(:disk_image_format, Shapes::ShapeRef.new(shape: DiskImageFormat, location_name: "diskImageFormat"))
    ExportImageResult.add_member(:export_image_task_id, Shapes::ShapeRef.new(shape: String, location_name: "exportImageTaskId"))
    ExportImageResult.add_member(:image_id, Shapes::ShapeRef.new(shape: String, location_name: "imageId"))
    ExportImageResult.add_member(:role_name, Shapes::ShapeRef.new(shape: String, location_name: "roleName"))
    ExportImageResult.add_member(:progress, Shapes::ShapeRef.new(shape: String, location_name: "progress"))
    ExportImageResult.add_member(:s3_export_location, Shapes::ShapeRef.new(shape: ExportTaskS3Location, location_name: "s3ExportLocation"))
    ExportImageResult.add_member(:status, Shapes::ShapeRef.new(shape: String, location_name: "status"))
    ExportImageResult.add_member(:status_message, Shapes::ShapeRef.new(shape: String, location_name: "statusMessage"))
    ExportImageResult.add_member(:tags, Shapes::ShapeRef.new(shape: TagList, location_name: "tagSet"))
    ExportImageResult.struct_class = Types::ExportImageResult

    ExportImageTask.add_member(:description, Shapes::ShapeRef.new(shape: String, location_name: "description"))
    ExportImageTask.add_member(:export_image_task_id, Shapes::ShapeRef.new(shape: String, location_name: "exportImageTaskId"))
    ExportImageTask.add_member(:image_id, Shapes::ShapeRef.new(shape: String, location_name: "imageId"))
    ExportImageTask.add_member(:progress, Shapes::ShapeRef.new(shape: String, location_name: "progress"))
    ExportImageTask.add_member(:s3_export_location, Shapes::ShapeRef.new(shape: ExportTaskS3Location, location_name: "s3ExportLocation"))
    ExportImageTask.add_member(:status, Shapes::ShapeRef.new(shape: String, location_name: "status"))
    ExportImageTask.add_member(:status_message, Shapes::ShapeRef.new(shape: String, location_name: "statusMessage"))
    ExportImageTask.add_member(:tags, Shapes::ShapeRef.new(shape: TagList, location_name: "tagSet"))
    ExportImageTask.struct_class = Types::ExportImageTask

    ExportImageTaskIdList.member = Shapes::ShapeRef.new(shape: ExportImageTaskId, location_name: "ExportImageTaskId")

    ExportImageTaskList.member = Shapes::ShapeRef.new(shape: ExportImageTask, location_name: "item")

    ExportTask.add_member(:description, Shapes::ShapeRef.new(shape: String, location_name: "description"))
    ExportTask.add_member(:export_task_id, Shapes::ShapeRef.new(shape: String, location_name: "exportTaskId"))
    ExportTask.add_member(:export_to_s3_task, Shapes::ShapeRef.new(shape: ExportToS3Task, location_name: "exportToS3"))
    ExportTask.add_member(:instance_export_details, Shapes::ShapeRef.new(shape: InstanceExportDetails, location_name: "instanceExport"))
    ExportTask.add_member(:state, Shapes::ShapeRef.new(shape: ExportTaskState, location_name: "state"))
    ExportTask.add_member(:status_message, Shapes::ShapeRef.new(shape: String, location_name: "statusMessage"))
    ExportTask.add_member(:tags, Shapes::ShapeRef.new(shape: TagList, location_name: "tagSet"))
    ExportTask.struct_class = Types::ExportTask

    ExportTaskIdStringList.member = Shapes::ShapeRef.new(shape: ExportTaskId, location_name: "ExportTaskId")

    ExportTaskList.member = Shapes::ShapeRef.new(shape: ExportTask, location_name: "item")

    ExportTaskS3Location.add_member(:s3_bucket, Shapes::ShapeRef.new(shape: String, location_name: "s3Bucket"))
    ExportTaskS3Location.add_member(:s3_prefix, Shapes::ShapeRef.new(shape: String, location_name: "s3Prefix"))
    ExportTaskS3Location.struct_class = Types::ExportTaskS3Location

    ExportTaskS3LocationRequest.add_member(:s3_bucket, Shapes::ShapeRef.new(shape: String, required: true, location_name: "S3Bucket"))
    ExportTaskS3LocationRequest.add_member(:s3_prefix, Shapes::ShapeRef.new(shape: String, location_name: "S3Prefix"))
    ExportTaskS3LocationRequest.struct_class = Types::ExportTaskS3LocationRequest

    ExportToS3Task.add_member(:container_format, Shapes::ShapeRef.new(shape: ContainerFormat, location_name: "containerFormat"))
    ExportToS3Task.add_member(:disk_image_format, Shapes::ShapeRef.new(shape: DiskImageFormat, location_name: "diskImageFormat"))
    ExportToS3Task.add_member(:s3_bucket, Shapes::ShapeRef.new(shape: String, location_name: "s3Bucket"))
    ExportToS3Task.add_member(:s3_key, Shapes::ShapeRef.new(shape: String, location_name: "s3Key"))
    ExportToS3Task.struct_class = Types::ExportToS3Task

    ExportToS3TaskSpecification.add_member(:disk_image_format, Shapes::ShapeRef.new(shape: DiskImageFormat, location_name: "diskImageFormat"))
    ExportToS3TaskSpecification.add_member(:container_format, Shapes::ShapeRef.new(shape: ContainerFormat, location_name: "containerFormat"))
    ExportToS3TaskSpecification.add_member(:s3_bucket, Shapes::ShapeRef.new(shape: String, location_name: "s3Bucket"))
    ExportToS3TaskSpecification.add_member(:s3_prefix, Shapes::ShapeRef.new(shape: String, location_name: "s3Prefix"))
    ExportToS3TaskSpecification.struct_class = Types::ExportToS3TaskSpecification

    ExportTransitGatewayRoutesRequest.add_member(:transit_gateway_route_table_id, Shapes::ShapeRef.new(shape: TransitGatewayRouteTableId, required: true, location_name: "TransitGatewayRouteTableId"))
    ExportTransitGatewayRoutesRequest.add_member(:filters, Shapes::ShapeRef.new(shape: FilterList, location_name: "Filter"))
    ExportTransitGatewayRoutesRequest.add_member(:s3_bucket, Shapes::ShapeRef.new(shape: String, required: true, location_name: "S3Bucket"))
    ExportTransitGatewayRoutesRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    ExportTransitGatewayRoutesRequest.struct_class = Types::ExportTransitGatewayRoutesRequest

    ExportTransitGatewayRoutesResult.add_member(:s3_location, Shapes::ShapeRef.new(shape: String, location_name: "s3Location"))
    ExportTransitGatewayRoutesResult.struct_class = Types::ExportTransitGatewayRoutesResult

    ExportVerifiedAccessInstanceClientConfigurationRequest.add_member(:verified_access_instance_id, Shapes::ShapeRef.new(shape: VerifiedAccessInstanceId, required: true, location_name: "VerifiedAccessInstanceId"))
    ExportVerifiedAccessInstanceClientConfigurationRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    ExportVerifiedAccessInstanceClientConfigurationRequest.struct_class = Types::ExportVerifiedAccessInstanceClientConfigurationRequest

    ExportVerifiedAccessInstanceClientConfigurationResult.add_member(:version, Shapes::ShapeRef.new(shape: String, location_name: "version"))
    ExportVerifiedAccessInstanceClientConfigurationResult.add_member(:verified_access_instance_id, Shapes::ShapeRef.new(shape: String, location_name: "verifiedAccessInstanceId"))
    ExportVerifiedAccessInstanceClientConfigurationResult.add_member(:region, Shapes::ShapeRef.new(shape: String, location_name: "region"))
    ExportVerifiedAccessInstanceClientConfigurationResult.add_member(:device_trust_providers, Shapes::ShapeRef.new(shape: DeviceTrustProviderTypeList, location_name: "deviceTrustProviderSet"))
    ExportVerifiedAccessInstanceClientConfigurationResult.add_member(:user_trust_provider, Shapes::ShapeRef.new(shape: VerifiedAccessInstanceUserTrustProviderClientConfiguration, location_name: "userTrustProvider"))
    ExportVerifiedAccessInstanceClientConfigurationResult.add_member(:open_vpn_configurations, Shapes::ShapeRef.new(shape: VerifiedAccessInstanceOpenVpnClientConfigurationList, location_name: "openVpnConfigurationSet"))
    ExportVerifiedAccessInstanceClientConfigurationResult.struct_class = Types::ExportVerifiedAccessInstanceClientConfigurationResult

    FailedCapacityReservationFleetCancellationResult.add_member(:capacity_reservation_fleet_id, Shapes::ShapeRef.new(shape: CapacityReservationFleetId, location_name: "capacityReservationFleetId"))
    FailedCapacityReservationFleetCancellationResult.add_member(:cancel_capacity_reservation_fleet_error, Shapes::ShapeRef.new(shape: CancelCapacityReservationFleetError, location_name: "cancelCapacityReservationFleetError"))
    FailedCapacityReservationFleetCancellationResult.struct_class = Types::FailedCapacityReservationFleetCancellationResult

    FailedCapacityReservationFleetCancellationResultSet.member = Shapes::ShapeRef.new(shape: FailedCapacityReservationFleetCancellationResult, location_name: "item")

    FailedQueuedPurchaseDeletion.add_member(:error, Shapes::ShapeRef.new(shape: DeleteQueuedReservedInstancesError, location_name: "error"))
    FailedQueuedPurchaseDeletion.add_member(:reserved_instances_id, Shapes::ShapeRef.new(shape: String, location_name: "reservedInstancesId"))
    FailedQueuedPurchaseDeletion.struct_class = Types::FailedQueuedPurchaseDeletion

    FailedQueuedPurchaseDeletionSet.member = Shapes::ShapeRef.new(shape: FailedQueuedPurchaseDeletion, location_name: "item")

    FastLaunchImageIdList.member = Shapes::ShapeRef.new(shape: ImageId, location_name: "ImageId")

    FastLaunchLaunchTemplateSpecificationRequest.add_member(:launch_template_id, Shapes::ShapeRef.new(shape: LaunchTemplateId, location_name: "LaunchTemplateId"))
    FastLaunchLaunchTemplateSpecificationRequest.add_member(:launch_template_name, Shapes::ShapeRef.new(shape: String, location_name: "LaunchTemplateName"))
    FastLaunchLaunchTemplateSpecificationRequest.add_member(:version, Shapes::ShapeRef.new(shape: String, required: true, location_name: "Version"))
    FastLaunchLaunchTemplateSpecificationRequest.struct_class = Types::FastLaunchLaunchTemplateSpecificationRequest

    FastLaunchLaunchTemplateSpecificationResponse.add_member(:launch_template_id, Shapes::ShapeRef.new(shape: LaunchTemplateId, location_name: "launchTemplateId"))
    FastLaunchLaunchTemplateSpecificationResponse.add_member(:launch_template_name, Shapes::ShapeRef.new(shape: String, location_name: "launchTemplateName"))
    FastLaunchLaunchTemplateSpecificationResponse.add_member(:version, Shapes::ShapeRef.new(shape: String, location_name: "version"))
    FastLaunchLaunchTemplateSpecificationResponse.struct_class = Types::FastLaunchLaunchTemplateSpecificationResponse

    FastLaunchSnapshotConfigurationRequest.add_member(:target_resource_count, Shapes::ShapeRef.new(shape: Integer, location_name: "TargetResourceCount"))
    FastLaunchSnapshotConfigurationRequest.struct_class = Types::FastLaunchSnapshotConfigurationRequest

    FastLaunchSnapshotConfigurationResponse.add_member(:target_resource_count, Shapes::ShapeRef.new(shape: Integer, location_name: "targetResourceCount"))
    FastLaunchSnapshotConfigurationResponse.struct_class = Types::FastLaunchSnapshotConfigurationResponse

    FederatedAuthentication.add_member(:saml_provider_arn, Shapes::ShapeRef.new(shape: String, location_name: "samlProviderArn"))
    FederatedAuthentication.add_member(:self_service_saml_provider_arn, Shapes::ShapeRef.new(shape: String, location_name: "selfServiceSamlProviderArn"))
    FederatedAuthentication.struct_class = Types::FederatedAuthentication

    FederatedAuthenticationRequest.add_member(:saml_provider_arn, Shapes::ShapeRef.new(shape: String, location_name: "SAMLProviderArn"))
    FederatedAuthenticationRequest.add_member(:self_service_saml_provider_arn, Shapes::ShapeRef.new(shape: String, location_name: "SelfServiceSAMLProviderArn"))
    FederatedAuthenticationRequest.struct_class = Types::FederatedAuthenticationRequest

    Filter.add_member(:name, Shapes::ShapeRef.new(shape: String, location_name: "Name"))
    Filter.add_member(:values, Shapes::ShapeRef.new(shape: ValueStringList, location_name: "Value"))
    Filter.struct_class = Types::Filter

    FilterList.member = Shapes::ShapeRef.new(shape: Filter, location_name: "Filter")

    FilterPortRange.add_member(:from_port, Shapes::ShapeRef.new(shape: Port, location_name: "fromPort"))
    FilterPortRange.add_member(:to_port, Shapes::ShapeRef.new(shape: Port, location_name: "toPort"))
    FilterPortRange.struct_class = Types::FilterPortRange

    FirewallStatefulRule.add_member(:rule_group_arn, Shapes::ShapeRef.new(shape: ResourceArn, location_name: "ruleGroupArn"))
    FirewallStatefulRule.add_member(:sources, Shapes::ShapeRef.new(shape: ValueStringList, location_name: "sourceSet"))
    FirewallStatefulRule.add_member(:destinations, Shapes::ShapeRef.new(shape: ValueStringList, location_name: "destinationSet"))
    FirewallStatefulRule.add_member(:source_ports, Shapes::ShapeRef.new(shape: PortRangeList, location_name: "sourcePortSet"))
    FirewallStatefulRule.add_member(:destination_ports, Shapes::ShapeRef.new(shape: PortRangeList, location_name: "destinationPortSet"))
    FirewallStatefulRule.add_member(:protocol, Shapes::ShapeRef.new(shape: String, location_name: "protocol"))
    FirewallStatefulRule.add_member(:rule_action, Shapes::ShapeRef.new(shape: String, location_name: "ruleAction"))
    FirewallStatefulRule.add_member(:direction, Shapes::ShapeRef.new(shape: String, location_name: "direction"))
    FirewallStatefulRule.struct_class = Types::FirewallStatefulRule

    FirewallStatelessRule.add_member(:rule_group_arn, Shapes::ShapeRef.new(shape: ResourceArn, location_name: "ruleGroupArn"))
    FirewallStatelessRule.add_member(:sources, Shapes::ShapeRef.new(shape: ValueStringList, location_name: "sourceSet"))
    FirewallStatelessRule.add_member(:destinations, Shapes::ShapeRef.new(shape: ValueStringList, location_name: "destinationSet"))
    FirewallStatelessRule.add_member(:source_ports, Shapes::ShapeRef.new(shape: PortRangeList, location_name: "sourcePortSet"))
    FirewallStatelessRule.add_member(:destination_ports, Shapes::ShapeRef.new(shape: PortRangeList, location_name: "destinationPortSet"))
    FirewallStatelessRule.add_member(:protocols, Shapes::ShapeRef.new(shape: ProtocolIntList, location_name: "protocolSet"))
    FirewallStatelessRule.add_member(:rule_action, Shapes::ShapeRef.new(shape: String, location_name: "ruleAction"))
    FirewallStatelessRule.add_member(:priority, Shapes::ShapeRef.new(shape: Priority, location_name: "priority"))
    FirewallStatelessRule.struct_class = Types::FirewallStatelessRule

    FleetBlockDeviceMappingRequest.add_member(:device_name, Shapes::ShapeRef.new(shape: String, location_name: "DeviceName"))
    FleetBlockDeviceMappingRequest.add_member(:virtual_name, Shapes::ShapeRef.new(shape: String, location_name: "VirtualName"))
    FleetBlockDeviceMappingRequest.add_member(:ebs, Shapes::ShapeRef.new(shape: FleetEbsBlockDeviceRequest, location_name: "Ebs"))
    FleetBlockDeviceMappingRequest.add_member(:no_device, Shapes::ShapeRef.new(shape: String, location_name: "NoDevice"))
    FleetBlockDeviceMappingRequest.struct_class = Types::FleetBlockDeviceMappingRequest

    FleetBlockDeviceMappingRequestList.member = Shapes::ShapeRef.new(shape: FleetBlockDeviceMappingRequest, location_name: "BlockDeviceMapping")

    FleetCapacityReservation.add_member(:capacity_reservation_id, Shapes::ShapeRef.new(shape: CapacityReservationId, location_name: "capacityReservationId"))
    FleetCapacityReservation.add_member(:availability_zone_id, Shapes::ShapeRef.new(shape: String, location_name: "availabilityZoneId"))
    FleetCapacityReservation.add_member(:instance_type, Shapes::ShapeRef.new(shape: InstanceType, location_name: "instanceType"))
    FleetCapacityReservation.add_member(:instance_platform, Shapes::ShapeRef.new(shape: CapacityReservationInstancePlatform, location_name: "instancePlatform"))
    FleetCapacityReservation.add_member(:availability_zone, Shapes::ShapeRef.new(shape: String, location_name: "availabilityZone"))
    FleetCapacityReservation.add_member(:total_instance_count, Shapes::ShapeRef.new(shape: Integer, location_name: "totalInstanceCount"))
    FleetCapacityReservation.add_member(:fulfilled_capacity, Shapes::ShapeRef.new(shape: Double, location_name: "fulfilledCapacity"))
    FleetCapacityReservation.add_member(:ebs_optimized, Shapes::ShapeRef.new(shape: Boolean, location_name: "ebsOptimized"))
    FleetCapacityReservation.add_member(:create_date, Shapes::ShapeRef.new(shape: MillisecondDateTime, location_name: "createDate"))
    FleetCapacityReservation.add_member(:weight, Shapes::ShapeRef.new(shape: DoubleWithConstraints, location_name: "weight"))
    FleetCapacityReservation.add_member(:priority, Shapes::ShapeRef.new(shape: IntegerWithConstraints, location_name: "priority"))
    FleetCapacityReservation.struct_class = Types::FleetCapacityReservation

    FleetCapacityReservationSet.member = Shapes::ShapeRef.new(shape: FleetCapacityReservation, location_name: "item")

    FleetData.add_member(:activity_status, Shapes::ShapeRef.new(shape: FleetActivityStatus, location_name: "activityStatus"))
    FleetData.add_member(:create_time, Shapes::ShapeRef.new(shape: DateTime, location_name: "createTime"))
    FleetData.add_member(:fleet_id, Shapes::ShapeRef.new(shape: FleetId, location_name: "fleetId"))
    FleetData.add_member(:fleet_state, Shapes::ShapeRef.new(shape: FleetStateCode, location_name: "fleetState"))
    FleetData.add_member(:client_token, Shapes::ShapeRef.new(shape: String, location_name: "clientToken"))
    FleetData.add_member(:excess_capacity_termination_policy, Shapes::ShapeRef.new(shape: FleetExcessCapacityTerminationPolicy, location_name: "excessCapacityTerminationPolicy"))
    FleetData.add_member(:fulfilled_capacity, Shapes::ShapeRef.new(shape: Double, location_name: "fulfilledCapacity"))
    FleetData.add_member(:fulfilled_on_demand_capacity, Shapes::ShapeRef.new(shape: Double, location_name: "fulfilledOnDemandCapacity"))
    FleetData.add_member(:launch_template_configs, Shapes::ShapeRef.new(shape: FleetLaunchTemplateConfigList, location_name: "launchTemplateConfigs"))
    FleetData.add_member(:target_capacity_specification, Shapes::ShapeRef.new(shape: TargetCapacitySpecification, location_name: "targetCapacitySpecification"))
    FleetData.add_member(:terminate_instances_with_expiration, Shapes::ShapeRef.new(shape: Boolean, location_name: "terminateInstancesWithExpiration"))
    FleetData.add_member(:type, Shapes::ShapeRef.new(shape: FleetType, location_name: "type"))
    FleetData.add_member(:valid_from, Shapes::ShapeRef.new(shape: DateTime, location_name: "validFrom"))
    FleetData.add_member(:valid_until, Shapes::ShapeRef.new(shape: DateTime, location_name: "validUntil"))
    FleetData.add_member(:replace_unhealthy_instances, Shapes::ShapeRef.new(shape: Boolean, location_name: "replaceUnhealthyInstances"))
    FleetData.add_member(:spot_options, Shapes::ShapeRef.new(shape: SpotOptions, location_name: "spotOptions"))
    FleetData.add_member(:on_demand_options, Shapes::ShapeRef.new(shape: OnDemandOptions, location_name: "onDemandOptions"))
    FleetData.add_member(:tags, Shapes::ShapeRef.new(shape: TagList, location_name: "tagSet"))
    FleetData.add_member(:errors, Shapes::ShapeRef.new(shape: DescribeFleetsErrorSet, location_name: "errorSet"))
    FleetData.add_member(:instances, Shapes::ShapeRef.new(shape: DescribeFleetsInstancesSet, location_name: "fleetInstanceSet"))
    FleetData.add_member(:context, Shapes::ShapeRef.new(shape: String, location_name: "context"))
    FleetData.struct_class = Types::FleetData

    FleetEbsBlockDeviceRequest.add_member(:encrypted, Shapes::ShapeRef.new(shape: Boolean, location_name: "Encrypted"))
    FleetEbsBlockDeviceRequest.add_member(:delete_on_termination, Shapes::ShapeRef.new(shape: Boolean, location_name: "DeleteOnTermination"))
    FleetEbsBlockDeviceRequest.add_member(:iops, Shapes::ShapeRef.new(shape: Integer, location_name: "Iops"))
    FleetEbsBlockDeviceRequest.add_member(:throughput, Shapes::ShapeRef.new(shape: Integer, location_name: "Throughput"))
    FleetEbsBlockDeviceRequest.add_member(:kms_key_id, Shapes::ShapeRef.new(shape: KmsKeyId, location_name: "KmsKeyId"))
    FleetEbsBlockDeviceRequest.add_member(:snapshot_id, Shapes::ShapeRef.new(shape: SnapshotId, location_name: "SnapshotId"))
    FleetEbsBlockDeviceRequest.add_member(:volume_size, Shapes::ShapeRef.new(shape: Integer, location_name: "VolumeSize"))
    FleetEbsBlockDeviceRequest.add_member(:volume_type, Shapes::ShapeRef.new(shape: VolumeType, location_name: "VolumeType"))
    FleetEbsBlockDeviceRequest.struct_class = Types::FleetEbsBlockDeviceRequest

    FleetIdSet.member = Shapes::ShapeRef.new(shape: FleetId)

    FleetLaunchTemplateConfig.add_member(:launch_template_specification, Shapes::ShapeRef.new(shape: FleetLaunchTemplateSpecification, location_name: "launchTemplateSpecification"))
    FleetLaunchTemplateConfig.add_member(:overrides, Shapes::ShapeRef.new(shape: FleetLaunchTemplateOverridesList, location_name: "overrides"))
    FleetLaunchTemplateConfig.struct_class = Types::FleetLaunchTemplateConfig

    FleetLaunchTemplateConfigList.member = Shapes::ShapeRef.new(shape: FleetLaunchTemplateConfig, location_name: "item")

    FleetLaunchTemplateConfigListRequest.member = Shapes::ShapeRef.new(shape: FleetLaunchTemplateConfigRequest, location_name: "item")

    FleetLaunchTemplateConfigRequest.add_member(:launch_template_specification, Shapes::ShapeRef.new(shape: FleetLaunchTemplateSpecificationRequest, location_name: "LaunchTemplateSpecification"))
    FleetLaunchTemplateConfigRequest.add_member(:overrides, Shapes::ShapeRef.new(shape: FleetLaunchTemplateOverridesListRequest, location_name: "Overrides"))
    FleetLaunchTemplateConfigRequest.struct_class = Types::FleetLaunchTemplateConfigRequest

    FleetLaunchTemplateOverrides.add_member(:instance_type, Shapes::ShapeRef.new(shape: InstanceType, location_name: "instanceType"))
    FleetLaunchTemplateOverrides.add_member(:max_price, Shapes::ShapeRef.new(shape: String, location_name: "maxPrice"))
    FleetLaunchTemplateOverrides.add_member(:subnet_id, Shapes::ShapeRef.new(shape: String, location_name: "subnetId"))
    FleetLaunchTemplateOverrides.add_member(:availability_zone, Shapes::ShapeRef.new(shape: String, location_name: "availabilityZone"))
    FleetLaunchTemplateOverrides.add_member(:weighted_capacity, Shapes::ShapeRef.new(shape: Double, location_name: "weightedCapacity"))
    FleetLaunchTemplateOverrides.add_member(:priority, Shapes::ShapeRef.new(shape: Double, location_name: "priority"))
    FleetLaunchTemplateOverrides.add_member(:placement, Shapes::ShapeRef.new(shape: PlacementResponse, location_name: "placement"))
    FleetLaunchTemplateOverrides.add_member(:instance_requirements, Shapes::ShapeRef.new(shape: InstanceRequirements, location_name: "instanceRequirements"))
    FleetLaunchTemplateOverrides.add_member(:image_id, Shapes::ShapeRef.new(shape: ImageId, location_name: "imageId"))
    FleetLaunchTemplateOverrides.add_member(:block_device_mappings, Shapes::ShapeRef.new(shape: BlockDeviceMappingResponseList, location_name: "blockDeviceMappingSet"))
    FleetLaunchTemplateOverrides.struct_class = Types::FleetLaunchTemplateOverrides

    FleetLaunchTemplateOverridesList.member = Shapes::ShapeRef.new(shape: FleetLaunchTemplateOverrides, location_name: "item")

    FleetLaunchTemplateOverridesListRequest.member = Shapes::ShapeRef.new(shape: FleetLaunchTemplateOverridesRequest, location_name: "item")

    FleetLaunchTemplateOverridesRequest.add_member(:instance_type, Shapes::ShapeRef.new(shape: InstanceType, location_name: "InstanceType"))
    FleetLaunchTemplateOverridesRequest.add_member(:max_price, Shapes::ShapeRef.new(shape: String, location_name: "MaxPrice"))
    FleetLaunchTemplateOverridesRequest.add_member(:subnet_id, Shapes::ShapeRef.new(shape: SubnetId, location_name: "SubnetId"))
    FleetLaunchTemplateOverridesRequest.add_member(:availability_zone, Shapes::ShapeRef.new(shape: String, location_name: "AvailabilityZone"))
    FleetLaunchTemplateOverridesRequest.add_member(:weighted_capacity, Shapes::ShapeRef.new(shape: Double, location_name: "WeightedCapacity"))
    FleetLaunchTemplateOverridesRequest.add_member(:priority, Shapes::ShapeRef.new(shape: Double, location_name: "Priority"))
    FleetLaunchTemplateOverridesRequest.add_member(:placement, Shapes::ShapeRef.new(shape: Placement, location_name: "Placement"))
    FleetLaunchTemplateOverridesRequest.add_member(:block_device_mappings, Shapes::ShapeRef.new(shape: FleetBlockDeviceMappingRequestList, location_name: "BlockDeviceMapping"))
    FleetLaunchTemplateOverridesRequest.add_member(:instance_requirements, Shapes::ShapeRef.new(shape: InstanceRequirementsRequest, location_name: "InstanceRequirements"))
    FleetLaunchTemplateOverridesRequest.add_member(:image_id, Shapes::ShapeRef.new(shape: String, location_name: "ImageId"))
    FleetLaunchTemplateOverridesRequest.struct_class = Types::FleetLaunchTemplateOverridesRequest

    FleetLaunchTemplateSpecification.add_member(:launch_template_id, Shapes::ShapeRef.new(shape: String, location_name: "launchTemplateId"))
    FleetLaunchTemplateSpecification.add_member(:launch_template_name, Shapes::ShapeRef.new(shape: LaunchTemplateName, location_name: "launchTemplateName"))
    FleetLaunchTemplateSpecification.add_member(:version, Shapes::ShapeRef.new(shape: String, location_name: "version"))
    FleetLaunchTemplateSpecification.struct_class = Types::FleetLaunchTemplateSpecification

    FleetLaunchTemplateSpecificationRequest.add_member(:launch_template_id, Shapes::ShapeRef.new(shape: LaunchTemplateId, location_name: "LaunchTemplateId"))
    FleetLaunchTemplateSpecificationRequest.add_member(:launch_template_name, Shapes::ShapeRef.new(shape: LaunchTemplateName, location_name: "LaunchTemplateName"))
    FleetLaunchTemplateSpecificationRequest.add_member(:version, Shapes::ShapeRef.new(shape: String, location_name: "Version"))
    FleetLaunchTemplateSpecificationRequest.struct_class = Types::FleetLaunchTemplateSpecificationRequest

    FleetSet.member = Shapes::ShapeRef.new(shape: FleetData, location_name: "item")

    FleetSpotCapacityRebalance.add_member(:replacement_strategy, Shapes::ShapeRef.new(shape: FleetReplacementStrategy, location_name: "replacementStrategy"))
    FleetSpotCapacityRebalance.add_member(:termination_delay, Shapes::ShapeRef.new(shape: Integer, location_name: "terminationDelay"))
    FleetSpotCapacityRebalance.struct_class = Types::FleetSpotCapacityRebalance

    FleetSpotCapacityRebalanceRequest.add_member(:replacement_strategy, Shapes::ShapeRef.new(shape: FleetReplacementStrategy, location_name: "ReplacementStrategy"))
    FleetSpotCapacityRebalanceRequest.add_member(:termination_delay, Shapes::ShapeRef.new(shape: Integer, location_name: "TerminationDelay"))
    FleetSpotCapacityRebalanceRequest.struct_class = Types::FleetSpotCapacityRebalanceRequest

    FleetSpotMaintenanceStrategies.add_member(:capacity_rebalance, Shapes::ShapeRef.new(shape: FleetSpotCapacityRebalance, location_name: "capacityRebalance"))
    FleetSpotMaintenanceStrategies.struct_class = Types::FleetSpotMaintenanceStrategies

    FleetSpotMaintenanceStrategiesRequest.add_member(:capacity_rebalance, Shapes::ShapeRef.new(shape: FleetSpotCapacityRebalanceRequest, location_name: "CapacityRebalance"))
    FleetSpotMaintenanceStrategiesRequest.struct_class = Types::FleetSpotMaintenanceStrategiesRequest

    FlowLog.add_member(:creation_time, Shapes::ShapeRef.new(shape: MillisecondDateTime, location_name: "creationTime"))
    FlowLog.add_member(:deliver_logs_error_message, Shapes::ShapeRef.new(shape: String, location_name: "deliverLogsErrorMessage"))
    FlowLog.add_member(:deliver_logs_permission_arn, Shapes::ShapeRef.new(shape: String, location_name: "deliverLogsPermissionArn"))
    FlowLog.add_member(:deliver_cross_account_role, Shapes::ShapeRef.new(shape: String, location_name: "deliverCrossAccountRole"))
    FlowLog.add_member(:deliver_logs_status, Shapes::ShapeRef.new(shape: String, location_name: "deliverLogsStatus"))
    FlowLog.add_member(:flow_log_id, Shapes::ShapeRef.new(shape: String, location_name: "flowLogId"))
    FlowLog.add_member(:flow_log_status, Shapes::ShapeRef.new(shape: String, location_name: "flowLogStatus"))
    FlowLog.add_member(:log_group_name, Shapes::ShapeRef.new(shape: String, location_name: "logGroupName"))
    FlowLog.add_member(:resource_id, Shapes::ShapeRef.new(shape: String, location_name: "resourceId"))
    FlowLog.add_member(:traffic_type, Shapes::ShapeRef.new(shape: TrafficType, location_name: "trafficType"))
    FlowLog.add_member(:log_destination_type, Shapes::ShapeRef.new(shape: LogDestinationType, location_name: "logDestinationType"))
    FlowLog.add_member(:log_destination, Shapes::ShapeRef.new(shape: String, location_name: "logDestination"))
    FlowLog.add_member(:log_format, Shapes::ShapeRef.new(shape: String, location_name: "logFormat"))
    FlowLog.add_member(:tags, Shapes::ShapeRef.new(shape: TagList, location_name: "tagSet"))
    FlowLog.add_member(:max_aggregation_interval, Shapes::ShapeRef.new(shape: Integer, location_name: "maxAggregationInterval"))
    FlowLog.add_member(:destination_options, Shapes::ShapeRef.new(shape: DestinationOptionsResponse, location_name: "destinationOptions"))
    FlowLog.struct_class = Types::FlowLog

    FlowLogIdList.member = Shapes::ShapeRef.new(shape: VpcFlowLogId, location_name: "item")

    FlowLogResourceIds.member = Shapes::ShapeRef.new(shape: FlowLogResourceId, location_name: "item")

    FlowLogSet.member = Shapes::ShapeRef.new(shape: FlowLog, location_name: "item")

    FpgaDeviceInfo.add_member(:name, Shapes::ShapeRef.new(shape: FpgaDeviceName, location_name: "name"))
    FpgaDeviceInfo.add_member(:manufacturer, Shapes::ShapeRef.new(shape: FpgaDeviceManufacturerName, location_name: "manufacturer"))
    FpgaDeviceInfo.add_member(:count, Shapes::ShapeRef.new(shape: FpgaDeviceCount, location_name: "count"))
    FpgaDeviceInfo.add_member(:memory_info, Shapes::ShapeRef.new(shape: FpgaDeviceMemoryInfo, location_name: "memoryInfo"))
    FpgaDeviceInfo.struct_class = Types::FpgaDeviceInfo

    FpgaDeviceInfoList.member = Shapes::ShapeRef.new(shape: FpgaDeviceInfo, location_name: "item")

    FpgaDeviceMemoryInfo.add_member(:size_in_mi_b, Shapes::ShapeRef.new(shape: FpgaDeviceMemorySize, location_name: "sizeInMiB"))
    FpgaDeviceMemoryInfo.struct_class = Types::FpgaDeviceMemoryInfo

    FpgaImage.add_member(:fpga_image_id, Shapes::ShapeRef.new(shape: String, location_name: "fpgaImageId"))
    FpgaImage.add_member(:fpga_image_global_id, Shapes::ShapeRef.new(shape: String, location_name: "fpgaImageGlobalId"))
    FpgaImage.add_member(:name, Shapes::ShapeRef.new(shape: String, location_name: "name"))
    FpgaImage.add_member(:description, Shapes::ShapeRef.new(shape: String, location_name: "description"))
    FpgaImage.add_member(:shell_version, Shapes::ShapeRef.new(shape: String, location_name: "shellVersion"))
    FpgaImage.add_member(:pci_id, Shapes::ShapeRef.new(shape: PciId, location_name: "pciId"))
    FpgaImage.add_member(:state, Shapes::ShapeRef.new(shape: FpgaImageState, location_name: "state"))
    FpgaImage.add_member(:create_time, Shapes::ShapeRef.new(shape: DateTime, location_name: "createTime"))
    FpgaImage.add_member(:update_time, Shapes::ShapeRef.new(shape: DateTime, location_name: "updateTime"))
    FpgaImage.add_member(:owner_id, Shapes::ShapeRef.new(shape: String, location_name: "ownerId"))
    FpgaImage.add_member(:owner_alias, Shapes::ShapeRef.new(shape: String, location_name: "ownerAlias"))
    FpgaImage.add_member(:product_codes, Shapes::ShapeRef.new(shape: ProductCodeList, location_name: "productCodes"))
    FpgaImage.add_member(:tags, Shapes::ShapeRef.new(shape: TagList, location_name: "tags"))
    FpgaImage.add_member(:public, Shapes::ShapeRef.new(shape: Boolean, location_name: "public"))
    FpgaImage.add_member(:data_retention_support, Shapes::ShapeRef.new(shape: Boolean, location_name: "dataRetentionSupport"))
    FpgaImage.add_member(:instance_types, Shapes::ShapeRef.new(shape: InstanceTypesList, location_name: "instanceTypes"))
    FpgaImage.struct_class = Types::FpgaImage

    FpgaImageAttribute.add_member(:fpga_image_id, Shapes::ShapeRef.new(shape: String, location_name: "fpgaImageId"))
    FpgaImageAttribute.add_member(:name, Shapes::ShapeRef.new(shape: String, location_name: "name"))
    FpgaImageAttribute.add_member(:description, Shapes::ShapeRef.new(shape: String, location_name: "description"))
    FpgaImageAttribute.add_member(:load_permissions, Shapes::ShapeRef.new(shape: LoadPermissionList, location_name: "loadPermissions"))
    FpgaImageAttribute.add_member(:product_codes, Shapes::ShapeRef.new(shape: ProductCodeList, location_name: "productCodes"))
    FpgaImageAttribute.struct_class = Types::FpgaImageAttribute

    FpgaImageIdList.member = Shapes::ShapeRef.new(shape: FpgaImageId, location_name: "item")

    FpgaImageList.member = Shapes::ShapeRef.new(shape: FpgaImage, location_name: "item")

    FpgaImageState.add_member(:code, Shapes::ShapeRef.new(shape: FpgaImageStateCode, location_name: "code"))
    FpgaImageState.add_member(:message, Shapes::ShapeRef.new(shape: String, location_name: "message"))
    FpgaImageState.struct_class = Types::FpgaImageState

    FpgaInfo.add_member(:fpgas, Shapes::ShapeRef.new(shape: FpgaDeviceInfoList, location_name: "fpgas"))
    FpgaInfo.add_member(:total_fpga_memory_in_mi_b, Shapes::ShapeRef.new(shape: totalFpgaMemory, location_name: "totalFpgaMemoryInMiB"))
    FpgaInfo.struct_class = Types::FpgaInfo

    GetAllowedImagesSettingsRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    GetAllowedImagesSettingsRequest.struct_class = Types::GetAllowedImagesSettingsRequest

    GetAllowedImagesSettingsResult.add_member(:state, Shapes::ShapeRef.new(shape: String, location_name: "state"))
    GetAllowedImagesSettingsResult.add_member(:image_criteria, Shapes::ShapeRef.new(shape: ImageCriterionList, location_name: "imageCriterionSet"))
    GetAllowedImagesSettingsResult.add_member(:managed_by, Shapes::ShapeRef.new(shape: ManagedBy, location_name: "managedBy"))
    GetAllowedImagesSettingsResult.struct_class = Types::GetAllowedImagesSettingsResult

    GetAssociatedEnclaveCertificateIamRolesRequest.add_member(:certificate_arn, Shapes::ShapeRef.new(shape: CertificateId, required: true, location_name: "CertificateArn"))
    GetAssociatedEnclaveCertificateIamRolesRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    GetAssociatedEnclaveCertificateIamRolesRequest.struct_class = Types::GetAssociatedEnclaveCertificateIamRolesRequest

    GetAssociatedEnclaveCertificateIamRolesResult.add_member(:associated_roles, Shapes::ShapeRef.new(shape: AssociatedRolesList, location_name: "associatedRoleSet"))
    GetAssociatedEnclaveCertificateIamRolesResult.struct_class = Types::GetAssociatedEnclaveCertificateIamRolesResult

    GetAssociatedIpv6PoolCidrsRequest.add_member(:pool_id, Shapes::ShapeRef.new(shape: Ipv6PoolEc2Id, required: true, location_name: "PoolId"))
    GetAssociatedIpv6PoolCidrsRequest.add_member(:next_token, Shapes::ShapeRef.new(shape: NextToken, location_name: "NextToken"))
    GetAssociatedIpv6PoolCidrsRequest.add_member(:max_results, Shapes::ShapeRef.new(shape: Ipv6PoolMaxResults, location_name: "MaxResults"))
    GetAssociatedIpv6PoolCidrsRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    GetAssociatedIpv6PoolCidrsRequest.struct_class = Types::GetAssociatedIpv6PoolCidrsRequest

    GetAssociatedIpv6PoolCidrsResult.add_member(:ipv_6_cidr_associations, Shapes::ShapeRef.new(shape: Ipv6CidrAssociationSet, location_name: "ipv6CidrAssociationSet"))
    GetAssociatedIpv6PoolCidrsResult.add_member(:next_token, Shapes::ShapeRef.new(shape: String, location_name: "nextToken"))
    GetAssociatedIpv6PoolCidrsResult.struct_class = Types::GetAssociatedIpv6PoolCidrsResult

    GetAwsNetworkPerformanceDataRequest.add_member(:data_queries, Shapes::ShapeRef.new(shape: DataQueries, location_name: "DataQuery"))
    GetAwsNetworkPerformanceDataRequest.add_member(:start_time, Shapes::ShapeRef.new(shape: MillisecondDateTime, location_name: "StartTime"))
    GetAwsNetworkPerformanceDataRequest.add_member(:end_time, Shapes::ShapeRef.new(shape: MillisecondDateTime, location_name: "EndTime"))
    GetAwsNetworkPerformanceDataRequest.add_member(:max_results, Shapes::ShapeRef.new(shape: Integer, location_name: "MaxResults"))
    GetAwsNetworkPerformanceDataRequest.add_member(:next_token, Shapes::ShapeRef.new(shape: String, location_name: "NextToken"))
    GetAwsNetworkPerformanceDataRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    GetAwsNetworkPerformanceDataRequest.struct_class = Types::GetAwsNetworkPerformanceDataRequest

    GetAwsNetworkPerformanceDataResult.add_member(:data_responses, Shapes::ShapeRef.new(shape: DataResponses, location_name: "dataResponseSet"))
    GetAwsNetworkPerformanceDataResult.add_member(:next_token, Shapes::ShapeRef.new(shape: String, location_name: "nextToken"))
    GetAwsNetworkPerformanceDataResult.struct_class = Types::GetAwsNetworkPerformanceDataResult

    GetCapacityReservationUsageRequest.add_member(:capacity_reservation_id, Shapes::ShapeRef.new(shape: CapacityReservationId, required: true, location_name: "CapacityReservationId"))
    GetCapacityReservationUsageRequest.add_member(:next_token, Shapes::ShapeRef.new(shape: String, location_name: "NextToken"))
    GetCapacityReservationUsageRequest.add_member(:max_results, Shapes::ShapeRef.new(shape: GetCapacityReservationUsageRequestMaxResults, location_name: "MaxResults"))
    GetCapacityReservationUsageRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    GetCapacityReservationUsageRequest.struct_class = Types::GetCapacityReservationUsageRequest

    GetCapacityReservationUsageResult.add_member(:next_token, Shapes::ShapeRef.new(shape: String, location_name: "nextToken"))
    GetCapacityReservationUsageResult.add_member(:capacity_reservation_id, Shapes::ShapeRef.new(shape: String, location_name: "capacityReservationId"))
    GetCapacityReservationUsageResult.add_member(:instance_type, Shapes::ShapeRef.new(shape: String, location_name: "instanceType"))
    GetCapacityReservationUsageResult.add_member(:total_instance_count, Shapes::ShapeRef.new(shape: Integer, location_name: "totalInstanceCount"))
    GetCapacityReservationUsageResult.add_member(:available_instance_count, Shapes::ShapeRef.new(shape: Integer, location_name: "availableInstanceCount"))
    GetCapacityReservationUsageResult.add_member(:state, Shapes::ShapeRef.new(shape: CapacityReservationState, location_name: "state"))
    GetCapacityReservationUsageResult.add_member(:instance_usages, Shapes::ShapeRef.new(shape: InstanceUsageSet, location_name: "instanceUsageSet"))
    GetCapacityReservationUsageResult.struct_class = Types::GetCapacityReservationUsageResult

    GetCoipPoolUsageRequest.add_member(:pool_id, Shapes::ShapeRef.new(shape: Ipv4PoolCoipId, required: true, location_name: "PoolId"))
    GetCoipPoolUsageRequest.add_member(:filters, Shapes::ShapeRef.new(shape: FilterList, location_name: "Filter"))
    GetCoipPoolUsageRequest.add_member(:max_results, Shapes::ShapeRef.new(shape: CoipPoolMaxResults, location_name: "MaxResults"))
    GetCoipPoolUsageRequest.add_member(:next_token, Shapes::ShapeRef.new(shape: String, location_name: "NextToken"))
    GetCoipPoolUsageRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    GetCoipPoolUsageRequest.struct_class = Types::GetCoipPoolUsageRequest

    GetCoipPoolUsageResult.add_member(:coip_pool_id, Shapes::ShapeRef.new(shape: String, location_name: "coipPoolId"))
    GetCoipPoolUsageResult.add_member(:coip_address_usages, Shapes::ShapeRef.new(shape: CoipAddressUsageSet, location_name: "coipAddressUsageSet"))
    GetCoipPoolUsageResult.add_member(:local_gateway_route_table_id, Shapes::ShapeRef.new(shape: String, location_name: "localGatewayRouteTableId"))
    GetCoipPoolUsageResult.add_member(:next_token, Shapes::ShapeRef.new(shape: String, location_name: "nextToken"))
    GetCoipPoolUsageResult.struct_class = Types::GetCoipPoolUsageResult

    GetConsoleOutputRequest.add_member(:instance_id, Shapes::ShapeRef.new(shape: InstanceId, required: true, location_name: "InstanceId"))
    GetConsoleOutputRequest.add_member(:latest, Shapes::ShapeRef.new(shape: Boolean, location_name: "Latest"))
    GetConsoleOutputRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "dryRun"))
    GetConsoleOutputRequest.struct_class = Types::GetConsoleOutputRequest

    GetConsoleOutputResult.add_member(:instance_id, Shapes::ShapeRef.new(shape: String, location_name: "instanceId"))
    GetConsoleOutputResult.add_member(:timestamp, Shapes::ShapeRef.new(shape: DateTime, location_name: "timestamp"))
    GetConsoleOutputResult.add_member(:output, Shapes::ShapeRef.new(shape: String, location_name: "output"))
    GetConsoleOutputResult.struct_class = Types::GetConsoleOutputResult

    GetConsoleScreenshotRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    GetConsoleScreenshotRequest.add_member(:instance_id, Shapes::ShapeRef.new(shape: InstanceId, required: true, location_name: "InstanceId"))
    GetConsoleScreenshotRequest.add_member(:wake_up, Shapes::ShapeRef.new(shape: Boolean, location_name: "WakeUp"))
    GetConsoleScreenshotRequest.struct_class = Types::GetConsoleScreenshotRequest

    GetConsoleScreenshotResult.add_member(:image_data, Shapes::ShapeRef.new(shape: String, location_name: "imageData"))
    GetConsoleScreenshotResult.add_member(:instance_id, Shapes::ShapeRef.new(shape: String, location_name: "instanceId"))
    GetConsoleScreenshotResult.struct_class = Types::GetConsoleScreenshotResult

    GetDeclarativePoliciesReportSummaryRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    GetDeclarativePoliciesReportSummaryRequest.add_member(:report_id, Shapes::ShapeRef.new(shape: DeclarativePoliciesReportId, required: true, location_name: "ReportId"))
    GetDeclarativePoliciesReportSummaryRequest.struct_class = Types::GetDeclarativePoliciesReportSummaryRequest

    GetDeclarativePoliciesReportSummaryResult.add_member(:report_id, Shapes::ShapeRef.new(shape: String, location_name: "reportId"))
    GetDeclarativePoliciesReportSummaryResult.add_member(:s3_bucket, Shapes::ShapeRef.new(shape: String, location_name: "s3Bucket"))
    GetDeclarativePoliciesReportSummaryResult.add_member(:s3_prefix, Shapes::ShapeRef.new(shape: String, location_name: "s3Prefix"))
    GetDeclarativePoliciesReportSummaryResult.add_member(:target_id, Shapes::ShapeRef.new(shape: String, location_name: "targetId"))
    GetDeclarativePoliciesReportSummaryResult.add_member(:start_time, Shapes::ShapeRef.new(shape: MillisecondDateTime, location_name: "startTime"))
    GetDeclarativePoliciesReportSummaryResult.add_member(:end_time, Shapes::ShapeRef.new(shape: MillisecondDateTime, location_name: "endTime"))
    GetDeclarativePoliciesReportSummaryResult.add_member(:number_of_accounts, Shapes::ShapeRef.new(shape: Integer, location_name: "numberOfAccounts"))
    GetDeclarativePoliciesReportSummaryResult.add_member(:number_of_failed_accounts, Shapes::ShapeRef.new(shape: Integer, location_name: "numberOfFailedAccounts"))
    GetDeclarativePoliciesReportSummaryResult.add_member(:attribute_summaries, Shapes::ShapeRef.new(shape: AttributeSummaryList, location_name: "attributeSummarySet"))
    GetDeclarativePoliciesReportSummaryResult.struct_class = Types::GetDeclarativePoliciesReportSummaryResult

    GetDefaultCreditSpecificationRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    GetDefaultCreditSpecificationRequest.add_member(:instance_family, Shapes::ShapeRef.new(shape: UnlimitedSupportedInstanceFamily, required: true, location_name: "InstanceFamily"))
    GetDefaultCreditSpecificationRequest.struct_class = Types::GetDefaultCreditSpecificationRequest

    GetDefaultCreditSpecificationResult.add_member(:instance_family_credit_specification, Shapes::ShapeRef.new(shape: InstanceFamilyCreditSpecification, location_name: "instanceFamilyCreditSpecification"))
    GetDefaultCreditSpecificationResult.struct_class = Types::GetDefaultCreditSpecificationResult

    GetEbsDefaultKmsKeyIdRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    GetEbsDefaultKmsKeyIdRequest.struct_class = Types::GetEbsDefaultKmsKeyIdRequest

    GetEbsDefaultKmsKeyIdResult.add_member(:kms_key_id, Shapes::ShapeRef.new(shape: String, location_name: "kmsKeyId"))
    GetEbsDefaultKmsKeyIdResult.struct_class = Types::GetEbsDefaultKmsKeyIdResult

    GetEbsEncryptionByDefaultRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    GetEbsEncryptionByDefaultRequest.struct_class = Types::GetEbsEncryptionByDefaultRequest

    GetEbsEncryptionByDefaultResult.add_member(:ebs_encryption_by_default, Shapes::ShapeRef.new(shape: Boolean, location_name: "ebsEncryptionByDefault"))
    GetEbsEncryptionByDefaultResult.add_member(:sse_type, Shapes::ShapeRef.new(shape: SSEType, location_name: "sseType"))
    GetEbsEncryptionByDefaultResult.struct_class = Types::GetEbsEncryptionByDefaultResult

    GetFlowLogsIntegrationTemplateRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    GetFlowLogsIntegrationTemplateRequest.add_member(:flow_log_id, Shapes::ShapeRef.new(shape: VpcFlowLogId, required: true, location_name: "FlowLogId"))
    GetFlowLogsIntegrationTemplateRequest.add_member(:config_delivery_s3_destination_arn, Shapes::ShapeRef.new(shape: String, required: true, location_name: "ConfigDeliveryS3DestinationArn"))
    GetFlowLogsIntegrationTemplateRequest.add_member(:integrate_services, Shapes::ShapeRef.new(shape: IntegrateServices, required: true, location_name: "IntegrateService"))
    GetFlowLogsIntegrationTemplateRequest.struct_class = Types::GetFlowLogsIntegrationTemplateRequest

    GetFlowLogsIntegrationTemplateResult.add_member(:result, Shapes::ShapeRef.new(shape: String, location_name: "result"))
    GetFlowLogsIntegrationTemplateResult.struct_class = Types::GetFlowLogsIntegrationTemplateResult

    GetGroupsForCapacityReservationRequest.add_member(:capacity_reservation_id, Shapes::ShapeRef.new(shape: CapacityReservationId, required: true, location_name: "CapacityReservationId"))
    GetGroupsForCapacityReservationRequest.add_member(:next_token, Shapes::ShapeRef.new(shape: String, location_name: "NextToken"))
    GetGroupsForCapacityReservationRequest.add_member(:max_results, Shapes::ShapeRef.new(shape: GetGroupsForCapacityReservationRequestMaxResults, location_name: "MaxResults"))
    GetGroupsForCapacityReservationRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    GetGroupsForCapacityReservationRequest.struct_class = Types::GetGroupsForCapacityReservationRequest

    GetGroupsForCapacityReservationResult.add_member(:next_token, Shapes::ShapeRef.new(shape: String, location_name: "nextToken"))
    GetGroupsForCapacityReservationResult.add_member(:capacity_reservation_groups, Shapes::ShapeRef.new(shape: CapacityReservationGroupSet, location_name: "capacityReservationGroupSet"))
    GetGroupsForCapacityReservationResult.struct_class = Types::GetGroupsForCapacityReservationResult

    GetHostReservationPurchasePreviewRequest.add_member(:host_id_set, Shapes::ShapeRef.new(shape: RequestHostIdSet, required: true, location_name: "HostIdSet"))
    GetHostReservationPurchasePreviewRequest.add_member(:offering_id, Shapes::ShapeRef.new(shape: OfferingId, required: true, location_name: "OfferingId"))
    GetHostReservationPurchasePreviewRequest.struct_class = Types::GetHostReservationPurchasePreviewRequest

    GetHostReservationPurchasePreviewResult.add_member(:currency_code, Shapes::ShapeRef.new(shape: CurrencyCodeValues, location_name: "currencyCode"))
    GetHostReservationPurchasePreviewResult.add_member(:purchase, Shapes::ShapeRef.new(shape: PurchaseSet, location_name: "purchase"))
    GetHostReservationPurchasePreviewResult.add_member(:total_hourly_price, Shapes::ShapeRef.new(shape: String, location_name: "totalHourlyPrice"))
    GetHostReservationPurchasePreviewResult.add_member(:total_upfront_price, Shapes::ShapeRef.new(shape: String, location_name: "totalUpfrontPrice"))
    GetHostReservationPurchasePreviewResult.struct_class = Types::GetHostReservationPurchasePreviewResult

    GetImageBlockPublicAccessStateRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    GetImageBlockPublicAccessStateRequest.struct_class = Types::GetImageBlockPublicAccessStateRequest

    GetImageBlockPublicAccessStateResult.add_member(:image_block_public_access_state, Shapes::ShapeRef.new(shape: String, location_name: "imageBlockPublicAccessState"))
    GetImageBlockPublicAccessStateResult.add_member(:managed_by, Shapes::ShapeRef.new(shape: ManagedBy, location_name: "managedBy"))
    GetImageBlockPublicAccessStateResult.struct_class = Types::GetImageBlockPublicAccessStateResult

    GetInstanceMetadataDefaultsRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    GetInstanceMetadataDefaultsRequest.struct_class = Types::GetInstanceMetadataDefaultsRequest

    GetInstanceMetadataDefaultsResult.add_member(:account_level, Shapes::ShapeRef.new(shape: InstanceMetadataDefaultsResponse, location_name: "accountLevel"))
    GetInstanceMetadataDefaultsResult.struct_class = Types::GetInstanceMetadataDefaultsResult

    GetInstanceTpmEkPubRequest.add_member(:instance_id, Shapes::ShapeRef.new(shape: InstanceId, required: true, location_name: "InstanceId"))
    GetInstanceTpmEkPubRequest.add_member(:key_type, Shapes::ShapeRef.new(shape: EkPubKeyType, required: true, location_name: "KeyType"))
    GetInstanceTpmEkPubRequest.add_member(:key_format, Shapes::ShapeRef.new(shape: EkPubKeyFormat, required: true, location_name: "KeyFormat"))
    GetInstanceTpmEkPubRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    GetInstanceTpmEkPubRequest.struct_class = Types::GetInstanceTpmEkPubRequest

    GetInstanceTpmEkPubResult.add_member(:instance_id, Shapes::ShapeRef.new(shape: InstanceId, location_name: "instanceId"))
    GetInstanceTpmEkPubResult.add_member(:key_type, Shapes::ShapeRef.new(shape: EkPubKeyType, location_name: "keyType"))
    GetInstanceTpmEkPubResult.add_member(:key_format, Shapes::ShapeRef.new(shape: EkPubKeyFormat, location_name: "keyFormat"))
    GetInstanceTpmEkPubResult.add_member(:key_value, Shapes::ShapeRef.new(shape: EkPubKeyValue, location_name: "keyValue"))
    GetInstanceTpmEkPubResult.struct_class = Types::GetInstanceTpmEkPubResult

    GetInstanceTypesFromInstanceRequirementsRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    GetInstanceTypesFromInstanceRequirementsRequest.add_member(:architecture_types, Shapes::ShapeRef.new(shape: ArchitectureTypeSet, required: true, location_name: "ArchitectureType"))
    GetInstanceTypesFromInstanceRequirementsRequest.add_member(:virtualization_types, Shapes::ShapeRef.new(shape: VirtualizationTypeSet, required: true, location_name: "VirtualizationType"))
    GetInstanceTypesFromInstanceRequirementsRequest.add_member(:instance_requirements, Shapes::ShapeRef.new(shape: InstanceRequirementsRequest, required: true, location_name: "InstanceRequirements"))
    GetInstanceTypesFromInstanceRequirementsRequest.add_member(:max_results, Shapes::ShapeRef.new(shape: Integer, location_name: "MaxResults"))
    GetInstanceTypesFromInstanceRequirementsRequest.add_member(:next_token, Shapes::ShapeRef.new(shape: String, location_name: "NextToken"))
    GetInstanceTypesFromInstanceRequirementsRequest.struct_class = Types::GetInstanceTypesFromInstanceRequirementsRequest

    GetInstanceTypesFromInstanceRequirementsResult.add_member(:instance_types, Shapes::ShapeRef.new(shape: InstanceTypeInfoFromInstanceRequirementsSet, location_name: "instanceTypeSet"))
    GetInstanceTypesFromInstanceRequirementsResult.add_member(:next_token, Shapes::ShapeRef.new(shape: String, location_name: "nextToken"))
    GetInstanceTypesFromInstanceRequirementsResult.struct_class = Types::GetInstanceTypesFromInstanceRequirementsResult

    GetInstanceUefiDataRequest.add_member(:instance_id, Shapes::ShapeRef.new(shape: InstanceId, required: true, location_name: "InstanceId"))
    GetInstanceUefiDataRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    GetInstanceUefiDataRequest.struct_class = Types::GetInstanceUefiDataRequest

    GetInstanceUefiDataResult.add_member(:instance_id, Shapes::ShapeRef.new(shape: InstanceId, location_name: "instanceId"))
    GetInstanceUefiDataResult.add_member(:uefi_data, Shapes::ShapeRef.new(shape: String, location_name: "uefiData"))
    GetInstanceUefiDataResult.struct_class = Types::GetInstanceUefiDataResult

    GetIpamAddressHistoryRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    GetIpamAddressHistoryRequest.add_member(:cidr, Shapes::ShapeRef.new(shape: String, required: true, location_name: "Cidr"))
    GetIpamAddressHistoryRequest.add_member(:ipam_scope_id, Shapes::ShapeRef.new(shape: IpamScopeId, required: true, location_name: "IpamScopeId"))
    GetIpamAddressHistoryRequest.add_member(:vpc_id, Shapes::ShapeRef.new(shape: String, location_name: "VpcId"))
    GetIpamAddressHistoryRequest.add_member(:start_time, Shapes::ShapeRef.new(shape: MillisecondDateTime, location_name: "StartTime"))
    GetIpamAddressHistoryRequest.add_member(:end_time, Shapes::ShapeRef.new(shape: MillisecondDateTime, location_name: "EndTime"))
    GetIpamAddressHistoryRequest.add_member(:max_results, Shapes::ShapeRef.new(shape: IpamAddressHistoryMaxResults, location_name: "MaxResults"))
    GetIpamAddressHistoryRequest.add_member(:next_token, Shapes::ShapeRef.new(shape: NextToken, location_name: "NextToken"))
    GetIpamAddressHistoryRequest.struct_class = Types::GetIpamAddressHistoryRequest

    GetIpamAddressHistoryResult.add_member(:history_records, Shapes::ShapeRef.new(shape: IpamAddressHistoryRecordSet, location_name: "historyRecordSet"))
    GetIpamAddressHistoryResult.add_member(:next_token, Shapes::ShapeRef.new(shape: NextToken, location_name: "nextToken"))
    GetIpamAddressHistoryResult.struct_class = Types::GetIpamAddressHistoryResult

    GetIpamDiscoveredAccountsRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    GetIpamDiscoveredAccountsRequest.add_member(:ipam_resource_discovery_id, Shapes::ShapeRef.new(shape: IpamResourceDiscoveryId, required: true, location_name: "IpamResourceDiscoveryId"))
    GetIpamDiscoveredAccountsRequest.add_member(:discovery_region, Shapes::ShapeRef.new(shape: String, required: true, location_name: "DiscoveryRegion"))
    GetIpamDiscoveredAccountsRequest.add_member(:filters, Shapes::ShapeRef.new(shape: FilterList, location_name: "Filter"))
    GetIpamDiscoveredAccountsRequest.add_member(:next_token, Shapes::ShapeRef.new(shape: NextToken, location_name: "NextToken"))
    GetIpamDiscoveredAccountsRequest.add_member(:max_results, Shapes::ShapeRef.new(shape: IpamMaxResults, location_name: "MaxResults"))
    GetIpamDiscoveredAccountsRequest.struct_class = Types::GetIpamDiscoveredAccountsRequest

    GetIpamDiscoveredAccountsResult.add_member(:ipam_discovered_accounts, Shapes::ShapeRef.new(shape: IpamDiscoveredAccountSet, location_name: "ipamDiscoveredAccountSet"))
    GetIpamDiscoveredAccountsResult.add_member(:next_token, Shapes::ShapeRef.new(shape: NextToken, location_name: "nextToken"))
    GetIpamDiscoveredAccountsResult.struct_class = Types::GetIpamDiscoveredAccountsResult

    GetIpamDiscoveredPublicAddressesRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    GetIpamDiscoveredPublicAddressesRequest.add_member(:ipam_resource_discovery_id, Shapes::ShapeRef.new(shape: IpamResourceDiscoveryId, required: true, location_name: "IpamResourceDiscoveryId"))
    GetIpamDiscoveredPublicAddressesRequest.add_member(:address_region, Shapes::ShapeRef.new(shape: String, required: true, location_name: "AddressRegion"))
    GetIpamDiscoveredPublicAddressesRequest.add_member(:filters, Shapes::ShapeRef.new(shape: FilterList, location_name: "Filter"))
    GetIpamDiscoveredPublicAddressesRequest.add_member(:next_token, Shapes::ShapeRef.new(shape: NextToken, location_name: "NextToken"))
    GetIpamDiscoveredPublicAddressesRequest.add_member(:max_results, Shapes::ShapeRef.new(shape: IpamMaxResults, location_name: "MaxResults"))
    GetIpamDiscoveredPublicAddressesRequest.struct_class = Types::GetIpamDiscoveredPublicAddressesRequest

    GetIpamDiscoveredPublicAddressesResult.add_member(:ipam_discovered_public_addresses, Shapes::ShapeRef.new(shape: IpamDiscoveredPublicAddressSet, location_name: "ipamDiscoveredPublicAddressSet"))
    GetIpamDiscoveredPublicAddressesResult.add_member(:oldest_sample_time, Shapes::ShapeRef.new(shape: MillisecondDateTime, location_name: "oldestSampleTime"))
    GetIpamDiscoveredPublicAddressesResult.add_member(:next_token, Shapes::ShapeRef.new(shape: NextToken, location_name: "nextToken"))
    GetIpamDiscoveredPublicAddressesResult.struct_class = Types::GetIpamDiscoveredPublicAddressesResult

    GetIpamDiscoveredResourceCidrsRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    GetIpamDiscoveredResourceCidrsRequest.add_member(:ipam_resource_discovery_id, Shapes::ShapeRef.new(shape: IpamResourceDiscoveryId, required: true, location_name: "IpamResourceDiscoveryId"))
    GetIpamDiscoveredResourceCidrsRequest.add_member(:resource_region, Shapes::ShapeRef.new(shape: String, required: true, location_name: "ResourceRegion"))
    GetIpamDiscoveredResourceCidrsRequest.add_member(:filters, Shapes::ShapeRef.new(shape: FilterList, location_name: "Filter"))
    GetIpamDiscoveredResourceCidrsRequest.add_member(:next_token, Shapes::ShapeRef.new(shape: NextToken, location_name: "NextToken"))
    GetIpamDiscoveredResourceCidrsRequest.add_member(:max_results, Shapes::ShapeRef.new(shape: IpamMaxResults, location_name: "MaxResults"))
    GetIpamDiscoveredResourceCidrsRequest.struct_class = Types::GetIpamDiscoveredResourceCidrsRequest

    GetIpamDiscoveredResourceCidrsResult.add_member(:ipam_discovered_resource_cidrs, Shapes::ShapeRef.new(shape: IpamDiscoveredResourceCidrSet, location_name: "ipamDiscoveredResourceCidrSet"))
    GetIpamDiscoveredResourceCidrsResult.add_member(:next_token, Shapes::ShapeRef.new(shape: NextToken, location_name: "nextToken"))
    GetIpamDiscoveredResourceCidrsResult.struct_class = Types::GetIpamDiscoveredResourceCidrsResult

    GetIpamPoolAllocationsRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    GetIpamPoolAllocationsRequest.add_member(:ipam_pool_id, Shapes::ShapeRef.new(shape: IpamPoolId, required: true, location_name: "IpamPoolId"))
    GetIpamPoolAllocationsRequest.add_member(:ipam_pool_allocation_id, Shapes::ShapeRef.new(shape: IpamPoolAllocationId, location_name: "IpamPoolAllocationId"))
    GetIpamPoolAllocationsRequest.add_member(:filters, Shapes::ShapeRef.new(shape: FilterList, location_name: "Filter"))
    GetIpamPoolAllocationsRequest.add_member(:max_results, Shapes::ShapeRef.new(shape: GetIpamPoolAllocationsMaxResults, location_name: "MaxResults"))
    GetIpamPoolAllocationsRequest.add_member(:next_token, Shapes::ShapeRef.new(shape: NextToken, location_name: "NextToken"))
    GetIpamPoolAllocationsRequest.struct_class = Types::GetIpamPoolAllocationsRequest

    GetIpamPoolAllocationsResult.add_member(:ipam_pool_allocations, Shapes::ShapeRef.new(shape: IpamPoolAllocationSet, location_name: "ipamPoolAllocationSet"))
    GetIpamPoolAllocationsResult.add_member(:next_token, Shapes::ShapeRef.new(shape: NextToken, location_name: "nextToken"))
    GetIpamPoolAllocationsResult.struct_class = Types::GetIpamPoolAllocationsResult

    GetIpamPoolCidrsRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    GetIpamPoolCidrsRequest.add_member(:ipam_pool_id, Shapes::ShapeRef.new(shape: IpamPoolId, required: true, location_name: "IpamPoolId"))
    GetIpamPoolCidrsRequest.add_member(:filters, Shapes::ShapeRef.new(shape: FilterList, location_name: "Filter"))
    GetIpamPoolCidrsRequest.add_member(:max_results, Shapes::ShapeRef.new(shape: IpamMaxResults, location_name: "MaxResults"))
    GetIpamPoolCidrsRequest.add_member(:next_token, Shapes::ShapeRef.new(shape: NextToken, location_name: "NextToken"))
    GetIpamPoolCidrsRequest.struct_class = Types::GetIpamPoolCidrsRequest

    GetIpamPoolCidrsResult.add_member(:ipam_pool_cidrs, Shapes::ShapeRef.new(shape: IpamPoolCidrSet, location_name: "ipamPoolCidrSet"))
    GetIpamPoolCidrsResult.add_member(:next_token, Shapes::ShapeRef.new(shape: NextToken, location_name: "nextToken"))
    GetIpamPoolCidrsResult.struct_class = Types::GetIpamPoolCidrsResult

    GetIpamResourceCidrsRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    GetIpamResourceCidrsRequest.add_member(:filters, Shapes::ShapeRef.new(shape: FilterList, location_name: "Filter"))
    GetIpamResourceCidrsRequest.add_member(:max_results, Shapes::ShapeRef.new(shape: IpamMaxResults, location_name: "MaxResults"))
    GetIpamResourceCidrsRequest.add_member(:next_token, Shapes::ShapeRef.new(shape: NextToken, location_name: "NextToken"))
    GetIpamResourceCidrsRequest.add_member(:ipam_scope_id, Shapes::ShapeRef.new(shape: IpamScopeId, required: true, location_name: "IpamScopeId"))
    GetIpamResourceCidrsRequest.add_member(:ipam_pool_id, Shapes::ShapeRef.new(shape: IpamPoolId, location_name: "IpamPoolId"))
    GetIpamResourceCidrsRequest.add_member(:resource_id, Shapes::ShapeRef.new(shape: String, location_name: "ResourceId"))
    GetIpamResourceCidrsRequest.add_member(:resource_type, Shapes::ShapeRef.new(shape: IpamResourceType, location_name: "ResourceType"))
    GetIpamResourceCidrsRequest.add_member(:resource_tag, Shapes::ShapeRef.new(shape: RequestIpamResourceTag, location_name: "ResourceTag"))
    GetIpamResourceCidrsRequest.add_member(:resource_owner, Shapes::ShapeRef.new(shape: String, location_name: "ResourceOwner"))
    GetIpamResourceCidrsRequest.struct_class = Types::GetIpamResourceCidrsRequest

    GetIpamResourceCidrsResult.add_member(:next_token, Shapes::ShapeRef.new(shape: NextToken, location_name: "nextToken"))
    GetIpamResourceCidrsResult.add_member(:ipam_resource_cidrs, Shapes::ShapeRef.new(shape: IpamResourceCidrSet, location_name: "ipamResourceCidrSet"))
    GetIpamResourceCidrsResult.struct_class = Types::GetIpamResourceCidrsResult

    GetLaunchTemplateDataRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    GetLaunchTemplateDataRequest.add_member(:instance_id, Shapes::ShapeRef.new(shape: InstanceId, required: true, location_name: "InstanceId"))
    GetLaunchTemplateDataRequest.struct_class = Types::GetLaunchTemplateDataRequest

    GetLaunchTemplateDataResult.add_member(:launch_template_data, Shapes::ShapeRef.new(shape: ResponseLaunchTemplateData, location_name: "launchTemplateData"))
    GetLaunchTemplateDataResult.struct_class = Types::GetLaunchTemplateDataResult

    GetManagedPrefixListAssociationsRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    GetManagedPrefixListAssociationsRequest.add_member(:prefix_list_id, Shapes::ShapeRef.new(shape: PrefixListResourceId, required: true, location_name: "PrefixListId"))
    GetManagedPrefixListAssociationsRequest.add_member(:max_results, Shapes::ShapeRef.new(shape: GetManagedPrefixListAssociationsMaxResults, location_name: "MaxResults"))
    GetManagedPrefixListAssociationsRequest.add_member(:next_token, Shapes::ShapeRef.new(shape: NextToken, location_name: "NextToken"))
    GetManagedPrefixListAssociationsRequest.struct_class = Types::GetManagedPrefixListAssociationsRequest

    GetManagedPrefixListAssociationsResult.add_member(:prefix_list_associations, Shapes::ShapeRef.new(shape: PrefixListAssociationSet, location_name: "prefixListAssociationSet"))
    GetManagedPrefixListAssociationsResult.add_member(:next_token, Shapes::ShapeRef.new(shape: String, location_name: "nextToken"))
    GetManagedPrefixListAssociationsResult.struct_class = Types::GetManagedPrefixListAssociationsResult

    GetManagedPrefixListEntriesRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    GetManagedPrefixListEntriesRequest.add_member(:prefix_list_id, Shapes::ShapeRef.new(shape: PrefixListResourceId, required: true, location_name: "PrefixListId"))
    GetManagedPrefixListEntriesRequest.add_member(:target_version, Shapes::ShapeRef.new(shape: Long, location_name: "TargetVersion"))
    GetManagedPrefixListEntriesRequest.add_member(:max_results, Shapes::ShapeRef.new(shape: PrefixListMaxResults, location_name: "MaxResults"))
    GetManagedPrefixListEntriesRequest.add_member(:next_token, Shapes::ShapeRef.new(shape: NextToken, location_name: "NextToken"))
    GetManagedPrefixListEntriesRequest.struct_class = Types::GetManagedPrefixListEntriesRequest

    GetManagedPrefixListEntriesResult.add_member(:entries, Shapes::ShapeRef.new(shape: PrefixListEntrySet, location_name: "entrySet"))
    GetManagedPrefixListEntriesResult.add_member(:next_token, Shapes::ShapeRef.new(shape: NextToken, location_name: "nextToken"))
    GetManagedPrefixListEntriesResult.struct_class = Types::GetManagedPrefixListEntriesResult

    GetNetworkInsightsAccessScopeAnalysisFindingsRequest.add_member(:network_insights_access_scope_analysis_id, Shapes::ShapeRef.new(shape: NetworkInsightsAccessScopeAnalysisId, required: true, location_name: "NetworkInsightsAccessScopeAnalysisId"))
    GetNetworkInsightsAccessScopeAnalysisFindingsRequest.add_member(:max_results, Shapes::ShapeRef.new(shape: GetNetworkInsightsAccessScopeAnalysisFindingsMaxResults, location_name: "MaxResults"))
    GetNetworkInsightsAccessScopeAnalysisFindingsRequest.add_member(:next_token, Shapes::ShapeRef.new(shape: NextToken, location_name: "NextToken"))
    GetNetworkInsightsAccessScopeAnalysisFindingsRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    GetNetworkInsightsAccessScopeAnalysisFindingsRequest.struct_class = Types::GetNetworkInsightsAccessScopeAnalysisFindingsRequest

    GetNetworkInsightsAccessScopeAnalysisFindingsResult.add_member(:network_insights_access_scope_analysis_id, Shapes::ShapeRef.new(shape: NetworkInsightsAccessScopeAnalysisId, location_name: "networkInsightsAccessScopeAnalysisId"))
    GetNetworkInsightsAccessScopeAnalysisFindingsResult.add_member(:analysis_status, Shapes::ShapeRef.new(shape: AnalysisStatus, location_name: "analysisStatus"))
    GetNetworkInsightsAccessScopeAnalysisFindingsResult.add_member(:analysis_findings, Shapes::ShapeRef.new(shape: AccessScopeAnalysisFindingList, location_name: "analysisFindingSet"))
    GetNetworkInsightsAccessScopeAnalysisFindingsResult.add_member(:next_token, Shapes::ShapeRef.new(shape: String, location_name: "nextToken"))
    GetNetworkInsightsAccessScopeAnalysisFindingsResult.struct_class = Types::GetNetworkInsightsAccessScopeAnalysisFindingsResult

    GetNetworkInsightsAccessScopeContentRequest.add_member(:network_insights_access_scope_id, Shapes::ShapeRef.new(shape: NetworkInsightsAccessScopeId, required: true, location_name: "NetworkInsightsAccessScopeId"))
    GetNetworkInsightsAccessScopeContentRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    GetNetworkInsightsAccessScopeContentRequest.struct_class = Types::GetNetworkInsightsAccessScopeContentRequest

    GetNetworkInsightsAccessScopeContentResult.add_member(:network_insights_access_scope_content, Shapes::ShapeRef.new(shape: NetworkInsightsAccessScopeContent, location_name: "networkInsightsAccessScopeContent"))
    GetNetworkInsightsAccessScopeContentResult.struct_class = Types::GetNetworkInsightsAccessScopeContentResult

    GetPasswordDataRequest.add_member(:instance_id, Shapes::ShapeRef.new(shape: InstanceId, required: true, location_name: "InstanceId"))
    GetPasswordDataRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "dryRun"))
    GetPasswordDataRequest.struct_class = Types::GetPasswordDataRequest

    GetPasswordDataResult.add_member(:instance_id, Shapes::ShapeRef.new(shape: String, location_name: "instanceId"))
    GetPasswordDataResult.add_member(:timestamp, Shapes::ShapeRef.new(shape: DateTime, location_name: "timestamp"))
    GetPasswordDataResult.add_member(:password_data, Shapes::ShapeRef.new(shape: PasswordData, location_name: "passwordData"))
    GetPasswordDataResult.struct_class = Types::GetPasswordDataResult

    GetReservedInstancesExchangeQuoteRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    GetReservedInstancesExchangeQuoteRequest.add_member(:reserved_instance_ids, Shapes::ShapeRef.new(shape: ReservedInstanceIdSet, required: true, location_name: "ReservedInstanceId"))
    GetReservedInstancesExchangeQuoteRequest.add_member(:target_configurations, Shapes::ShapeRef.new(shape: TargetConfigurationRequestSet, location_name: "TargetConfiguration"))
    GetReservedInstancesExchangeQuoteRequest.struct_class = Types::GetReservedInstancesExchangeQuoteRequest

    GetReservedInstancesExchangeQuoteResult.add_member(:currency_code, Shapes::ShapeRef.new(shape: String, location_name: "currencyCode"))
    GetReservedInstancesExchangeQuoteResult.add_member(:is_valid_exchange, Shapes::ShapeRef.new(shape: Boolean, location_name: "isValidExchange"))
    GetReservedInstancesExchangeQuoteResult.add_member(:output_reserved_instances_will_expire_at, Shapes::ShapeRef.new(shape: DateTime, location_name: "outputReservedInstancesWillExpireAt"))
    GetReservedInstancesExchangeQuoteResult.add_member(:payment_due, Shapes::ShapeRef.new(shape: String, location_name: "paymentDue"))
    GetReservedInstancesExchangeQuoteResult.add_member(:reserved_instance_value_rollup, Shapes::ShapeRef.new(shape: ReservationValue, location_name: "reservedInstanceValueRollup"))
    GetReservedInstancesExchangeQuoteResult.add_member(:reserved_instance_value_set, Shapes::ShapeRef.new(shape: ReservedInstanceReservationValueSet, location_name: "reservedInstanceValueSet"))
    GetReservedInstancesExchangeQuoteResult.add_member(:target_configuration_value_rollup, Shapes::ShapeRef.new(shape: ReservationValue, location_name: "targetConfigurationValueRollup"))
    GetReservedInstancesExchangeQuoteResult.add_member(:target_configuration_value_set, Shapes::ShapeRef.new(shape: TargetReservationValueSet, location_name: "targetConfigurationValueSet"))
    GetReservedInstancesExchangeQuoteResult.add_member(:validation_failure_reason, Shapes::ShapeRef.new(shape: String, location_name: "validationFailureReason"))
    GetReservedInstancesExchangeQuoteResult.struct_class = Types::GetReservedInstancesExchangeQuoteResult

    GetSecurityGroupsForVpcRequest.add_member(:vpc_id, Shapes::ShapeRef.new(shape: VpcId, required: true, location_name: "VpcId"))
    GetSecurityGroupsForVpcRequest.add_member(:next_token, Shapes::ShapeRef.new(shape: String, location_name: "NextToken"))
    GetSecurityGroupsForVpcRequest.add_member(:max_results, Shapes::ShapeRef.new(shape: GetSecurityGroupsForVpcRequestMaxResults, location_name: "MaxResults"))
    GetSecurityGroupsForVpcRequest.add_member(:filters, Shapes::ShapeRef.new(shape: FilterList, location_name: "Filter"))
    GetSecurityGroupsForVpcRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    GetSecurityGroupsForVpcRequest.struct_class = Types::GetSecurityGroupsForVpcRequest

    GetSecurityGroupsForVpcResult.add_member(:next_token, Shapes::ShapeRef.new(shape: String, location_name: "nextToken"))
    GetSecurityGroupsForVpcResult.add_member(:security_group_for_vpcs, Shapes::ShapeRef.new(shape: SecurityGroupForVpcList, location_name: "securityGroupForVpcSet"))
    GetSecurityGroupsForVpcResult.struct_class = Types::GetSecurityGroupsForVpcResult

    GetSerialConsoleAccessStatusRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    GetSerialConsoleAccessStatusRequest.struct_class = Types::GetSerialConsoleAccessStatusRequest

    GetSerialConsoleAccessStatusResult.add_member(:serial_console_access_enabled, Shapes::ShapeRef.new(shape: Boolean, location_name: "serialConsoleAccessEnabled"))
    GetSerialConsoleAccessStatusResult.add_member(:managed_by, Shapes::ShapeRef.new(shape: ManagedBy, location_name: "managedBy"))
    GetSerialConsoleAccessStatusResult.struct_class = Types::GetSerialConsoleAccessStatusResult

    GetSnapshotBlockPublicAccessStateRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    GetSnapshotBlockPublicAccessStateRequest.struct_class = Types::GetSnapshotBlockPublicAccessStateRequest

    GetSnapshotBlockPublicAccessStateResult.add_member(:state, Shapes::ShapeRef.new(shape: SnapshotBlockPublicAccessState, location_name: "state"))
    GetSnapshotBlockPublicAccessStateResult.add_member(:managed_by, Shapes::ShapeRef.new(shape: ManagedBy, location_name: "managedBy"))
    GetSnapshotBlockPublicAccessStateResult.struct_class = Types::GetSnapshotBlockPublicAccessStateResult

    GetSpotPlacementScoresRequest.add_member(:instance_types, Shapes::ShapeRef.new(shape: InstanceTypes, location_name: "InstanceType"))
    GetSpotPlacementScoresRequest.add_member(:target_capacity, Shapes::ShapeRef.new(shape: SpotPlacementScoresTargetCapacity, required: true, location_name: "TargetCapacity"))
    GetSpotPlacementScoresRequest.add_member(:target_capacity_unit_type, Shapes::ShapeRef.new(shape: TargetCapacityUnitType, location_name: "TargetCapacityUnitType"))
    GetSpotPlacementScoresRequest.add_member(:single_availability_zone, Shapes::ShapeRef.new(shape: Boolean, location_name: "SingleAvailabilityZone"))
    GetSpotPlacementScoresRequest.add_member(:region_names, Shapes::ShapeRef.new(shape: RegionNames, location_name: "RegionName"))
    GetSpotPlacementScoresRequest.add_member(:instance_requirements_with_metadata, Shapes::ShapeRef.new(shape: InstanceRequirementsWithMetadataRequest, location_name: "InstanceRequirementsWithMetadata"))
    GetSpotPlacementScoresRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    GetSpotPlacementScoresRequest.add_member(:max_results, Shapes::ShapeRef.new(shape: SpotPlacementScoresMaxResults, location_name: "MaxResults"))
    GetSpotPlacementScoresRequest.add_member(:next_token, Shapes::ShapeRef.new(shape: String, location_name: "NextToken"))
    GetSpotPlacementScoresRequest.struct_class = Types::GetSpotPlacementScoresRequest

    GetSpotPlacementScoresResult.add_member(:spot_placement_scores, Shapes::ShapeRef.new(shape: SpotPlacementScores, location_name: "spotPlacementScoreSet"))
    GetSpotPlacementScoresResult.add_member(:next_token, Shapes::ShapeRef.new(shape: String, location_name: "nextToken"))
    GetSpotPlacementScoresResult.struct_class = Types::GetSpotPlacementScoresResult

    GetSubnetCidrReservationsRequest.add_member(:filters, Shapes::ShapeRef.new(shape: FilterList, location_name: "Filter"))
    GetSubnetCidrReservationsRequest.add_member(:subnet_id, Shapes::ShapeRef.new(shape: SubnetId, required: true, location_name: "SubnetId"))
    GetSubnetCidrReservationsRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    GetSubnetCidrReservationsRequest.add_member(:next_token, Shapes::ShapeRef.new(shape: String, location_name: "NextToken"))
    GetSubnetCidrReservationsRequest.add_member(:max_results, Shapes::ShapeRef.new(shape: GetSubnetCidrReservationsMaxResults, location_name: "MaxResults"))
    GetSubnetCidrReservationsRequest.struct_class = Types::GetSubnetCidrReservationsRequest

    GetSubnetCidrReservationsResult.add_member(:subnet_ipv_4_cidr_reservations, Shapes::ShapeRef.new(shape: SubnetCidrReservationList, location_name: "subnetIpv4CidrReservationSet"))
    GetSubnetCidrReservationsResult.add_member(:subnet_ipv_6_cidr_reservations, Shapes::ShapeRef.new(shape: SubnetCidrReservationList, location_name: "subnetIpv6CidrReservationSet"))
    GetSubnetCidrReservationsResult.add_member(:next_token, Shapes::ShapeRef.new(shape: String, location_name: "nextToken"))
    GetSubnetCidrReservationsResult.struct_class = Types::GetSubnetCidrReservationsResult

    GetTransitGatewayAttachmentPropagationsRequest.add_member(:transit_gateway_attachment_id, Shapes::ShapeRef.new(shape: TransitGatewayAttachmentId, required: true, location_name: "TransitGatewayAttachmentId"))
    GetTransitGatewayAttachmentPropagationsRequest.add_member(:filters, Shapes::ShapeRef.new(shape: FilterList, location_name: "Filter"))
    GetTransitGatewayAttachmentPropagationsRequest.add_member(:max_results, Shapes::ShapeRef.new(shape: TransitGatewayMaxResults, location_name: "MaxResults"))
    GetTransitGatewayAttachmentPropagationsRequest.add_member(:next_token, Shapes::ShapeRef.new(shape: String, location_name: "NextToken"))
    GetTransitGatewayAttachmentPropagationsRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    GetTransitGatewayAttachmentPropagationsRequest.struct_class = Types::GetTransitGatewayAttachmentPropagationsRequest

    GetTransitGatewayAttachmentPropagationsResult.add_member(:transit_gateway_attachment_propagations, Shapes::ShapeRef.new(shape: TransitGatewayAttachmentPropagationList, location_name: "transitGatewayAttachmentPropagations"))
    GetTransitGatewayAttachmentPropagationsResult.add_member(:next_token, Shapes::ShapeRef.new(shape: String, location_name: "nextToken"))
    GetTransitGatewayAttachmentPropagationsResult.struct_class = Types::GetTransitGatewayAttachmentPropagationsResult

    GetTransitGatewayMulticastDomainAssociationsRequest.add_member(:transit_gateway_multicast_domain_id, Shapes::ShapeRef.new(shape: TransitGatewayMulticastDomainId, required: true, location_name: "TransitGatewayMulticastDomainId"))
    GetTransitGatewayMulticastDomainAssociationsRequest.add_member(:filters, Shapes::ShapeRef.new(shape: FilterList, location_name: "Filter"))
    GetTransitGatewayMulticastDomainAssociationsRequest.add_member(:max_results, Shapes::ShapeRef.new(shape: TransitGatewayMaxResults, location_name: "MaxResults"))
    GetTransitGatewayMulticastDomainAssociationsRequest.add_member(:next_token, Shapes::ShapeRef.new(shape: String, location_name: "NextToken"))
    GetTransitGatewayMulticastDomainAssociationsRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    GetTransitGatewayMulticastDomainAssociationsRequest.struct_class = Types::GetTransitGatewayMulticastDomainAssociationsRequest

    GetTransitGatewayMulticastDomainAssociationsResult.add_member(:multicast_domain_associations, Shapes::ShapeRef.new(shape: TransitGatewayMulticastDomainAssociationList, location_name: "multicastDomainAssociations"))
    GetTransitGatewayMulticastDomainAssociationsResult.add_member(:next_token, Shapes::ShapeRef.new(shape: String, location_name: "nextToken"))
    GetTransitGatewayMulticastDomainAssociationsResult.struct_class = Types::GetTransitGatewayMulticastDomainAssociationsResult

    GetTransitGatewayPolicyTableAssociationsRequest.add_member(:transit_gateway_policy_table_id, Shapes::ShapeRef.new(shape: TransitGatewayPolicyTableId, required: true, location_name: "TransitGatewayPolicyTableId"))
    GetTransitGatewayPolicyTableAssociationsRequest.add_member(:filters, Shapes::ShapeRef.new(shape: FilterList, location_name: "Filter"))
    GetTransitGatewayPolicyTableAssociationsRequest.add_member(:max_results, Shapes::ShapeRef.new(shape: TransitGatewayMaxResults, location_name: "MaxResults"))
    GetTransitGatewayPolicyTableAssociationsRequest.add_member(:next_token, Shapes::ShapeRef.new(shape: String, location_name: "NextToken"))
    GetTransitGatewayPolicyTableAssociationsRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    GetTransitGatewayPolicyTableAssociationsRequest.struct_class = Types::GetTransitGatewayPolicyTableAssociationsRequest

    GetTransitGatewayPolicyTableAssociationsResult.add_member(:associations, Shapes::ShapeRef.new(shape: TransitGatewayPolicyTableAssociationList, location_name: "associations"))
    GetTransitGatewayPolicyTableAssociationsResult.add_member(:next_token, Shapes::ShapeRef.new(shape: String, location_name: "nextToken"))
    GetTransitGatewayPolicyTableAssociationsResult.struct_class = Types::GetTransitGatewayPolicyTableAssociationsResult

    GetTransitGatewayPolicyTableEntriesRequest.add_member(:transit_gateway_policy_table_id, Shapes::ShapeRef.new(shape: TransitGatewayPolicyTableId, required: true, location_name: "TransitGatewayPolicyTableId"))
    GetTransitGatewayPolicyTableEntriesRequest.add_member(:filters, Shapes::ShapeRef.new(shape: FilterList, location_name: "Filter"))
    GetTransitGatewayPolicyTableEntriesRequest.add_member(:max_results, Shapes::ShapeRef.new(shape: TransitGatewayMaxResults, location_name: "MaxResults"))
    GetTransitGatewayPolicyTableEntriesRequest.add_member(:next_token, Shapes::ShapeRef.new(shape: String, location_name: "NextToken"))
    GetTransitGatewayPolicyTableEntriesRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    GetTransitGatewayPolicyTableEntriesRequest.struct_class = Types::GetTransitGatewayPolicyTableEntriesRequest

    GetTransitGatewayPolicyTableEntriesResult.add_member(:transit_gateway_policy_table_entries, Shapes::ShapeRef.new(shape: TransitGatewayPolicyTableEntryList, location_name: "transitGatewayPolicyTableEntries"))
    GetTransitGatewayPolicyTableEntriesResult.struct_class = Types::GetTransitGatewayPolicyTableEntriesResult

    GetTransitGatewayPrefixListReferencesRequest.add_member(:transit_gateway_route_table_id, Shapes::ShapeRef.new(shape: TransitGatewayRouteTableId, required: true, location_name: "TransitGatewayRouteTableId"))
    GetTransitGatewayPrefixListReferencesRequest.add_member(:filters, Shapes::ShapeRef.new(shape: FilterList, location_name: "Filter"))
    GetTransitGatewayPrefixListReferencesRequest.add_member(:max_results, Shapes::ShapeRef.new(shape: TransitGatewayMaxResults, location_name: "MaxResults"))
    GetTransitGatewayPrefixListReferencesRequest.add_member(:next_token, Shapes::ShapeRef.new(shape: String, location_name: "NextToken"))
    GetTransitGatewayPrefixListReferencesRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    GetTransitGatewayPrefixListReferencesRequest.struct_class = Types::GetTransitGatewayPrefixListReferencesRequest

    GetTransitGatewayPrefixListReferencesResult.add_member(:transit_gateway_prefix_list_references, Shapes::ShapeRef.new(shape: TransitGatewayPrefixListReferenceSet, location_name: "transitGatewayPrefixListReferenceSet"))
    GetTransitGatewayPrefixListReferencesResult.add_member(:next_token, Shapes::ShapeRef.new(shape: String, location_name: "nextToken"))
    GetTransitGatewayPrefixListReferencesResult.struct_class = Types::GetTransitGatewayPrefixListReferencesResult

    GetTransitGatewayRouteTableAssociationsRequest.add_member(:transit_gateway_route_table_id, Shapes::ShapeRef.new(shape: TransitGatewayRouteTableId, required: true, location_name: "TransitGatewayRouteTableId"))
    GetTransitGatewayRouteTableAssociationsRequest.add_member(:filters, Shapes::ShapeRef.new(shape: FilterList, location_name: "Filter"))
    GetTransitGatewayRouteTableAssociationsRequest.add_member(:max_results, Shapes::ShapeRef.new(shape: TransitGatewayMaxResults, location_name: "MaxResults"))
    GetTransitGatewayRouteTableAssociationsRequest.add_member(:next_token, Shapes::ShapeRef.new(shape: String, location_name: "NextToken"))
    GetTransitGatewayRouteTableAssociationsRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    GetTransitGatewayRouteTableAssociationsRequest.struct_class = Types::GetTransitGatewayRouteTableAssociationsRequest

    GetTransitGatewayRouteTableAssociationsResult.add_member(:associations, Shapes::ShapeRef.new(shape: TransitGatewayRouteTableAssociationList, location_name: "associations"))
    GetTransitGatewayRouteTableAssociationsResult.add_member(:next_token, Shapes::ShapeRef.new(shape: String, location_name: "nextToken"))
    GetTransitGatewayRouteTableAssociationsResult.struct_class = Types::GetTransitGatewayRouteTableAssociationsResult

    GetTransitGatewayRouteTablePropagationsRequest.add_member(:transit_gateway_route_table_id, Shapes::ShapeRef.new(shape: TransitGatewayRouteTableId, required: true, location_name: "TransitGatewayRouteTableId"))
    GetTransitGatewayRouteTablePropagationsRequest.add_member(:filters, Shapes::ShapeRef.new(shape: FilterList, location_name: "Filter"))
    GetTransitGatewayRouteTablePropagationsRequest.add_member(:max_results, Shapes::ShapeRef.new(shape: TransitGatewayMaxResults, location_name: "MaxResults"))
    GetTransitGatewayRouteTablePropagationsRequest.add_member(:next_token, Shapes::ShapeRef.new(shape: String, location_name: "NextToken"))
    GetTransitGatewayRouteTablePropagationsRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    GetTransitGatewayRouteTablePropagationsRequest.struct_class = Types::GetTransitGatewayRouteTablePropagationsRequest

    GetTransitGatewayRouteTablePropagationsResult.add_member(:transit_gateway_route_table_propagations, Shapes::ShapeRef.new(shape: TransitGatewayRouteTablePropagationList, location_name: "transitGatewayRouteTablePropagations"))
    GetTransitGatewayRouteTablePropagationsResult.add_member(:next_token, Shapes::ShapeRef.new(shape: String, location_name: "nextToken"))
    GetTransitGatewayRouteTablePropagationsResult.struct_class = Types::GetTransitGatewayRouteTablePropagationsResult

    GetVerifiedAccessEndpointPolicyRequest.add_member(:verified_access_endpoint_id, Shapes::ShapeRef.new(shape: VerifiedAccessEndpointId, required: true, location_name: "VerifiedAccessEndpointId"))
    GetVerifiedAccessEndpointPolicyRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    GetVerifiedAccessEndpointPolicyRequest.struct_class = Types::GetVerifiedAccessEndpointPolicyRequest

    GetVerifiedAccessEndpointPolicyResult.add_member(:policy_enabled, Shapes::ShapeRef.new(shape: Boolean, location_name: "policyEnabled"))
    GetVerifiedAccessEndpointPolicyResult.add_member(:policy_document, Shapes::ShapeRef.new(shape: String, location_name: "policyDocument"))
    GetVerifiedAccessEndpointPolicyResult.struct_class = Types::GetVerifiedAccessEndpointPolicyResult

    GetVerifiedAccessEndpointTargetsRequest.add_member(:verified_access_endpoint_id, Shapes::ShapeRef.new(shape: VerifiedAccessEndpointId, required: true, location_name: "VerifiedAccessEndpointId"))
    GetVerifiedAccessEndpointTargetsRequest.add_member(:max_results, Shapes::ShapeRef.new(shape: GetVerifiedAccessEndpointTargetsMaxResults, location_name: "MaxResults"))
    GetVerifiedAccessEndpointTargetsRequest.add_member(:next_token, Shapes::ShapeRef.new(shape: NextToken, location_name: "NextToken"))
    GetVerifiedAccessEndpointTargetsRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    GetVerifiedAccessEndpointTargetsRequest.struct_class = Types::GetVerifiedAccessEndpointTargetsRequest

    GetVerifiedAccessEndpointTargetsResult.add_member(:verified_access_endpoint_targets, Shapes::ShapeRef.new(shape: VerifiedAccessEndpointTargetList, location_name: "verifiedAccessEndpointTargetSet"))
    GetVerifiedAccessEndpointTargetsResult.add_member(:next_token, Shapes::ShapeRef.new(shape: NextToken, location_name: "nextToken"))
    GetVerifiedAccessEndpointTargetsResult.struct_class = Types::GetVerifiedAccessEndpointTargetsResult

    GetVerifiedAccessGroupPolicyRequest.add_member(:verified_access_group_id, Shapes::ShapeRef.new(shape: VerifiedAccessGroupId, required: true, location_name: "VerifiedAccessGroupId"))
    GetVerifiedAccessGroupPolicyRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    GetVerifiedAccessGroupPolicyRequest.struct_class = Types::GetVerifiedAccessGroupPolicyRequest

    GetVerifiedAccessGroupPolicyResult.add_member(:policy_enabled, Shapes::ShapeRef.new(shape: Boolean, location_name: "policyEnabled"))
    GetVerifiedAccessGroupPolicyResult.add_member(:policy_document, Shapes::ShapeRef.new(shape: String, location_name: "policyDocument"))
    GetVerifiedAccessGroupPolicyResult.struct_class = Types::GetVerifiedAccessGroupPolicyResult

    GetVpnConnectionDeviceSampleConfigurationRequest.add_member(:vpn_connection_id, Shapes::ShapeRef.new(shape: VpnConnectionId, required: true, location_name: "VpnConnectionId"))
    GetVpnConnectionDeviceSampleConfigurationRequest.add_member(:vpn_connection_device_type_id, Shapes::ShapeRef.new(shape: VpnConnectionDeviceTypeId, required: true, location_name: "VpnConnectionDeviceTypeId"))
    GetVpnConnectionDeviceSampleConfigurationRequest.add_member(:internet_key_exchange_version, Shapes::ShapeRef.new(shape: String, location_name: "InternetKeyExchangeVersion"))
    GetVpnConnectionDeviceSampleConfigurationRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    GetVpnConnectionDeviceSampleConfigurationRequest.struct_class = Types::GetVpnConnectionDeviceSampleConfigurationRequest

    GetVpnConnectionDeviceSampleConfigurationResult.add_member(:vpn_connection_device_sample_configuration, Shapes::ShapeRef.new(shape: VpnConnectionDeviceSampleConfiguration, location_name: "vpnConnectionDeviceSampleConfiguration"))
    GetVpnConnectionDeviceSampleConfigurationResult.struct_class = Types::GetVpnConnectionDeviceSampleConfigurationResult

    GetVpnConnectionDeviceTypesRequest.add_member(:max_results, Shapes::ShapeRef.new(shape: GVCDMaxResults, location_name: "MaxResults"))
    GetVpnConnectionDeviceTypesRequest.add_member(:next_token, Shapes::ShapeRef.new(shape: NextToken, location_name: "NextToken"))
    GetVpnConnectionDeviceTypesRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    GetVpnConnectionDeviceTypesRequest.struct_class = Types::GetVpnConnectionDeviceTypesRequest

    GetVpnConnectionDeviceTypesResult.add_member(:vpn_connection_device_types, Shapes::ShapeRef.new(shape: VpnConnectionDeviceTypeList, location_name: "vpnConnectionDeviceTypeSet"))
    GetVpnConnectionDeviceTypesResult.add_member(:next_token, Shapes::ShapeRef.new(shape: NextToken, location_name: "nextToken"))
    GetVpnConnectionDeviceTypesResult.struct_class = Types::GetVpnConnectionDeviceTypesResult

    GetVpnTunnelReplacementStatusRequest.add_member(:vpn_connection_id, Shapes::ShapeRef.new(shape: VpnConnectionId, required: true, location_name: "VpnConnectionId"))
    GetVpnTunnelReplacementStatusRequest.add_member(:vpn_tunnel_outside_ip_address, Shapes::ShapeRef.new(shape: String, required: true, location_name: "VpnTunnelOutsideIpAddress"))
    GetVpnTunnelReplacementStatusRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    GetVpnTunnelReplacementStatusRequest.struct_class = Types::GetVpnTunnelReplacementStatusRequest

    GetVpnTunnelReplacementStatusResult.add_member(:vpn_connection_id, Shapes::ShapeRef.new(shape: VpnConnectionId, location_name: "vpnConnectionId"))
    GetVpnTunnelReplacementStatusResult.add_member(:transit_gateway_id, Shapes::ShapeRef.new(shape: TransitGatewayId, location_name: "transitGatewayId"))
    GetVpnTunnelReplacementStatusResult.add_member(:customer_gateway_id, Shapes::ShapeRef.new(shape: CustomerGatewayId, location_name: "customerGatewayId"))
    GetVpnTunnelReplacementStatusResult.add_member(:vpn_gateway_id, Shapes::ShapeRef.new(shape: VpnGatewayId, location_name: "vpnGatewayId"))
    GetVpnTunnelReplacementStatusResult.add_member(:vpn_tunnel_outside_ip_address, Shapes::ShapeRef.new(shape: String, location_name: "vpnTunnelOutsideIpAddress"))
    GetVpnTunnelReplacementStatusResult.add_member(:maintenance_details, Shapes::ShapeRef.new(shape: MaintenanceDetails, location_name: "maintenanceDetails"))
    GetVpnTunnelReplacementStatusResult.struct_class = Types::GetVpnTunnelReplacementStatusResult

    GpuDeviceInfo.add_member(:name, Shapes::ShapeRef.new(shape: GpuDeviceName, location_name: "name"))
    GpuDeviceInfo.add_member(:manufacturer, Shapes::ShapeRef.new(shape: GpuDeviceManufacturerName, location_name: "manufacturer"))
    GpuDeviceInfo.add_member(:count, Shapes::ShapeRef.new(shape: GpuDeviceCount, location_name: "count"))
    GpuDeviceInfo.add_member(:memory_info, Shapes::ShapeRef.new(shape: GpuDeviceMemoryInfo, location_name: "memoryInfo"))
    GpuDeviceInfo.struct_class = Types::GpuDeviceInfo

    GpuDeviceInfoList.member = Shapes::ShapeRef.new(shape: GpuDeviceInfo, location_name: "item")

    GpuDeviceMemoryInfo.add_member(:size_in_mi_b, Shapes::ShapeRef.new(shape: GpuDeviceMemorySize, location_name: "sizeInMiB"))
    GpuDeviceMemoryInfo.struct_class = Types::GpuDeviceMemoryInfo

    GpuInfo.add_member(:gpus, Shapes::ShapeRef.new(shape: GpuDeviceInfoList, location_name: "gpus"))
    GpuInfo.add_member(:total_gpu_memory_in_mi_b, Shapes::ShapeRef.new(shape: totalGpuMemory, location_name: "totalGpuMemoryInMiB"))
    GpuInfo.struct_class = Types::GpuInfo

    GroupIdStringList.member = Shapes::ShapeRef.new(shape: SecurityGroupId, location_name: "groupId")

    GroupIdentifier.add_member(:group_id, Shapes::ShapeRef.new(shape: String, location_name: "groupId"))
    GroupIdentifier.add_member(:group_name, Shapes::ShapeRef.new(shape: String, location_name: "groupName"))
    GroupIdentifier.struct_class = Types::GroupIdentifier

    GroupIdentifierList.member = Shapes::ShapeRef.new(shape: GroupIdentifier, location_name: "item")

    GroupIdentifierSet.member = Shapes::ShapeRef.new(shape: SecurityGroupIdentifier, location_name: "item")

    GroupIds.member = Shapes::ShapeRef.new(shape: SecurityGroupId, location_name: "item")

    GroupNameStringList.member = Shapes::ShapeRef.new(shape: SecurityGroupName, location_name: "GroupName")

    HibernationOptions.add_member(:configured, Shapes::ShapeRef.new(shape: Boolean, location_name: "configured"))
    HibernationOptions.struct_class = Types::HibernationOptions

    HibernationOptionsRequest.add_member(:configured, Shapes::ShapeRef.new(shape: Boolean, location_name: "Configured"))
    HibernationOptionsRequest.struct_class = Types::HibernationOptionsRequest

    HistoryRecord.add_member(:event_information, Shapes::ShapeRef.new(shape: EventInformation, location_name: "eventInformation"))
    HistoryRecord.add_member(:event_type, Shapes::ShapeRef.new(shape: EventType, location_name: "eventType"))
    HistoryRecord.add_member(:timestamp, Shapes::ShapeRef.new(shape: DateTime, location_name: "timestamp"))
    HistoryRecord.struct_class = Types::HistoryRecord

    HistoryRecordEntry.add_member(:event_information, Shapes::ShapeRef.new(shape: EventInformation, location_name: "eventInformation"))
    HistoryRecordEntry.add_member(:event_type, Shapes::ShapeRef.new(shape: FleetEventType, location_name: "eventType"))
    HistoryRecordEntry.add_member(:timestamp, Shapes::ShapeRef.new(shape: DateTime, location_name: "timestamp"))
    HistoryRecordEntry.struct_class = Types::HistoryRecordEntry

    HistoryRecordSet.member = Shapes::ShapeRef.new(shape: HistoryRecordEntry, location_name: "item")

    HistoryRecords.member = Shapes::ShapeRef.new(shape: HistoryRecord, location_name: "item")

    Host.add_member(:auto_placement, Shapes::ShapeRef.new(shape: AutoPlacement, location_name: "autoPlacement"))
    Host.add_member(:availability_zone, Shapes::ShapeRef.new(shape: String, location_name: "availabilityZone"))
    Host.add_member(:available_capacity, Shapes::ShapeRef.new(shape: AvailableCapacity, location_name: "availableCapacity"))
    Host.add_member(:client_token, Shapes::ShapeRef.new(shape: String, location_name: "clientToken"))
    Host.add_member(:host_id, Shapes::ShapeRef.new(shape: String, location_name: "hostId"))
    Host.add_member(:host_properties, Shapes::ShapeRef.new(shape: HostProperties, location_name: "hostProperties"))
    Host.add_member(:host_reservation_id, Shapes::ShapeRef.new(shape: String, location_name: "hostReservationId"))
    Host.add_member(:instances, Shapes::ShapeRef.new(shape: HostInstanceList, location_name: "instances"))
    Host.add_member(:state, Shapes::ShapeRef.new(shape: AllocationState, location_name: "state"))
    Host.add_member(:allocation_time, Shapes::ShapeRef.new(shape: DateTime, location_name: "allocationTime"))
    Host.add_member(:release_time, Shapes::ShapeRef.new(shape: DateTime, location_name: "releaseTime"))
    Host.add_member(:tags, Shapes::ShapeRef.new(shape: TagList, location_name: "tagSet"))
    Host.add_member(:host_recovery, Shapes::ShapeRef.new(shape: HostRecovery, location_name: "hostRecovery"))
    Host.add_member(:allows_multiple_instance_types, Shapes::ShapeRef.new(shape: AllowsMultipleInstanceTypes, location_name: "allowsMultipleInstanceTypes"))
    Host.add_member(:owner_id, Shapes::ShapeRef.new(shape: String, location_name: "ownerId"))
    Host.add_member(:availability_zone_id, Shapes::ShapeRef.new(shape: String, location_name: "availabilityZoneId"))
    Host.add_member(:member_of_service_linked_resource_group, Shapes::ShapeRef.new(shape: Boolean, location_name: "memberOfServiceLinkedResourceGroup"))
    Host.add_member(:outpost_arn, Shapes::ShapeRef.new(shape: String, location_name: "outpostArn"))
    Host.add_member(:host_maintenance, Shapes::ShapeRef.new(shape: HostMaintenance, location_name: "hostMaintenance"))
    Host.add_member(:asset_id, Shapes::ShapeRef.new(shape: AssetId, location_name: "assetId"))
    Host.struct_class = Types::Host

    HostInstance.add_member(:instance_id, Shapes::ShapeRef.new(shape: String, location_name: "instanceId"))
    HostInstance.add_member(:instance_type, Shapes::ShapeRef.new(shape: String, location_name: "instanceType"))
    HostInstance.add_member(:owner_id, Shapes::ShapeRef.new(shape: String, location_name: "ownerId"))
    HostInstance.struct_class = Types::HostInstance

    HostInstanceList.member = Shapes::ShapeRef.new(shape: HostInstance, location_name: "item")

    HostList.member = Shapes::ShapeRef.new(shape: Host, location_name: "item")

    HostOffering.add_member(:currency_code, Shapes::ShapeRef.new(shape: CurrencyCodeValues, location_name: "currencyCode"))
    HostOffering.add_member(:duration, Shapes::ShapeRef.new(shape: Integer, location_name: "duration"))
    HostOffering.add_member(:hourly_price, Shapes::ShapeRef.new(shape: String, location_name: "hourlyPrice"))
    HostOffering.add_member(:instance_family, Shapes::ShapeRef.new(shape: String, location_name: "instanceFamily"))
    HostOffering.add_member(:offering_id, Shapes::ShapeRef.new(shape: OfferingId, location_name: "offeringId"))
    HostOffering.add_member(:payment_option, Shapes::ShapeRef.new(shape: PaymentOption, location_name: "paymentOption"))
    HostOffering.add_member(:upfront_price, Shapes::ShapeRef.new(shape: String, location_name: "upfrontPrice"))
    HostOffering.struct_class = Types::HostOffering

    HostOfferingSet.member = Shapes::ShapeRef.new(shape: HostOffering, location_name: "item")

    HostProperties.add_member(:cores, Shapes::ShapeRef.new(shape: Integer, location_name: "cores"))
    HostProperties.add_member(:instance_type, Shapes::ShapeRef.new(shape: String, location_name: "instanceType"))
    HostProperties.add_member(:instance_family, Shapes::ShapeRef.new(shape: String, location_name: "instanceFamily"))
    HostProperties.add_member(:sockets, Shapes::ShapeRef.new(shape: Integer, location_name: "sockets"))
    HostProperties.add_member(:total_v_cpus, Shapes::ShapeRef.new(shape: Integer, location_name: "totalVCpus"))
    HostProperties.struct_class = Types::HostProperties

    HostReservation.add_member(:count, Shapes::ShapeRef.new(shape: Integer, location_name: "count"))
    HostReservation.add_member(:currency_code, Shapes::ShapeRef.new(shape: CurrencyCodeValues, location_name: "currencyCode"))
    HostReservation.add_member(:duration, Shapes::ShapeRef.new(shape: Integer, location_name: "duration"))
    HostReservation.add_member(:end, Shapes::ShapeRef.new(shape: DateTime, location_name: "end"))
    HostReservation.add_member(:host_id_set, Shapes::ShapeRef.new(shape: ResponseHostIdSet, location_name: "hostIdSet"))
    HostReservation.add_member(:host_reservation_id, Shapes::ShapeRef.new(shape: HostReservationId, location_name: "hostReservationId"))
    HostReservation.add_member(:hourly_price, Shapes::ShapeRef.new(shape: String, location_name: "hourlyPrice"))
    HostReservation.add_member(:instance_family, Shapes::ShapeRef.new(shape: String, location_name: "instanceFamily"))
    HostReservation.add_member(:offering_id, Shapes::ShapeRef.new(shape: OfferingId, location_name: "offeringId"))
    HostReservation.add_member(:payment_option, Shapes::ShapeRef.new(shape: PaymentOption, location_name: "paymentOption"))
    HostReservation.add_member(:start, Shapes::ShapeRef.new(shape: DateTime, location_name: "start"))
    HostReservation.add_member(:state, Shapes::ShapeRef.new(shape: ReservationState, location_name: "state"))
    HostReservation.add_member(:upfront_price, Shapes::ShapeRef.new(shape: String, location_name: "upfrontPrice"))
    HostReservation.add_member(:tags, Shapes::ShapeRef.new(shape: TagList, location_name: "tagSet"))
    HostReservation.struct_class = Types::HostReservation

    HostReservationIdSet.member = Shapes::ShapeRef.new(shape: HostReservationId, location_name: "item")

    HostReservationSet.member = Shapes::ShapeRef.new(shape: HostReservation, location_name: "item")

    IKEVersionsList.member = Shapes::ShapeRef.new(shape: IKEVersionsListValue, location_name: "item")

    IKEVersionsListValue.add_member(:value, Shapes::ShapeRef.new(shape: String, location_name: "value"))
    IKEVersionsListValue.struct_class = Types::IKEVersionsListValue

    IKEVersionsRequestList.member = Shapes::ShapeRef.new(shape: IKEVersionsRequestListValue, location_name: "item")

    IKEVersionsRequestListValue.add_member(:value, Shapes::ShapeRef.new(shape: String, location_name: "Value"))
    IKEVersionsRequestListValue.struct_class = Types::IKEVersionsRequestListValue

    IamInstanceProfile.add_member(:arn, Shapes::ShapeRef.new(shape: String, location_name: "arn"))
    IamInstanceProfile.add_member(:id, Shapes::ShapeRef.new(shape: String, location_name: "id"))
    IamInstanceProfile.struct_class = Types::IamInstanceProfile

    IamInstanceProfileAssociation.add_member(:association_id, Shapes::ShapeRef.new(shape: String, location_name: "associationId"))
    IamInstanceProfileAssociation.add_member(:instance_id, Shapes::ShapeRef.new(shape: String, location_name: "instanceId"))
    IamInstanceProfileAssociation.add_member(:iam_instance_profile, Shapes::ShapeRef.new(shape: IamInstanceProfile, location_name: "iamInstanceProfile"))
    IamInstanceProfileAssociation.add_member(:state, Shapes::ShapeRef.new(shape: IamInstanceProfileAssociationState, location_name: "state"))
    IamInstanceProfileAssociation.add_member(:timestamp, Shapes::ShapeRef.new(shape: DateTime, location_name: "timestamp"))
    IamInstanceProfileAssociation.struct_class = Types::IamInstanceProfileAssociation

    IamInstanceProfileAssociationSet.member = Shapes::ShapeRef.new(shape: IamInstanceProfileAssociation, location_name: "item")

    IamInstanceProfileSpecification.add_member(:arn, Shapes::ShapeRef.new(shape: String, location_name: "arn"))
    IamInstanceProfileSpecification.add_member(:name, Shapes::ShapeRef.new(shape: String, location_name: "name"))
    IamInstanceProfileSpecification.struct_class = Types::IamInstanceProfileSpecification

    IcmpTypeCode.add_member(:code, Shapes::ShapeRef.new(shape: Integer, location_name: "code"))
    IcmpTypeCode.add_member(:type, Shapes::ShapeRef.new(shape: Integer, location_name: "type"))
    IcmpTypeCode.struct_class = Types::IcmpTypeCode

    IdFormat.add_member(:deadline, Shapes::ShapeRef.new(shape: DateTime, location_name: "deadline"))
    IdFormat.add_member(:resource, Shapes::ShapeRef.new(shape: String, location_name: "resource"))
    IdFormat.add_member(:use_long_ids, Shapes::ShapeRef.new(shape: Boolean, location_name: "useLongIds"))
    IdFormat.struct_class = Types::IdFormat

    IdFormatList.member = Shapes::ShapeRef.new(shape: IdFormat, location_name: "item")

    Image.add_member(:platform_details, Shapes::ShapeRef.new(shape: String, location_name: "platformDetails"))
    Image.add_member(:usage_operation, Shapes::ShapeRef.new(shape: String, location_name: "usageOperation"))
    Image.add_member(:block_device_mappings, Shapes::ShapeRef.new(shape: BlockDeviceMappingList, location_name: "blockDeviceMapping"))
    Image.add_member(:description, Shapes::ShapeRef.new(shape: String, location_name: "description"))
    Image.add_member(:ena_support, Shapes::ShapeRef.new(shape: Boolean, location_name: "enaSupport"))
    Image.add_member(:hypervisor, Shapes::ShapeRef.new(shape: HypervisorType, location_name: "hypervisor"))
    Image.add_member(:image_owner_alias, Shapes::ShapeRef.new(shape: String, location_name: "imageOwnerAlias"))
    Image.add_member(:name, Shapes::ShapeRef.new(shape: String, location_name: "name"))
    Image.add_member(:root_device_name, Shapes::ShapeRef.new(shape: String, location_name: "rootDeviceName"))
    Image.add_member(:root_device_type, Shapes::ShapeRef.new(shape: DeviceType, location_name: "rootDeviceType"))
    Image.add_member(:sriov_net_support, Shapes::ShapeRef.new(shape: String, location_name: "sriovNetSupport"))
    Image.add_member(:state_reason, Shapes::ShapeRef.new(shape: StateReason, location_name: "stateReason"))
    Image.add_member(:tags, Shapes::ShapeRef.new(shape: TagList, location_name: "tagSet"))
    Image.add_member(:virtualization_type, Shapes::ShapeRef.new(shape: VirtualizationType, location_name: "virtualizationType"))
    Image.add_member(:boot_mode, Shapes::ShapeRef.new(shape: BootModeValues, location_name: "bootMode"))
    Image.add_member(:tpm_support, Shapes::ShapeRef.new(shape: TpmSupportValues, location_name: "tpmSupport"))
    Image.add_member(:deprecation_time, Shapes::ShapeRef.new(shape: String, location_name: "deprecationTime"))
    Image.add_member(:imds_support, Shapes::ShapeRef.new(shape: ImdsSupportValues, location_name: "imdsSupport"))
    Image.add_member(:source_instance_id, Shapes::ShapeRef.new(shape: String, location_name: "sourceInstanceId"))
    Image.add_member(:deregistration_protection, Shapes::ShapeRef.new(shape: String, location_name: "deregistrationProtection"))
    Image.add_member(:last_launched_time, Shapes::ShapeRef.new(shape: String, location_name: "lastLaunchedTime"))
    Image.add_member(:image_allowed, Shapes::ShapeRef.new(shape: Boolean, location_name: "imageAllowed"))
    Image.add_member(:source_image_id, Shapes::ShapeRef.new(shape: String, location_name: "sourceImageId"))
    Image.add_member(:source_image_region, Shapes::ShapeRef.new(shape: String, location_name: "sourceImageRegion"))
    Image.add_member(:image_id, Shapes::ShapeRef.new(shape: String, location_name: "imageId"))
    Image.add_member(:image_location, Shapes::ShapeRef.new(shape: String, location_name: "imageLocation"))
    Image.add_member(:state, Shapes::ShapeRef.new(shape: ImageState, location_name: "imageState"))
    Image.add_member(:owner_id, Shapes::ShapeRef.new(shape: String, location_name: "imageOwnerId"))
    Image.add_member(:creation_date, Shapes::ShapeRef.new(shape: String, location_name: "creationDate"))
    Image.add_member(:public, Shapes::ShapeRef.new(shape: Boolean, location_name: "isPublic"))
    Image.add_member(:product_codes, Shapes::ShapeRef.new(shape: ProductCodeList, location_name: "productCodes"))
    Image.add_member(:architecture, Shapes::ShapeRef.new(shape: ArchitectureValues, location_name: "architecture"))
    Image.add_member(:image_type, Shapes::ShapeRef.new(shape: ImageTypeValues, location_name: "imageType"))
    Image.add_member(:kernel_id, Shapes::ShapeRef.new(shape: String, location_name: "kernelId"))
    Image.add_member(:ramdisk_id, Shapes::ShapeRef.new(shape: String, location_name: "ramdiskId"))
    Image.add_member(:platform, Shapes::ShapeRef.new(shape: PlatformValues, location_name: "platform"))
    Image.struct_class = Types::Image

    ImageAttribute.add_member(:description, Shapes::ShapeRef.new(shape: AttributeValue, location_name: "description"))
    ImageAttribute.add_member(:kernel_id, Shapes::ShapeRef.new(shape: AttributeValue, location_name: "kernel"))
    ImageAttribute.add_member(:ramdisk_id, Shapes::ShapeRef.new(shape: AttributeValue, location_name: "ramdisk"))
    ImageAttribute.add_member(:sriov_net_support, Shapes::ShapeRef.new(shape: AttributeValue, location_name: "sriovNetSupport"))
    ImageAttribute.add_member(:boot_mode, Shapes::ShapeRef.new(shape: AttributeValue, location_name: "bootMode"))
    ImageAttribute.add_member(:tpm_support, Shapes::ShapeRef.new(shape: AttributeValue, location_name: "tpmSupport"))
    ImageAttribute.add_member(:uefi_data, Shapes::ShapeRef.new(shape: AttributeValue, location_name: "uefiData"))
    ImageAttribute.add_member(:last_launched_time, Shapes::ShapeRef.new(shape: AttributeValue, location_name: "lastLaunchedTime"))
    ImageAttribute.add_member(:imds_support, Shapes::ShapeRef.new(shape: AttributeValue, location_name: "imdsSupport"))
    ImageAttribute.add_member(:deregistration_protection, Shapes::ShapeRef.new(shape: AttributeValue, location_name: "deregistrationProtection"))
    ImageAttribute.add_member(:image_id, Shapes::ShapeRef.new(shape: String, location_name: "imageId"))
    ImageAttribute.add_member(:launch_permissions, Shapes::ShapeRef.new(shape: LaunchPermissionList, location_name: "launchPermission"))
    ImageAttribute.add_member(:product_codes, Shapes::ShapeRef.new(shape: ProductCodeList, location_name: "productCodes"))
    ImageAttribute.add_member(:block_device_mappings, Shapes::ShapeRef.new(shape: BlockDeviceMappingList, location_name: "blockDeviceMapping"))
    ImageAttribute.struct_class = Types::ImageAttribute

    ImageCriterion.add_member(:image_providers, Shapes::ShapeRef.new(shape: ImageProviderList, location_name: "imageProviderSet"))
    ImageCriterion.struct_class = Types::ImageCriterion

    ImageCriterionList.member = Shapes::ShapeRef.new(shape: ImageCriterion, location_name: "item")

    ImageCriterionRequest.add_member(:image_providers, Shapes::ShapeRef.new(shape: ImageProviderRequestList, location_name: "ImageProvider"))
    ImageCriterionRequest.struct_class = Types::ImageCriterionRequest

    ImageCriterionRequestList.member = Shapes::ShapeRef.new(shape: ImageCriterionRequest, location_name: "ImageCriterion")

    ImageDiskContainer.add_member(:description, Shapes::ShapeRef.new(shape: String, location_name: "Description"))
    ImageDiskContainer.add_member(:device_name, Shapes::ShapeRef.new(shape: String, location_name: "DeviceName"))
    ImageDiskContainer.add_member(:format, Shapes::ShapeRef.new(shape: String, location_name: "Format"))
    ImageDiskContainer.add_member(:snapshot_id, Shapes::ShapeRef.new(shape: SnapshotId, location_name: "SnapshotId"))
    ImageDiskContainer.add_member(:url, Shapes::ShapeRef.new(shape: SensitiveUrl, location_name: "Url"))
    ImageDiskContainer.add_member(:user_bucket, Shapes::ShapeRef.new(shape: UserBucket, location_name: "UserBucket"))
    ImageDiskContainer.struct_class = Types::ImageDiskContainer

    ImageDiskContainerList.member = Shapes::ShapeRef.new(shape: ImageDiskContainer, location_name: "item")

    ImageIdList.member = Shapes::ShapeRef.new(shape: ImageId, location_name: "item")

    ImageIdStringList.member = Shapes::ShapeRef.new(shape: ImageId, location_name: "ImageId")

    ImageList.member = Shapes::ShapeRef.new(shape: Image, location_name: "item")

    ImageMetadata.add_member(:image_id, Shapes::ShapeRef.new(shape: ImageId, location_name: "imageId"))
    ImageMetadata.add_member(:name, Shapes::ShapeRef.new(shape: String, location_name: "name"))
    ImageMetadata.add_member(:owner_id, Shapes::ShapeRef.new(shape: String, location_name: "imageOwnerId"))
    ImageMetadata.add_member(:state, Shapes::ShapeRef.new(shape: ImageState, location_name: "imageState"))
    ImageMetadata.add_member(:image_owner_alias, Shapes::ShapeRef.new(shape: String, location_name: "imageOwnerAlias"))
    ImageMetadata.add_member(:creation_date, Shapes::ShapeRef.new(shape: String, location_name: "creationDate"))
    ImageMetadata.add_member(:deprecation_time, Shapes::ShapeRef.new(shape: String, location_name: "deprecationTime"))
    ImageMetadata.add_member(:image_allowed, Shapes::ShapeRef.new(shape: Boolean, location_name: "imageAllowed"))
    ImageMetadata.add_member(:is_public, Shapes::ShapeRef.new(shape: Boolean, location_name: "isPublic"))
    ImageMetadata.struct_class = Types::ImageMetadata

    ImageProviderList.member = Shapes::ShapeRef.new(shape: ImageProvider, location_name: "item")

    ImageProviderRequestList.member = Shapes::ShapeRef.new(shape: ImageProviderRequest, location_name: "item")

    ImageRecycleBinInfo.add_member(:image_id, Shapes::ShapeRef.new(shape: String, location_name: "imageId"))
    ImageRecycleBinInfo.add_member(:name, Shapes::ShapeRef.new(shape: String, location_name: "name"))
    ImageRecycleBinInfo.add_member(:description, Shapes::ShapeRef.new(shape: String, location_name: "description"))
    ImageRecycleBinInfo.add_member(:recycle_bin_enter_time, Shapes::ShapeRef.new(shape: MillisecondDateTime, location_name: "recycleBinEnterTime"))
    ImageRecycleBinInfo.add_member(:recycle_bin_exit_time, Shapes::ShapeRef.new(shape: MillisecondDateTime, location_name: "recycleBinExitTime"))
    ImageRecycleBinInfo.struct_class = Types::ImageRecycleBinInfo

    ImageRecycleBinInfoList.member = Shapes::ShapeRef.new(shape: ImageRecycleBinInfo, location_name: "item")

    ImportClientVpnClientCertificateRevocationListRequest.add_member(:client_vpn_endpoint_id, Shapes::ShapeRef.new(shape: ClientVpnEndpointId, required: true, location_name: "ClientVpnEndpointId"))
    ImportClientVpnClientCertificateRevocationListRequest.add_member(:certificate_revocation_list, Shapes::ShapeRef.new(shape: String, required: true, location_name: "CertificateRevocationList"))
    ImportClientVpnClientCertificateRevocationListRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    ImportClientVpnClientCertificateRevocationListRequest.struct_class = Types::ImportClientVpnClientCertificateRevocationListRequest

    ImportClientVpnClientCertificateRevocationListResult.add_member(:return, Shapes::ShapeRef.new(shape: Boolean, location_name: "return"))
    ImportClientVpnClientCertificateRevocationListResult.struct_class = Types::ImportClientVpnClientCertificateRevocationListResult

    ImportImageLicenseConfigurationRequest.add_member(:license_configuration_arn, Shapes::ShapeRef.new(shape: String, location_name: "LicenseConfigurationArn"))
    ImportImageLicenseConfigurationRequest.struct_class = Types::ImportImageLicenseConfigurationRequest

    ImportImageLicenseConfigurationResponse.add_member(:license_configuration_arn, Shapes::ShapeRef.new(shape: String, location_name: "licenseConfigurationArn"))
    ImportImageLicenseConfigurationResponse.struct_class = Types::ImportImageLicenseConfigurationResponse

    ImportImageLicenseSpecificationListRequest.member = Shapes::ShapeRef.new(shape: ImportImageLicenseConfigurationRequest, location_name: "item")

    ImportImageLicenseSpecificationListResponse.member = Shapes::ShapeRef.new(shape: ImportImageLicenseConfigurationResponse, location_name: "item")

    ImportImageRequest.add_member(:architecture, Shapes::ShapeRef.new(shape: String, location_name: "Architecture"))
    ImportImageRequest.add_member(:client_data, Shapes::ShapeRef.new(shape: ClientData, location_name: "ClientData"))
    ImportImageRequest.add_member(:client_token, Shapes::ShapeRef.new(shape: String, location_name: "ClientToken"))
    ImportImageRequest.add_member(:description, Shapes::ShapeRef.new(shape: String, location_name: "Description"))
    ImportImageRequest.add_member(:disk_containers, Shapes::ShapeRef.new(shape: ImageDiskContainerList, location_name: "DiskContainer"))
    ImportImageRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    ImportImageRequest.add_member(:encrypted, Shapes::ShapeRef.new(shape: Boolean, location_name: "Encrypted"))
    ImportImageRequest.add_member(:hypervisor, Shapes::ShapeRef.new(shape: String, location_name: "Hypervisor"))
    ImportImageRequest.add_member(:kms_key_id, Shapes::ShapeRef.new(shape: KmsKeyId, location_name: "KmsKeyId"))
    ImportImageRequest.add_member(:license_type, Shapes::ShapeRef.new(shape: String, location_name: "LicenseType"))
    ImportImageRequest.add_member(:platform, Shapes::ShapeRef.new(shape: String, location_name: "Platform"))
    ImportImageRequest.add_member(:role_name, Shapes::ShapeRef.new(shape: String, location_name: "RoleName"))
    ImportImageRequest.add_member(:license_specifications, Shapes::ShapeRef.new(shape: ImportImageLicenseSpecificationListRequest, location_name: "LicenseSpecifications"))
    ImportImageRequest.add_member(:tag_specifications, Shapes::ShapeRef.new(shape: TagSpecificationList, location_name: "TagSpecification"))
    ImportImageRequest.add_member(:usage_operation, Shapes::ShapeRef.new(shape: String, location_name: "UsageOperation"))
    ImportImageRequest.add_member(:boot_mode, Shapes::ShapeRef.new(shape: BootModeValues, location_name: "BootMode"))
    ImportImageRequest.struct_class = Types::ImportImageRequest

    ImportImageResult.add_member(:architecture, Shapes::ShapeRef.new(shape: String, location_name: "architecture"))
    ImportImageResult.add_member(:description, Shapes::ShapeRef.new(shape: String, location_name: "description"))
    ImportImageResult.add_member(:encrypted, Shapes::ShapeRef.new(shape: Boolean, location_name: "encrypted"))
    ImportImageResult.add_member(:hypervisor, Shapes::ShapeRef.new(shape: String, location_name: "hypervisor"))
    ImportImageResult.add_member(:image_id, Shapes::ShapeRef.new(shape: String, location_name: "imageId"))
    ImportImageResult.add_member(:import_task_id, Shapes::ShapeRef.new(shape: ImportImageTaskId, location_name: "importTaskId"))
    ImportImageResult.add_member(:kms_key_id, Shapes::ShapeRef.new(shape: KmsKeyId, location_name: "kmsKeyId"))
    ImportImageResult.add_member(:license_type, Shapes::ShapeRef.new(shape: String, location_name: "licenseType"))
    ImportImageResult.add_member(:platform, Shapes::ShapeRef.new(shape: String, location_name: "platform"))
    ImportImageResult.add_member(:progress, Shapes::ShapeRef.new(shape: String, location_name: "progress"))
    ImportImageResult.add_member(:snapshot_details, Shapes::ShapeRef.new(shape: SnapshotDetailList, location_name: "snapshotDetailSet"))
    ImportImageResult.add_member(:status, Shapes::ShapeRef.new(shape: String, location_name: "status"))
    ImportImageResult.add_member(:status_message, Shapes::ShapeRef.new(shape: String, location_name: "statusMessage"))
    ImportImageResult.add_member(:license_specifications, Shapes::ShapeRef.new(shape: ImportImageLicenseSpecificationListResponse, location_name: "licenseSpecifications"))
    ImportImageResult.add_member(:tags, Shapes::ShapeRef.new(shape: TagList, location_name: "tagSet"))
    ImportImageResult.add_member(:usage_operation, Shapes::ShapeRef.new(shape: String, location_name: "usageOperation"))
    ImportImageResult.struct_class = Types::ImportImageResult

    ImportImageTask.add_member(:architecture, Shapes::ShapeRef.new(shape: String, location_name: "architecture"))
    ImportImageTask.add_member(:description, Shapes::ShapeRef.new(shape: String, location_name: "description"))
    ImportImageTask.add_member(:encrypted, Shapes::ShapeRef.new(shape: Boolean, location_name: "encrypted"))
    ImportImageTask.add_member(:hypervisor, Shapes::ShapeRef.new(shape: String, location_name: "hypervisor"))
    ImportImageTask.add_member(:image_id, Shapes::ShapeRef.new(shape: String, location_name: "imageId"))
    ImportImageTask.add_member(:import_task_id, Shapes::ShapeRef.new(shape: String, location_name: "importTaskId"))
    ImportImageTask.add_member(:kms_key_id, Shapes::ShapeRef.new(shape: String, location_name: "kmsKeyId"))
    ImportImageTask.add_member(:license_type, Shapes::ShapeRef.new(shape: String, location_name: "licenseType"))
    ImportImageTask.add_member(:platform, Shapes::ShapeRef.new(shape: String, location_name: "platform"))
    ImportImageTask.add_member(:progress, Shapes::ShapeRef.new(shape: String, location_name: "progress"))
    ImportImageTask.add_member(:snapshot_details, Shapes::ShapeRef.new(shape: SnapshotDetailList, location_name: "snapshotDetailSet"))
    ImportImageTask.add_member(:status, Shapes::ShapeRef.new(shape: String, location_name: "status"))
    ImportImageTask.add_member(:status_message, Shapes::ShapeRef.new(shape: String, location_name: "statusMessage"))
    ImportImageTask.add_member(:tags, Shapes::ShapeRef.new(shape: TagList, location_name: "tagSet"))
    ImportImageTask.add_member(:license_specifications, Shapes::ShapeRef.new(shape: ImportImageLicenseSpecificationListResponse, location_name: "licenseSpecifications"))
    ImportImageTask.add_member(:usage_operation, Shapes::ShapeRef.new(shape: String, location_name: "usageOperation"))
    ImportImageTask.add_member(:boot_mode, Shapes::ShapeRef.new(shape: BootModeValues, location_name: "bootMode"))
    ImportImageTask.struct_class = Types::ImportImageTask

    ImportImageTaskList.member = Shapes::ShapeRef.new(shape: ImportImageTask, location_name: "item")

    ImportInstanceLaunchSpecification.add_member(:architecture, Shapes::ShapeRef.new(shape: ArchitectureValues, location_name: "architecture"))
    ImportInstanceLaunchSpecification.add_member(:group_names, Shapes::ShapeRef.new(shape: SecurityGroupStringList, location_name: "GroupName"))
    ImportInstanceLaunchSpecification.add_member(:group_ids, Shapes::ShapeRef.new(shape: SecurityGroupIdStringList, location_name: "GroupId"))
    ImportInstanceLaunchSpecification.add_member(:additional_info, Shapes::ShapeRef.new(shape: String, location_name: "additionalInfo"))
    ImportInstanceLaunchSpecification.add_member(:user_data, Shapes::ShapeRef.new(shape: UserData, location_name: "userData"))
    ImportInstanceLaunchSpecification.add_member(:instance_type, Shapes::ShapeRef.new(shape: InstanceType, location_name: "instanceType"))
    ImportInstanceLaunchSpecification.add_member(:placement, Shapes::ShapeRef.new(shape: Placement, location_name: "placement"))
    ImportInstanceLaunchSpecification.add_member(:monitoring, Shapes::ShapeRef.new(shape: Boolean, location_name: "monitoring"))
    ImportInstanceLaunchSpecification.add_member(:subnet_id, Shapes::ShapeRef.new(shape: SubnetId, location_name: "subnetId"))
    ImportInstanceLaunchSpecification.add_member(:instance_initiated_shutdown_behavior, Shapes::ShapeRef.new(shape: ShutdownBehavior, location_name: "instanceInitiatedShutdownBehavior"))
    ImportInstanceLaunchSpecification.add_member(:private_ip_address, Shapes::ShapeRef.new(shape: String, location_name: "privateIpAddress"))
    ImportInstanceLaunchSpecification.struct_class = Types::ImportInstanceLaunchSpecification

    ImportInstanceRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "dryRun"))
    ImportInstanceRequest.add_member(:description, Shapes::ShapeRef.new(shape: String, location_name: "description"))
    ImportInstanceRequest.add_member(:launch_specification, Shapes::ShapeRef.new(shape: ImportInstanceLaunchSpecification, location_name: "launchSpecification"))
    ImportInstanceRequest.add_member(:disk_images, Shapes::ShapeRef.new(shape: DiskImageList, location_name: "diskImage"))
    ImportInstanceRequest.add_member(:platform, Shapes::ShapeRef.new(shape: PlatformValues, required: true, location_name: "platform"))
    ImportInstanceRequest.struct_class = Types::ImportInstanceRequest

    ImportInstanceResult.add_member(:conversion_task, Shapes::ShapeRef.new(shape: ConversionTask, location_name: "conversionTask"))
    ImportInstanceResult.struct_class = Types::ImportInstanceResult

    ImportInstanceTaskDetails.add_member(:description, Shapes::ShapeRef.new(shape: String, location_name: "description"))
    ImportInstanceTaskDetails.add_member(:instance_id, Shapes::ShapeRef.new(shape: String, location_name: "instanceId"))
    ImportInstanceTaskDetails.add_member(:platform, Shapes::ShapeRef.new(shape: PlatformValues, location_name: "platform"))
    ImportInstanceTaskDetails.add_member(:volumes, Shapes::ShapeRef.new(shape: ImportInstanceVolumeDetailSet, location_name: "volumes"))
    ImportInstanceTaskDetails.struct_class = Types::ImportInstanceTaskDetails

    ImportInstanceVolumeDetailItem.add_member(:availability_zone, Shapes::ShapeRef.new(shape: String, location_name: "availabilityZone"))
    ImportInstanceVolumeDetailItem.add_member(:bytes_converted, Shapes::ShapeRef.new(shape: Long, location_name: "bytesConverted"))
    ImportInstanceVolumeDetailItem.add_member(:description, Shapes::ShapeRef.new(shape: String, location_name: "description"))
    ImportInstanceVolumeDetailItem.add_member(:image, Shapes::ShapeRef.new(shape: DiskImageDescription, location_name: "image"))
    ImportInstanceVolumeDetailItem.add_member(:status, Shapes::ShapeRef.new(shape: String, location_name: "status"))
    ImportInstanceVolumeDetailItem.add_member(:status_message, Shapes::ShapeRef.new(shape: String, location_name: "statusMessage"))
    ImportInstanceVolumeDetailItem.add_member(:volume, Shapes::ShapeRef.new(shape: DiskImageVolumeDescription, location_name: "volume"))
    ImportInstanceVolumeDetailItem.struct_class = Types::ImportInstanceVolumeDetailItem

    ImportInstanceVolumeDetailSet.member = Shapes::ShapeRef.new(shape: ImportInstanceVolumeDetailItem, location_name: "item")

    ImportKeyPairRequest.add_member(:tag_specifications, Shapes::ShapeRef.new(shape: TagSpecificationList, location_name: "TagSpecification"))
    ImportKeyPairRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "dryRun"))
    ImportKeyPairRequest.add_member(:key_name, Shapes::ShapeRef.new(shape: String, required: true, location_name: "keyName"))
    ImportKeyPairRequest.add_member(:public_key_material, Shapes::ShapeRef.new(shape: Blob, required: true, location_name: "publicKeyMaterial"))
    ImportKeyPairRequest.struct_class = Types::ImportKeyPairRequest

    ImportKeyPairResult.add_member(:key_fingerprint, Shapes::ShapeRef.new(shape: String, location_name: "keyFingerprint"))
    ImportKeyPairResult.add_member(:key_name, Shapes::ShapeRef.new(shape: String, location_name: "keyName"))
    ImportKeyPairResult.add_member(:key_pair_id, Shapes::ShapeRef.new(shape: String, location_name: "keyPairId"))
    ImportKeyPairResult.add_member(:tags, Shapes::ShapeRef.new(shape: TagList, location_name: "tagSet"))
    ImportKeyPairResult.struct_class = Types::ImportKeyPairResult

    ImportSnapshotRequest.add_member(:client_data, Shapes::ShapeRef.new(shape: ClientData, location_name: "ClientData"))
    ImportSnapshotRequest.add_member(:client_token, Shapes::ShapeRef.new(shape: String, location_name: "ClientToken"))
    ImportSnapshotRequest.add_member(:description, Shapes::ShapeRef.new(shape: String, location_name: "Description"))
    ImportSnapshotRequest.add_member(:disk_container, Shapes::ShapeRef.new(shape: SnapshotDiskContainer, location_name: "DiskContainer"))
    ImportSnapshotRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    ImportSnapshotRequest.add_member(:encrypted, Shapes::ShapeRef.new(shape: Boolean, location_name: "Encrypted"))
    ImportSnapshotRequest.add_member(:kms_key_id, Shapes::ShapeRef.new(shape: KmsKeyId, location_name: "KmsKeyId"))
    ImportSnapshotRequest.add_member(:role_name, Shapes::ShapeRef.new(shape: String, location_name: "RoleName"))
    ImportSnapshotRequest.add_member(:tag_specifications, Shapes::ShapeRef.new(shape: TagSpecificationList, location_name: "TagSpecification"))
    ImportSnapshotRequest.struct_class = Types::ImportSnapshotRequest

    ImportSnapshotResult.add_member(:description, Shapes::ShapeRef.new(shape: String, location_name: "description"))
    ImportSnapshotResult.add_member(:import_task_id, Shapes::ShapeRef.new(shape: String, location_name: "importTaskId"))
    ImportSnapshotResult.add_member(:snapshot_task_detail, Shapes::ShapeRef.new(shape: SnapshotTaskDetail, location_name: "snapshotTaskDetail"))
    ImportSnapshotResult.add_member(:tags, Shapes::ShapeRef.new(shape: TagList, location_name: "tagSet"))
    ImportSnapshotResult.struct_class = Types::ImportSnapshotResult

    ImportSnapshotTask.add_member(:description, Shapes::ShapeRef.new(shape: String, location_name: "description"))
    ImportSnapshotTask.add_member(:import_task_id, Shapes::ShapeRef.new(shape: String, location_name: "importTaskId"))
    ImportSnapshotTask.add_member(:snapshot_task_detail, Shapes::ShapeRef.new(shape: SnapshotTaskDetail, location_name: "snapshotTaskDetail"))
    ImportSnapshotTask.add_member(:tags, Shapes::ShapeRef.new(shape: TagList, location_name: "tagSet"))
    ImportSnapshotTask.struct_class = Types::ImportSnapshotTask

    ImportSnapshotTaskIdList.member = Shapes::ShapeRef.new(shape: ImportSnapshotTaskId, location_name: "ImportTaskId")

    ImportSnapshotTaskList.member = Shapes::ShapeRef.new(shape: ImportSnapshotTask, location_name: "item")

    ImportTaskIdList.member = Shapes::ShapeRef.new(shape: ImportImageTaskId, location_name: "ImportTaskId")

    ImportVolumeRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "dryRun"))
    ImportVolumeRequest.add_member(:availability_zone, Shapes::ShapeRef.new(shape: String, required: true, location_name: "availabilityZone"))
    ImportVolumeRequest.add_member(:image, Shapes::ShapeRef.new(shape: DiskImageDetail, required: true, location_name: "image"))
    ImportVolumeRequest.add_member(:description, Shapes::ShapeRef.new(shape: String, location_name: "description"))
    ImportVolumeRequest.add_member(:volume, Shapes::ShapeRef.new(shape: VolumeDetail, required: true, location_name: "volume"))
    ImportVolumeRequest.struct_class = Types::ImportVolumeRequest

    ImportVolumeResult.add_member(:conversion_task, Shapes::ShapeRef.new(shape: ConversionTask, location_name: "conversionTask"))
    ImportVolumeResult.struct_class = Types::ImportVolumeResult

    ImportVolumeTaskDetails.add_member(:availability_zone, Shapes::ShapeRef.new(shape: String, location_name: "availabilityZone"))
    ImportVolumeTaskDetails.add_member(:bytes_converted, Shapes::ShapeRef.new(shape: Long, location_name: "bytesConverted"))
    ImportVolumeTaskDetails.add_member(:description, Shapes::ShapeRef.new(shape: String, location_name: "description"))
    ImportVolumeTaskDetails.add_member(:image, Shapes::ShapeRef.new(shape: DiskImageDescription, location_name: "image"))
    ImportVolumeTaskDetails.add_member(:volume, Shapes::ShapeRef.new(shape: DiskImageVolumeDescription, location_name: "volume"))
    ImportVolumeTaskDetails.struct_class = Types::ImportVolumeTaskDetails

    InferenceAcceleratorInfo.add_member(:accelerators, Shapes::ShapeRef.new(shape: InferenceDeviceInfoList, location_name: "accelerators"))
    InferenceAcceleratorInfo.add_member(:total_inference_memory_in_mi_b, Shapes::ShapeRef.new(shape: totalInferenceMemory, location_name: "totalInferenceMemoryInMiB"))
    InferenceAcceleratorInfo.struct_class = Types::InferenceAcceleratorInfo

    InferenceDeviceInfo.add_member(:count, Shapes::ShapeRef.new(shape: InferenceDeviceCount, location_name: "count"))
    InferenceDeviceInfo.add_member(:name, Shapes::ShapeRef.new(shape: InferenceDeviceName, location_name: "name"))
    InferenceDeviceInfo.add_member(:manufacturer, Shapes::ShapeRef.new(shape: InferenceDeviceManufacturerName, location_name: "manufacturer"))
    InferenceDeviceInfo.add_member(:memory_info, Shapes::ShapeRef.new(shape: InferenceDeviceMemoryInfo, location_name: "memoryInfo"))
    InferenceDeviceInfo.struct_class = Types::InferenceDeviceInfo

    InferenceDeviceInfoList.member = Shapes::ShapeRef.new(shape: InferenceDeviceInfo)

    InferenceDeviceMemoryInfo.add_member(:size_in_mi_b, Shapes::ShapeRef.new(shape: InferenceDeviceMemorySize, location_name: "sizeInMiB"))
    InferenceDeviceMemoryInfo.struct_class = Types::InferenceDeviceMemoryInfo

    InsideCidrBlocksStringList.member = Shapes::ShapeRef.new(shape: String, location_name: "item")

    Instance.add_member(:architecture, Shapes::ShapeRef.new(shape: ArchitectureValues, location_name: "architecture"))
    Instance.add_member(:block_device_mappings, Shapes::ShapeRef.new(shape: InstanceBlockDeviceMappingList, location_name: "blockDeviceMapping"))
    Instance.add_member(:client_token, Shapes::ShapeRef.new(shape: String, location_name: "clientToken"))
    Instance.add_member(:ebs_optimized, Shapes::ShapeRef.new(shape: Boolean, location_name: "ebsOptimized"))
    Instance.add_member(:ena_support, Shapes::ShapeRef.new(shape: Boolean, location_name: "enaSupport"))
    Instance.add_member(:hypervisor, Shapes::ShapeRef.new(shape: HypervisorType, location_name: "hypervisor"))
    Instance.add_member(:iam_instance_profile, Shapes::ShapeRef.new(shape: IamInstanceProfile, location_name: "iamInstanceProfile"))
    Instance.add_member(:instance_lifecycle, Shapes::ShapeRef.new(shape: InstanceLifecycleType, location_name: "instanceLifecycle"))
    Instance.add_member(:elastic_gpu_associations, Shapes::ShapeRef.new(shape: ElasticGpuAssociationList, location_name: "elasticGpuAssociationSet"))
    Instance.add_member(:elastic_inference_accelerator_associations, Shapes::ShapeRef.new(shape: ElasticInferenceAcceleratorAssociationList, location_name: "elasticInferenceAcceleratorAssociationSet"))
    Instance.add_member(:network_interfaces, Shapes::ShapeRef.new(shape: InstanceNetworkInterfaceList, location_name: "networkInterfaceSet"))
    Instance.add_member(:outpost_arn, Shapes::ShapeRef.new(shape: String, location_name: "outpostArn"))
    Instance.add_member(:root_device_name, Shapes::ShapeRef.new(shape: String, location_name: "rootDeviceName"))
    Instance.add_member(:root_device_type, Shapes::ShapeRef.new(shape: DeviceType, location_name: "rootDeviceType"))
    Instance.add_member(:security_groups, Shapes::ShapeRef.new(shape: GroupIdentifierList, location_name: "groupSet"))
    Instance.add_member(:source_dest_check, Shapes::ShapeRef.new(shape: Boolean, location_name: "sourceDestCheck"))
    Instance.add_member(:spot_instance_request_id, Shapes::ShapeRef.new(shape: String, location_name: "spotInstanceRequestId"))
    Instance.add_member(:sriov_net_support, Shapes::ShapeRef.new(shape: String, location_name: "sriovNetSupport"))
    Instance.add_member(:state_reason, Shapes::ShapeRef.new(shape: StateReason, location_name: "stateReason"))
    Instance.add_member(:tags, Shapes::ShapeRef.new(shape: TagList, location_name: "tagSet"))
    Instance.add_member(:virtualization_type, Shapes::ShapeRef.new(shape: VirtualizationType, location_name: "virtualizationType"))
    Instance.add_member(:cpu_options, Shapes::ShapeRef.new(shape: CpuOptions, location_name: "cpuOptions"))
    Instance.add_member(:capacity_reservation_id, Shapes::ShapeRef.new(shape: String, location_name: "capacityReservationId"))
    Instance.add_member(:capacity_reservation_specification, Shapes::ShapeRef.new(shape: CapacityReservationSpecificationResponse, location_name: "capacityReservationSpecification"))
    Instance.add_member(:hibernation_options, Shapes::ShapeRef.new(shape: HibernationOptions, location_name: "hibernationOptions"))
    Instance.add_member(:licenses, Shapes::ShapeRef.new(shape: LicenseList, location_name: "licenseSet"))
    Instance.add_member(:metadata_options, Shapes::ShapeRef.new(shape: InstanceMetadataOptionsResponse, location_name: "metadataOptions"))
    Instance.add_member(:enclave_options, Shapes::ShapeRef.new(shape: EnclaveOptions, location_name: "enclaveOptions"))
    Instance.add_member(:boot_mode, Shapes::ShapeRef.new(shape: BootModeValues, location_name: "bootMode"))
    Instance.add_member(:platform_details, Shapes::ShapeRef.new(shape: String, location_name: "platformDetails"))
    Instance.add_member(:usage_operation, Shapes::ShapeRef.new(shape: String, location_name: "usageOperation"))
    Instance.add_member(:usage_operation_update_time, Shapes::ShapeRef.new(shape: MillisecondDateTime, location_name: "usageOperationUpdateTime"))
    Instance.add_member(:private_dns_name_options, Shapes::ShapeRef.new(shape: PrivateDnsNameOptionsResponse, location_name: "privateDnsNameOptions"))
    Instance.add_member(:ipv_6_address, Shapes::ShapeRef.new(shape: String, location_name: "ipv6Address"))
    Instance.add_member(:tpm_support, Shapes::ShapeRef.new(shape: String, location_name: "tpmSupport"))
    Instance.add_member(:maintenance_options, Shapes::ShapeRef.new(shape: InstanceMaintenanceOptions, location_name: "maintenanceOptions"))
    Instance.add_member(:current_instance_boot_mode, Shapes::ShapeRef.new(shape: InstanceBootModeValues, location_name: "currentInstanceBootMode"))
    Instance.add_member(:network_performance_options, Shapes::ShapeRef.new(shape: InstanceNetworkPerformanceOptions, location_name: "networkPerformanceOptions"))
    Instance.add_member(:operator, Shapes::ShapeRef.new(shape: OperatorResponse, location_name: "operator"))
    Instance.add_member(:instance_id, Shapes::ShapeRef.new(shape: String, location_name: "instanceId"))
    Instance.add_member(:image_id, Shapes::ShapeRef.new(shape: String, location_name: "imageId"))
    Instance.add_member(:state, Shapes::ShapeRef.new(shape: InstanceState, location_name: "instanceState"))
    Instance.add_member(:private_dns_name, Shapes::ShapeRef.new(shape: String, location_name: "privateDnsName"))
    Instance.add_member(:public_dns_name, Shapes::ShapeRef.new(shape: String, location_name: "dnsName"))
    Instance.add_member(:state_transition_reason, Shapes::ShapeRef.new(shape: String, location_name: "reason"))
    Instance.add_member(:key_name, Shapes::ShapeRef.new(shape: String, location_name: "keyName"))
    Instance.add_member(:ami_launch_index, Shapes::ShapeRef.new(shape: Integer, location_name: "amiLaunchIndex"))
    Instance.add_member(:product_codes, Shapes::ShapeRef.new(shape: ProductCodeList, location_name: "productCodes"))
    Instance.add_member(:instance_type, Shapes::ShapeRef.new(shape: InstanceType, location_name: "instanceType"))
    Instance.add_member(:launch_time, Shapes::ShapeRef.new(shape: DateTime, location_name: "launchTime"))
    Instance.add_member(:placement, Shapes::ShapeRef.new(shape: Placement, location_name: "placement"))
    Instance.add_member(:kernel_id, Shapes::ShapeRef.new(shape: String, location_name: "kernelId"))
    Instance.add_member(:ramdisk_id, Shapes::ShapeRef.new(shape: String, location_name: "ramdiskId"))
    Instance.add_member(:platform, Shapes::ShapeRef.new(shape: PlatformValues, location_name: "platform"))
    Instance.add_member(:monitoring, Shapes::ShapeRef.new(shape: Monitoring, location_name: "monitoring"))
    Instance.add_member(:subnet_id, Shapes::ShapeRef.new(shape: String, location_name: "subnetId"))
    Instance.add_member(:vpc_id, Shapes::ShapeRef.new(shape: String, location_name: "vpcId"))
    Instance.add_member(:private_ip_address, Shapes::ShapeRef.new(shape: String, location_name: "privateIpAddress"))
    Instance.add_member(:public_ip_address, Shapes::ShapeRef.new(shape: String, location_name: "ipAddress"))
    Instance.struct_class = Types::Instance

    InstanceAttachmentEnaSrdSpecification.add_member(:ena_srd_enabled, Shapes::ShapeRef.new(shape: Boolean, location_name: "enaSrdEnabled"))
    InstanceAttachmentEnaSrdSpecification.add_member(:ena_srd_udp_specification, Shapes::ShapeRef.new(shape: InstanceAttachmentEnaSrdUdpSpecification, location_name: "enaSrdUdpSpecification"))
    InstanceAttachmentEnaSrdSpecification.struct_class = Types::InstanceAttachmentEnaSrdSpecification

    InstanceAttachmentEnaSrdUdpSpecification.add_member(:ena_srd_udp_enabled, Shapes::ShapeRef.new(shape: Boolean, location_name: "enaSrdUdpEnabled"))
    InstanceAttachmentEnaSrdUdpSpecification.struct_class = Types::InstanceAttachmentEnaSrdUdpSpecification

    InstanceAttribute.add_member(:block_device_mappings, Shapes::ShapeRef.new(shape: InstanceBlockDeviceMappingList, location_name: "blockDeviceMapping"))
    InstanceAttribute.add_member(:disable_api_termination, Shapes::ShapeRef.new(shape: AttributeBooleanValue, location_name: "disableApiTermination"))
    InstanceAttribute.add_member(:ena_support, Shapes::ShapeRef.new(shape: AttributeBooleanValue, location_name: "enaSupport"))
    InstanceAttribute.add_member(:enclave_options, Shapes::ShapeRef.new(shape: EnclaveOptions, location_name: "enclaveOptions"))
    InstanceAttribute.add_member(:ebs_optimized, Shapes::ShapeRef.new(shape: AttributeBooleanValue, location_name: "ebsOptimized"))
    InstanceAttribute.add_member(:instance_id, Shapes::ShapeRef.new(shape: String, location_name: "instanceId"))
    InstanceAttribute.add_member(:instance_initiated_shutdown_behavior, Shapes::ShapeRef.new(shape: AttributeValue, location_name: "instanceInitiatedShutdownBehavior"))
    InstanceAttribute.add_member(:instance_type, Shapes::ShapeRef.new(shape: AttributeValue, location_name: "instanceType"))
    InstanceAttribute.add_member(:kernel_id, Shapes::ShapeRef.new(shape: AttributeValue, location_name: "kernel"))
    InstanceAttribute.add_member(:product_codes, Shapes::ShapeRef.new(shape: ProductCodeList, location_name: "productCodes"))
    InstanceAttribute.add_member(:ramdisk_id, Shapes::ShapeRef.new(shape: AttributeValue, location_name: "ramdisk"))
    InstanceAttribute.add_member(:root_device_name, Shapes::ShapeRef.new(shape: AttributeValue, location_name: "rootDeviceName"))
    InstanceAttribute.add_member(:source_dest_check, Shapes::ShapeRef.new(shape: AttributeBooleanValue, location_name: "sourceDestCheck"))
    InstanceAttribute.add_member(:sriov_net_support, Shapes::ShapeRef.new(shape: AttributeValue, location_name: "sriovNetSupport"))
    InstanceAttribute.add_member(:user_data, Shapes::ShapeRef.new(shape: AttributeValue, location_name: "userData"))
    InstanceAttribute.add_member(:disable_api_stop, Shapes::ShapeRef.new(shape: AttributeBooleanValue, location_name: "disableApiStop"))
    InstanceAttribute.add_member(:groups, Shapes::ShapeRef.new(shape: GroupIdentifierList, location_name: "groupSet"))
    InstanceAttribute.struct_class = Types::InstanceAttribute

    InstanceBlockDeviceMapping.add_member(:device_name, Shapes::ShapeRef.new(shape: String, location_name: "deviceName"))
    InstanceBlockDeviceMapping.add_member(:ebs, Shapes::ShapeRef.new(shape: EbsInstanceBlockDevice, location_name: "ebs"))
    InstanceBlockDeviceMapping.struct_class = Types::InstanceBlockDeviceMapping

    InstanceBlockDeviceMappingList.member = Shapes::ShapeRef.new(shape: InstanceBlockDeviceMapping, location_name: "item")

    InstanceBlockDeviceMappingSpecification.add_member(:device_name, Shapes::ShapeRef.new(shape: String, location_name: "deviceName"))
    InstanceBlockDeviceMappingSpecification.add_member(:ebs, Shapes::ShapeRef.new(shape: EbsInstanceBlockDeviceSpecification, location_name: "ebs"))
    InstanceBlockDeviceMappingSpecification.add_member(:virtual_name, Shapes::ShapeRef.new(shape: String, location_name: "virtualName"))
    InstanceBlockDeviceMappingSpecification.add_member(:no_device, Shapes::ShapeRef.new(shape: String, location_name: "noDevice"))
    InstanceBlockDeviceMappingSpecification.struct_class = Types::InstanceBlockDeviceMappingSpecification

    InstanceBlockDeviceMappingSpecificationList.member = Shapes::ShapeRef.new(shape: InstanceBlockDeviceMappingSpecification, location_name: "item")

    InstanceCapacity.add_member(:available_capacity, Shapes::ShapeRef.new(shape: Integer, location_name: "availableCapacity"))
    InstanceCapacity.add_member(:instance_type, Shapes::ShapeRef.new(shape: String, location_name: "instanceType"))
    InstanceCapacity.add_member(:total_capacity, Shapes::ShapeRef.new(shape: Integer, location_name: "totalCapacity"))
    InstanceCapacity.struct_class = Types::InstanceCapacity

    InstanceConnectEndpointSet.member = Shapes::ShapeRef.new(shape: Ec2InstanceConnectEndpoint, location_name: "item")

    InstanceCount.add_member(:instance_count, Shapes::ShapeRef.new(shape: Integer, location_name: "instanceCount"))
    InstanceCount.add_member(:state, Shapes::ShapeRef.new(shape: ListingState, location_name: "state"))
    InstanceCount.struct_class = Types::InstanceCount

    InstanceCountList.member = Shapes::ShapeRef.new(shape: InstanceCount, location_name: "item")

    InstanceCreditSpecification.add_member(:instance_id, Shapes::ShapeRef.new(shape: String, location_name: "instanceId"))
    InstanceCreditSpecification.add_member(:cpu_credits, Shapes::ShapeRef.new(shape: String, location_name: "cpuCredits"))
    InstanceCreditSpecification.struct_class = Types::InstanceCreditSpecification

    InstanceCreditSpecificationList.member = Shapes::ShapeRef.new(shape: InstanceCreditSpecification, location_name: "item")

    InstanceCreditSpecificationListRequest.member = Shapes::ShapeRef.new(shape: InstanceCreditSpecificationRequest, location_name: "item")

    InstanceCreditSpecificationRequest.add_member(:instance_id, Shapes::ShapeRef.new(shape: InstanceId, required: true, location_name: "InstanceId"))
    InstanceCreditSpecificationRequest.add_member(:cpu_credits, Shapes::ShapeRef.new(shape: String, location_name: "CpuCredits"))
    InstanceCreditSpecificationRequest.struct_class = Types::InstanceCreditSpecificationRequest

    InstanceEventWindow.add_member(:instance_event_window_id, Shapes::ShapeRef.new(shape: InstanceEventWindowId, location_name: "instanceEventWindowId"))
    InstanceEventWindow.add_member(:time_ranges, Shapes::ShapeRef.new(shape: InstanceEventWindowTimeRangeList, location_name: "timeRangeSet"))
    InstanceEventWindow.add_member(:name, Shapes::ShapeRef.new(shape: String, location_name: "name"))
    InstanceEventWindow.add_member(:cron_expression, Shapes::ShapeRef.new(shape: InstanceEventWindowCronExpression, location_name: "cronExpression"))
    InstanceEventWindow.add_member(:association_target, Shapes::ShapeRef.new(shape: InstanceEventWindowAssociationTarget, location_name: "associationTarget"))
    InstanceEventWindow.add_member(:state, Shapes::ShapeRef.new(shape: InstanceEventWindowState, location_name: "state"))
    InstanceEventWindow.add_member(:tags, Shapes::ShapeRef.new(shape: TagList, location_name: "tagSet"))
    InstanceEventWindow.struct_class = Types::InstanceEventWindow

    InstanceEventWindowAssociationRequest.add_member(:instance_ids, Shapes::ShapeRef.new(shape: InstanceIdList, location_name: "InstanceId"))
    InstanceEventWindowAssociationRequest.add_member(:instance_tags, Shapes::ShapeRef.new(shape: TagList, location_name: "InstanceTag"))
    InstanceEventWindowAssociationRequest.add_member(:dedicated_host_ids, Shapes::ShapeRef.new(shape: DedicatedHostIdList, location_name: "DedicatedHostId"))
    InstanceEventWindowAssociationRequest.struct_class = Types::InstanceEventWindowAssociationRequest

    InstanceEventWindowAssociationTarget.add_member(:instance_ids, Shapes::ShapeRef.new(shape: InstanceIdList, location_name: "instanceIdSet"))
    InstanceEventWindowAssociationTarget.add_member(:tags, Shapes::ShapeRef.new(shape: TagList, location_name: "tagSet"))
    InstanceEventWindowAssociationTarget.add_member(:dedicated_host_ids, Shapes::ShapeRef.new(shape: DedicatedHostIdList, location_name: "dedicatedHostIdSet"))
    InstanceEventWindowAssociationTarget.struct_class = Types::InstanceEventWindowAssociationTarget

    InstanceEventWindowDisassociationRequest.add_member(:instance_ids, Shapes::ShapeRef.new(shape: InstanceIdList, location_name: "InstanceId"))
    InstanceEventWindowDisassociationRequest.add_member(:instance_tags, Shapes::ShapeRef.new(shape: TagList, location_name: "InstanceTag"))
    InstanceEventWindowDisassociationRequest.add_member(:dedicated_host_ids, Shapes::ShapeRef.new(shape: DedicatedHostIdList, location_name: "DedicatedHostId"))
    InstanceEventWindowDisassociationRequest.struct_class = Types::InstanceEventWindowDisassociationRequest

    InstanceEventWindowIdSet.member = Shapes::ShapeRef.new(shape: InstanceEventWindowId, location_name: "InstanceEventWindowId")

    InstanceEventWindowSet.member = Shapes::ShapeRef.new(shape: InstanceEventWindow, location_name: "item")

    InstanceEventWindowStateChange.add_member(:instance_event_window_id, Shapes::ShapeRef.new(shape: InstanceEventWindowId, location_name: "instanceEventWindowId"))
    InstanceEventWindowStateChange.add_member(:state, Shapes::ShapeRef.new(shape: InstanceEventWindowState, location_name: "state"))
    InstanceEventWindowStateChange.struct_class = Types::InstanceEventWindowStateChange

    InstanceEventWindowTimeRange.add_member(:start_week_day, Shapes::ShapeRef.new(shape: WeekDay, location_name: "startWeekDay"))
    InstanceEventWindowTimeRange.add_member(:start_hour, Shapes::ShapeRef.new(shape: Hour, location_name: "startHour"))
    InstanceEventWindowTimeRange.add_member(:end_week_day, Shapes::ShapeRef.new(shape: WeekDay, location_name: "endWeekDay"))
    InstanceEventWindowTimeRange.add_member(:end_hour, Shapes::ShapeRef.new(shape: Hour, location_name: "endHour"))
    InstanceEventWindowTimeRange.struct_class = Types::InstanceEventWindowTimeRange

    InstanceEventWindowTimeRangeList.member = Shapes::ShapeRef.new(shape: InstanceEventWindowTimeRange, location_name: "item")

    InstanceEventWindowTimeRangeRequest.add_member(:start_week_day, Shapes::ShapeRef.new(shape: WeekDay, location_name: "StartWeekDay"))
    InstanceEventWindowTimeRangeRequest.add_member(:start_hour, Shapes::ShapeRef.new(shape: Hour, location_name: "StartHour"))
    InstanceEventWindowTimeRangeRequest.add_member(:end_week_day, Shapes::ShapeRef.new(shape: WeekDay, location_name: "EndWeekDay"))
    InstanceEventWindowTimeRangeRequest.add_member(:end_hour, Shapes::ShapeRef.new(shape: Hour, location_name: "EndHour"))
    InstanceEventWindowTimeRangeRequest.struct_class = Types::InstanceEventWindowTimeRangeRequest

    InstanceEventWindowTimeRangeRequestSet.member = Shapes::ShapeRef.new(shape: InstanceEventWindowTimeRangeRequest)

    InstanceExportDetails.add_member(:instance_id, Shapes::ShapeRef.new(shape: String, location_name: "instanceId"))
    InstanceExportDetails.add_member(:target_environment, Shapes::ShapeRef.new(shape: ExportEnvironment, location_name: "targetEnvironment"))
    InstanceExportDetails.struct_class = Types::InstanceExportDetails

    InstanceFamilyCreditSpecification.add_member(:instance_family, Shapes::ShapeRef.new(shape: UnlimitedSupportedInstanceFamily, location_name: "instanceFamily"))
    InstanceFamilyCreditSpecification.add_member(:cpu_credits, Shapes::ShapeRef.new(shape: String, location_name: "cpuCredits"))
    InstanceFamilyCreditSpecification.struct_class = Types::InstanceFamilyCreditSpecification

    InstanceGenerationSet.member = Shapes::ShapeRef.new(shape: InstanceGeneration, location_name: "item")

    InstanceIdList.member = Shapes::ShapeRef.new(shape: InstanceId, location_name: "item")

    InstanceIdSet.member = Shapes::ShapeRef.new(shape: InstanceId, location_name: "item")

    InstanceIdStringList.member = Shapes::ShapeRef.new(shape: InstanceId, location_name: "InstanceId")

    InstanceIdsSet.member = Shapes::ShapeRef.new(shape: InstanceId, location_name: "item")

    InstanceImageMetadata.add_member(:instance_id, Shapes::ShapeRef.new(shape: InstanceId, location_name: "instanceId"))
    InstanceImageMetadata.add_member(:instance_type, Shapes::ShapeRef.new(shape: InstanceType, location_name: "instanceType"))
    InstanceImageMetadata.add_member(:launch_time, Shapes::ShapeRef.new(shape: MillisecondDateTime, location_name: "launchTime"))
    InstanceImageMetadata.add_member(:availability_zone, Shapes::ShapeRef.new(shape: String, location_name: "availabilityZone"))
    InstanceImageMetadata.add_member(:zone_id, Shapes::ShapeRef.new(shape: String, location_name: "zoneId"))
    InstanceImageMetadata.add_member(:state, Shapes::ShapeRef.new(shape: InstanceState, location_name: "instanceState"))
    InstanceImageMetadata.add_member(:owner_id, Shapes::ShapeRef.new(shape: String, location_name: "instanceOwnerId"))
    InstanceImageMetadata.add_member(:tags, Shapes::ShapeRef.new(shape: TagList, location_name: "tagSet"))
    InstanceImageMetadata.add_member(:image_metadata, Shapes::ShapeRef.new(shape: ImageMetadata, location_name: "imageMetadata"))
    InstanceImageMetadata.add_member(:operator, Shapes::ShapeRef.new(shape: OperatorResponse, location_name: "operator"))
    InstanceImageMetadata.struct_class = Types::InstanceImageMetadata

    InstanceImageMetadataList.member = Shapes::ShapeRef.new(shape: InstanceImageMetadata, location_name: "item")

    InstanceIpv4Prefix.add_member(:ipv_4_prefix, Shapes::ShapeRef.new(shape: String, location_name: "ipv4Prefix"))
    InstanceIpv4Prefix.struct_class = Types::InstanceIpv4Prefix

    InstanceIpv4PrefixList.member = Shapes::ShapeRef.new(shape: InstanceIpv4Prefix, location_name: "item")

    InstanceIpv6Address.add_member(:ipv_6_address, Shapes::ShapeRef.new(shape: String, location_name: "ipv6Address"))
    InstanceIpv6Address.add_member(:is_primary_ipv_6, Shapes::ShapeRef.new(shape: Boolean, location_name: "isPrimaryIpv6"))
    InstanceIpv6Address.struct_class = Types::InstanceIpv6Address

    InstanceIpv6AddressList.member = Shapes::ShapeRef.new(shape: InstanceIpv6Address, location_name: "item")

    InstanceIpv6AddressListRequest.member = Shapes::ShapeRef.new(shape: InstanceIpv6AddressRequest, location_name: "InstanceIpv6Address")

    InstanceIpv6AddressRequest.add_member(:ipv_6_address, Shapes::ShapeRef.new(shape: String, location_name: "Ipv6Address"))
    InstanceIpv6AddressRequest.struct_class = Types::InstanceIpv6AddressRequest

    InstanceIpv6Prefix.add_member(:ipv_6_prefix, Shapes::ShapeRef.new(shape: String, location_name: "ipv6Prefix"))
    InstanceIpv6Prefix.struct_class = Types::InstanceIpv6Prefix

    InstanceIpv6PrefixList.member = Shapes::ShapeRef.new(shape: InstanceIpv6Prefix, location_name: "item")

    InstanceList.member = Shapes::ShapeRef.new(shape: Instance, location_name: "item")

    InstanceMaintenanceOptions.add_member(:auto_recovery, Shapes::ShapeRef.new(shape: InstanceAutoRecoveryState, location_name: "autoRecovery"))
    InstanceMaintenanceOptions.struct_class = Types::InstanceMaintenanceOptions

    InstanceMaintenanceOptionsRequest.add_member(:auto_recovery, Shapes::ShapeRef.new(shape: InstanceAutoRecoveryState, location_name: "AutoRecovery"))
    InstanceMaintenanceOptionsRequest.struct_class = Types::InstanceMaintenanceOptionsRequest

    InstanceMarketOptionsRequest.add_member(:market_type, Shapes::ShapeRef.new(shape: MarketType, location_name: "MarketType"))
    InstanceMarketOptionsRequest.add_member(:spot_options, Shapes::ShapeRef.new(shape: SpotMarketOptions, location_name: "SpotOptions"))
    InstanceMarketOptionsRequest.struct_class = Types::InstanceMarketOptionsRequest

    InstanceMetadataDefaultsResponse.add_member(:http_tokens, Shapes::ShapeRef.new(shape: HttpTokensState, location_name: "httpTokens"))
    InstanceMetadataDefaultsResponse.add_member(:http_put_response_hop_limit, Shapes::ShapeRef.new(shape: BoxedInteger, location_name: "httpPutResponseHopLimit"))
    InstanceMetadataDefaultsResponse.add_member(:http_endpoint, Shapes::ShapeRef.new(shape: InstanceMetadataEndpointState, location_name: "httpEndpoint"))
    InstanceMetadataDefaultsResponse.add_member(:instance_metadata_tags, Shapes::ShapeRef.new(shape: InstanceMetadataTagsState, location_name: "instanceMetadataTags"))
    InstanceMetadataDefaultsResponse.add_member(:managed_by, Shapes::ShapeRef.new(shape: ManagedBy, location_name: "managedBy"))
    InstanceMetadataDefaultsResponse.add_member(:managed_exception_message, Shapes::ShapeRef.new(shape: String, location_name: "managedExceptionMessage"))
    InstanceMetadataDefaultsResponse.struct_class = Types::InstanceMetadataDefaultsResponse

    InstanceMetadataOptionsRequest.add_member(:http_tokens, Shapes::ShapeRef.new(shape: HttpTokensState, location_name: "HttpTokens"))
    InstanceMetadataOptionsRequest.add_member(:http_put_response_hop_limit, Shapes::ShapeRef.new(shape: Integer, location_name: "HttpPutResponseHopLimit"))
    InstanceMetadataOptionsRequest.add_member(:http_endpoint, Shapes::ShapeRef.new(shape: InstanceMetadataEndpointState, location_name: "HttpEndpoint"))
    InstanceMetadataOptionsRequest.add_member(:http_protocol_ipv_6, Shapes::ShapeRef.new(shape: InstanceMetadataProtocolState, location_name: "HttpProtocolIpv6"))
    InstanceMetadataOptionsRequest.add_member(:instance_metadata_tags, Shapes::ShapeRef.new(shape: InstanceMetadataTagsState, location_name: "InstanceMetadataTags"))
    InstanceMetadataOptionsRequest.struct_class = Types::InstanceMetadataOptionsRequest

    InstanceMetadataOptionsResponse.add_member(:state, Shapes::ShapeRef.new(shape: InstanceMetadataOptionsState, location_name: "state"))
    InstanceMetadataOptionsResponse.add_member(:http_tokens, Shapes::ShapeRef.new(shape: HttpTokensState, location_name: "httpTokens"))
    InstanceMetadataOptionsResponse.add_member(:http_put_response_hop_limit, Shapes::ShapeRef.new(shape: Integer, location_name: "httpPutResponseHopLimit"))
    InstanceMetadataOptionsResponse.add_member(:http_endpoint, Shapes::ShapeRef.new(shape: InstanceMetadataEndpointState, location_name: "httpEndpoint"))
    InstanceMetadataOptionsResponse.add_member(:http_protocol_ipv_6, Shapes::ShapeRef.new(shape: InstanceMetadataProtocolState, location_name: "httpProtocolIpv6"))
    InstanceMetadataOptionsResponse.add_member(:instance_metadata_tags, Shapes::ShapeRef.new(shape: InstanceMetadataTagsState, location_name: "instanceMetadataTags"))
    InstanceMetadataOptionsResponse.struct_class = Types::InstanceMetadataOptionsResponse

    InstanceMonitoring.add_member(:instance_id, Shapes::ShapeRef.new(shape: String, location_name: "instanceId"))
    InstanceMonitoring.add_member(:monitoring, Shapes::ShapeRef.new(shape: Monitoring, location_name: "monitoring"))
    InstanceMonitoring.struct_class = Types::InstanceMonitoring

    InstanceMonitoringList.member = Shapes::ShapeRef.new(shape: InstanceMonitoring, location_name: "item")

    InstanceNetworkInterface.add_member(:association, Shapes::ShapeRef.new(shape: InstanceNetworkInterfaceAssociation, location_name: "association"))
    InstanceNetworkInterface.add_member(:attachment, Shapes::ShapeRef.new(shape: InstanceNetworkInterfaceAttachment, location_name: "attachment"))
    InstanceNetworkInterface.add_member(:description, Shapes::ShapeRef.new(shape: String, location_name: "description"))
    InstanceNetworkInterface.add_member(:groups, Shapes::ShapeRef.new(shape: GroupIdentifierList, location_name: "groupSet"))
    InstanceNetworkInterface.add_member(:ipv_6_addresses, Shapes::ShapeRef.new(shape: InstanceIpv6AddressList, location_name: "ipv6AddressesSet"))
    InstanceNetworkInterface.add_member(:mac_address, Shapes::ShapeRef.new(shape: String, location_name: "macAddress"))
    InstanceNetworkInterface.add_member(:network_interface_id, Shapes::ShapeRef.new(shape: String, location_name: "networkInterfaceId"))
    InstanceNetworkInterface.add_member(:owner_id, Shapes::ShapeRef.new(shape: String, location_name: "ownerId"))
    InstanceNetworkInterface.add_member(:private_dns_name, Shapes::ShapeRef.new(shape: String, location_name: "privateDnsName"))
    InstanceNetworkInterface.add_member(:private_ip_address, Shapes::ShapeRef.new(shape: String, location_name: "privateIpAddress"))
    InstanceNetworkInterface.add_member(:private_ip_addresses, Shapes::ShapeRef.new(shape: InstancePrivateIpAddressList, location_name: "privateIpAddressesSet"))
    InstanceNetworkInterface.add_member(:source_dest_check, Shapes::ShapeRef.new(shape: Boolean, location_name: "sourceDestCheck"))
    InstanceNetworkInterface.add_member(:status, Shapes::ShapeRef.new(shape: NetworkInterfaceStatus, location_name: "status"))
    InstanceNetworkInterface.add_member(:subnet_id, Shapes::ShapeRef.new(shape: String, location_name: "subnetId"))
    InstanceNetworkInterface.add_member(:vpc_id, Shapes::ShapeRef.new(shape: String, location_name: "vpcId"))
    InstanceNetworkInterface.add_member(:interface_type, Shapes::ShapeRef.new(shape: String, location_name: "interfaceType"))
    InstanceNetworkInterface.add_member(:ipv_4_prefixes, Shapes::ShapeRef.new(shape: InstanceIpv4PrefixList, location_name: "ipv4PrefixSet"))
    InstanceNetworkInterface.add_member(:ipv_6_prefixes, Shapes::ShapeRef.new(shape: InstanceIpv6PrefixList, location_name: "ipv6PrefixSet"))
    InstanceNetworkInterface.add_member(:connection_tracking_configuration, Shapes::ShapeRef.new(shape: ConnectionTrackingSpecificationResponse, location_name: "connectionTrackingConfiguration"))
    InstanceNetworkInterface.add_member(:operator, Shapes::ShapeRef.new(shape: OperatorResponse, location_name: "operator"))
    InstanceNetworkInterface.struct_class = Types::InstanceNetworkInterface

    InstanceNetworkInterfaceAssociation.add_member(:carrier_ip, Shapes::ShapeRef.new(shape: String, location_name: "carrierIp"))
    InstanceNetworkInterfaceAssociation.add_member(:customer_owned_ip, Shapes::ShapeRef.new(shape: String, location_name: "customerOwnedIp"))
    InstanceNetworkInterfaceAssociation.add_member(:ip_owner_id, Shapes::ShapeRef.new(shape: String, location_name: "ipOwnerId"))
    InstanceNetworkInterfaceAssociation.add_member(:public_dns_name, Shapes::ShapeRef.new(shape: String, location_name: "publicDnsName"))
    InstanceNetworkInterfaceAssociation.add_member(:public_ip, Shapes::ShapeRef.new(shape: String, location_name: "publicIp"))
    InstanceNetworkInterfaceAssociation.struct_class = Types::InstanceNetworkInterfaceAssociation

    InstanceNetworkInterfaceAttachment.add_member(:attach_time, Shapes::ShapeRef.new(shape: DateTime, location_name: "attachTime"))
    InstanceNetworkInterfaceAttachment.add_member(:attachment_id, Shapes::ShapeRef.new(shape: String, location_name: "attachmentId"))
    InstanceNetworkInterfaceAttachment.add_member(:delete_on_termination, Shapes::ShapeRef.new(shape: Boolean, location_name: "deleteOnTermination"))
    InstanceNetworkInterfaceAttachment.add_member(:device_index, Shapes::ShapeRef.new(shape: Integer, location_name: "deviceIndex"))
    InstanceNetworkInterfaceAttachment.add_member(:status, Shapes::ShapeRef.new(shape: AttachmentStatus, location_name: "status"))
    InstanceNetworkInterfaceAttachment.add_member(:network_card_index, Shapes::ShapeRef.new(shape: Integer, location_name: "networkCardIndex"))
    InstanceNetworkInterfaceAttachment.add_member(:ena_srd_specification, Shapes::ShapeRef.new(shape: InstanceAttachmentEnaSrdSpecification, location_name: "enaSrdSpecification"))
    InstanceNetworkInterfaceAttachment.struct_class = Types::InstanceNetworkInterfaceAttachment

    InstanceNetworkInterfaceList.member = Shapes::ShapeRef.new(shape: InstanceNetworkInterface, location_name: "item")

    InstanceNetworkInterfaceSpecification.add_member(:associate_public_ip_address, Shapes::ShapeRef.new(shape: Boolean, location_name: "associatePublicIpAddress"))
    InstanceNetworkInterfaceSpecification.add_member(:delete_on_termination, Shapes::ShapeRef.new(shape: Boolean, location_name: "deleteOnTermination"))
    InstanceNetworkInterfaceSpecification.add_member(:description, Shapes::ShapeRef.new(shape: String, location_name: "description"))
    InstanceNetworkInterfaceSpecification.add_member(:device_index, Shapes::ShapeRef.new(shape: Integer, location_name: "deviceIndex"))
    InstanceNetworkInterfaceSpecification.add_member(:groups, Shapes::ShapeRef.new(shape: SecurityGroupIdStringList, location_name: "SecurityGroupId"))
    InstanceNetworkInterfaceSpecification.add_member(:ipv_6_address_count, Shapes::ShapeRef.new(shape: Integer, location_name: "ipv6AddressCount"))
    InstanceNetworkInterfaceSpecification.add_member(:ipv_6_addresses, Shapes::ShapeRef.new(shape: InstanceIpv6AddressList, location_name: "ipv6AddressesSet", metadata: {"queryName"=>"Ipv6Addresses"}))
    InstanceNetworkInterfaceSpecification.add_member(:network_interface_id, Shapes::ShapeRef.new(shape: NetworkInterfaceId, location_name: "networkInterfaceId"))
    InstanceNetworkInterfaceSpecification.add_member(:private_ip_address, Shapes::ShapeRef.new(shape: String, location_name: "privateIpAddress"))
    InstanceNetworkInterfaceSpecification.add_member(:private_ip_addresses, Shapes::ShapeRef.new(shape: PrivateIpAddressSpecificationList, location_name: "privateIpAddressesSet", metadata: {"queryName"=>"PrivateIpAddresses"}))
    InstanceNetworkInterfaceSpecification.add_member(:secondary_private_ip_address_count, Shapes::ShapeRef.new(shape: Integer, location_name: "secondaryPrivateIpAddressCount"))
    InstanceNetworkInterfaceSpecification.add_member(:subnet_id, Shapes::ShapeRef.new(shape: String, location_name: "subnetId"))
    InstanceNetworkInterfaceSpecification.add_member(:associate_carrier_ip_address, Shapes::ShapeRef.new(shape: Boolean, location_name: "AssociateCarrierIpAddress"))
    InstanceNetworkInterfaceSpecification.add_member(:interface_type, Shapes::ShapeRef.new(shape: String, location_name: "InterfaceType"))
    InstanceNetworkInterfaceSpecification.add_member(:network_card_index, Shapes::ShapeRef.new(shape: Integer, location_name: "NetworkCardIndex"))
    InstanceNetworkInterfaceSpecification.add_member(:ipv_4_prefixes, Shapes::ShapeRef.new(shape: Ipv4PrefixList, location_name: "Ipv4Prefix"))
    InstanceNetworkInterfaceSpecification.add_member(:ipv_4_prefix_count, Shapes::ShapeRef.new(shape: Integer, location_name: "Ipv4PrefixCount"))
    InstanceNetworkInterfaceSpecification.add_member(:ipv_6_prefixes, Shapes::ShapeRef.new(shape: Ipv6PrefixList, location_name: "Ipv6Prefix"))
    InstanceNetworkInterfaceSpecification.add_member(:ipv_6_prefix_count, Shapes::ShapeRef.new(shape: Integer, location_name: "Ipv6PrefixCount"))
    InstanceNetworkInterfaceSpecification.add_member(:primary_ipv_6, Shapes::ShapeRef.new(shape: Boolean, location_name: "PrimaryIpv6"))
    InstanceNetworkInterfaceSpecification.add_member(:ena_srd_specification, Shapes::ShapeRef.new(shape: EnaSrdSpecificationRequest, location_name: "EnaSrdSpecification"))
    InstanceNetworkInterfaceSpecification.add_member(:connection_tracking_specification, Shapes::ShapeRef.new(shape: ConnectionTrackingSpecificationRequest, location_name: "ConnectionTrackingSpecification"))
    InstanceNetworkInterfaceSpecification.struct_class = Types::InstanceNetworkInterfaceSpecification

    InstanceNetworkInterfaceSpecificationList.member = Shapes::ShapeRef.new(shape: InstanceNetworkInterfaceSpecification, location_name: "item")

    InstanceNetworkPerformanceOptions.add_member(:bandwidth_weighting, Shapes::ShapeRef.new(shape: InstanceBandwidthWeighting, location_name: "bandwidthWeighting"))
    InstanceNetworkPerformanceOptions.struct_class = Types::InstanceNetworkPerformanceOptions

    InstanceNetworkPerformanceOptionsRequest.add_member(:bandwidth_weighting, Shapes::ShapeRef.new(shape: InstanceBandwidthWeighting, location_name: "BandwidthWeighting"))
    InstanceNetworkPerformanceOptionsRequest.struct_class = Types::InstanceNetworkPerformanceOptionsRequest

    InstancePrivateIpAddress.add_member(:association, Shapes::ShapeRef.new(shape: InstanceNetworkInterfaceAssociation, location_name: "association"))
    InstancePrivateIpAddress.add_member(:primary, Shapes::ShapeRef.new(shape: Boolean, location_name: "primary"))
    InstancePrivateIpAddress.add_member(:private_dns_name, Shapes::ShapeRef.new(shape: String, location_name: "privateDnsName"))
    InstancePrivateIpAddress.add_member(:private_ip_address, Shapes::ShapeRef.new(shape: String, location_name: "privateIpAddress"))
    InstancePrivateIpAddress.struct_class = Types::InstancePrivateIpAddress

    InstancePrivateIpAddressList.member = Shapes::ShapeRef.new(shape: InstancePrivateIpAddress, location_name: "item")

    InstanceRequirements.add_member(:v_cpu_count, Shapes::ShapeRef.new(shape: VCpuCountRange, location_name: "vCpuCount"))
    InstanceRequirements.add_member(:memory_mi_b, Shapes::ShapeRef.new(shape: MemoryMiB, location_name: "memoryMiB"))
    InstanceRequirements.add_member(:cpu_manufacturers, Shapes::ShapeRef.new(shape: CpuManufacturerSet, location_name: "cpuManufacturerSet"))
    InstanceRequirements.add_member(:memory_gi_b_per_v_cpu, Shapes::ShapeRef.new(shape: MemoryGiBPerVCpu, location_name: "memoryGiBPerVCpu"))
    InstanceRequirements.add_member(:excluded_instance_types, Shapes::ShapeRef.new(shape: ExcludedInstanceTypeSet, location_name: "excludedInstanceTypeSet"))
    InstanceRequirements.add_member(:instance_generations, Shapes::ShapeRef.new(shape: InstanceGenerationSet, location_name: "instanceGenerationSet"))
    InstanceRequirements.add_member(:spot_max_price_percentage_over_lowest_price, Shapes::ShapeRef.new(shape: Integer, location_name: "spotMaxPricePercentageOverLowestPrice"))
    InstanceRequirements.add_member(:on_demand_max_price_percentage_over_lowest_price, Shapes::ShapeRef.new(shape: Integer, location_name: "onDemandMaxPricePercentageOverLowestPrice"))
    InstanceRequirements.add_member(:bare_metal, Shapes::ShapeRef.new(shape: BareMetal, location_name: "bareMetal"))
    InstanceRequirements.add_member(:burstable_performance, Shapes::ShapeRef.new(shape: BurstablePerformance, location_name: "burstablePerformance"))
    InstanceRequirements.add_member(:require_hibernate_support, Shapes::ShapeRef.new(shape: Boolean, location_name: "requireHibernateSupport"))
    InstanceRequirements.add_member(:network_interface_count, Shapes::ShapeRef.new(shape: NetworkInterfaceCount, location_name: "networkInterfaceCount"))
    InstanceRequirements.add_member(:local_storage, Shapes::ShapeRef.new(shape: LocalStorage, location_name: "localStorage"))
    InstanceRequirements.add_member(:local_storage_types, Shapes::ShapeRef.new(shape: LocalStorageTypeSet, location_name: "localStorageTypeSet"))
    InstanceRequirements.add_member(:total_local_storage_gb, Shapes::ShapeRef.new(shape: TotalLocalStorageGB, location_name: "totalLocalStorageGB"))
    InstanceRequirements.add_member(:baseline_ebs_bandwidth_mbps, Shapes::ShapeRef.new(shape: BaselineEbsBandwidthMbps, location_name: "baselineEbsBandwidthMbps"))
    InstanceRequirements.add_member(:accelerator_types, Shapes::ShapeRef.new(shape: AcceleratorTypeSet, location_name: "acceleratorTypeSet"))
    InstanceRequirements.add_member(:accelerator_count, Shapes::ShapeRef.new(shape: AcceleratorCount, location_name: "acceleratorCount"))
    InstanceRequirements.add_member(:accelerator_manufacturers, Shapes::ShapeRef.new(shape: AcceleratorManufacturerSet, location_name: "acceleratorManufacturerSet"))
    InstanceRequirements.add_member(:accelerator_names, Shapes::ShapeRef.new(shape: AcceleratorNameSet, location_name: "acceleratorNameSet"))
    InstanceRequirements.add_member(:accelerator_total_memory_mi_b, Shapes::ShapeRef.new(shape: AcceleratorTotalMemoryMiB, location_name: "acceleratorTotalMemoryMiB"))
    InstanceRequirements.add_member(:network_bandwidth_gbps, Shapes::ShapeRef.new(shape: NetworkBandwidthGbps, location_name: "networkBandwidthGbps"))
    InstanceRequirements.add_member(:allowed_instance_types, Shapes::ShapeRef.new(shape: AllowedInstanceTypeSet, location_name: "allowedInstanceTypeSet"))
    InstanceRequirements.add_member(:max_spot_price_as_percentage_of_optimal_on_demand_price, Shapes::ShapeRef.new(shape: Integer, location_name: "maxSpotPriceAsPercentageOfOptimalOnDemandPrice"))
    InstanceRequirements.add_member(:baseline_performance_factors, Shapes::ShapeRef.new(shape: BaselinePerformanceFactors, location_name: "baselinePerformanceFactors"))
    InstanceRequirements.struct_class = Types::InstanceRequirements

    InstanceRequirementsRequest.add_member(:v_cpu_count, Shapes::ShapeRef.new(shape: VCpuCountRangeRequest, required: true, location_name: "VCpuCount"))
    InstanceRequirementsRequest.add_member(:memory_mi_b, Shapes::ShapeRef.new(shape: MemoryMiBRequest, required: true, location_name: "MemoryMiB"))
    InstanceRequirementsRequest.add_member(:cpu_manufacturers, Shapes::ShapeRef.new(shape: CpuManufacturerSet, location_name: "CpuManufacturer"))
    InstanceRequirementsRequest.add_member(:memory_gi_b_per_v_cpu, Shapes::ShapeRef.new(shape: MemoryGiBPerVCpuRequest, location_name: "MemoryGiBPerVCpu"))
    InstanceRequirementsRequest.add_member(:excluded_instance_types, Shapes::ShapeRef.new(shape: ExcludedInstanceTypeSet, location_name: "ExcludedInstanceType"))
    InstanceRequirementsRequest.add_member(:instance_generations, Shapes::ShapeRef.new(shape: InstanceGenerationSet, location_name: "InstanceGeneration"))
    InstanceRequirementsRequest.add_member(:spot_max_price_percentage_over_lowest_price, Shapes::ShapeRef.new(shape: Integer, location_name: "SpotMaxPricePercentageOverLowestPrice"))
    InstanceRequirementsRequest.add_member(:on_demand_max_price_percentage_over_lowest_price, Shapes::ShapeRef.new(shape: Integer, location_name: "OnDemandMaxPricePercentageOverLowestPrice"))
    InstanceRequirementsRequest.add_member(:bare_metal, Shapes::ShapeRef.new(shape: BareMetal, location_name: "BareMetal"))
    InstanceRequirementsRequest.add_member(:burstable_performance, Shapes::ShapeRef.new(shape: BurstablePerformance, location_name: "BurstablePerformance"))
    InstanceRequirementsRequest.add_member(:require_hibernate_support, Shapes::ShapeRef.new(shape: Boolean, location_name: "RequireHibernateSupport"))
    InstanceRequirementsRequest.add_member(:network_interface_count, Shapes::ShapeRef.new(shape: NetworkInterfaceCountRequest, location_name: "NetworkInterfaceCount"))
    InstanceRequirementsRequest.add_member(:local_storage, Shapes::ShapeRef.new(shape: LocalStorage, location_name: "LocalStorage"))
    InstanceRequirementsRequest.add_member(:local_storage_types, Shapes::ShapeRef.new(shape: LocalStorageTypeSet, location_name: "LocalStorageType"))
    InstanceRequirementsRequest.add_member(:total_local_storage_gb, Shapes::ShapeRef.new(shape: TotalLocalStorageGBRequest, location_name: "TotalLocalStorageGB"))
    InstanceRequirementsRequest.add_member(:baseline_ebs_bandwidth_mbps, Shapes::ShapeRef.new(shape: BaselineEbsBandwidthMbpsRequest, location_name: "BaselineEbsBandwidthMbps"))
    InstanceRequirementsRequest.add_member(:accelerator_types, Shapes::ShapeRef.new(shape: AcceleratorTypeSet, location_name: "AcceleratorType"))
    InstanceRequirementsRequest.add_member(:accelerator_count, Shapes::ShapeRef.new(shape: AcceleratorCountRequest, location_name: "AcceleratorCount"))
    InstanceRequirementsRequest.add_member(:accelerator_manufacturers, Shapes::ShapeRef.new(shape: AcceleratorManufacturerSet, location_name: "AcceleratorManufacturer"))
    InstanceRequirementsRequest.add_member(:accelerator_names, Shapes::ShapeRef.new(shape: AcceleratorNameSet, location_name: "AcceleratorName"))
    InstanceRequirementsRequest.add_member(:accelerator_total_memory_mi_b, Shapes::ShapeRef.new(shape: AcceleratorTotalMemoryMiBRequest, location_name: "AcceleratorTotalMemoryMiB"))
    InstanceRequirementsRequest.add_member(:network_bandwidth_gbps, Shapes::ShapeRef.new(shape: NetworkBandwidthGbpsRequest, location_name: "NetworkBandwidthGbps"))
    InstanceRequirementsRequest.add_member(:allowed_instance_types, Shapes::ShapeRef.new(shape: AllowedInstanceTypeSet, location_name: "AllowedInstanceType"))
    InstanceRequirementsRequest.add_member(:max_spot_price_as_percentage_of_optimal_on_demand_price, Shapes::ShapeRef.new(shape: Integer, location_name: "MaxSpotPriceAsPercentageOfOptimalOnDemandPrice"))
    InstanceRequirementsRequest.add_member(:baseline_performance_factors, Shapes::ShapeRef.new(shape: BaselinePerformanceFactorsRequest, location_name: "BaselinePerformanceFactors"))
    InstanceRequirementsRequest.struct_class = Types::InstanceRequirementsRequest

    InstanceRequirementsWithMetadataRequest.add_member(:architecture_types, Shapes::ShapeRef.new(shape: ArchitectureTypeSet, location_name: "ArchitectureType"))
    InstanceRequirementsWithMetadataRequest.add_member(:virtualization_types, Shapes::ShapeRef.new(shape: VirtualizationTypeSet, location_name: "VirtualizationType"))
    InstanceRequirementsWithMetadataRequest.add_member(:instance_requirements, Shapes::ShapeRef.new(shape: InstanceRequirementsRequest, location_name: "InstanceRequirements"))
    InstanceRequirementsWithMetadataRequest.struct_class = Types::InstanceRequirementsWithMetadataRequest

    InstanceSet.member = Shapes::ShapeRef.new(shape: InstanceTopology, location_name: "item")

    InstanceSpecification.add_member(:instance_id, Shapes::ShapeRef.new(shape: InstanceIdWithVolumeResolver, required: true, location_name: "InstanceId"))
    InstanceSpecification.add_member(:exclude_boot_volume, Shapes::ShapeRef.new(shape: Boolean, location_name: "ExcludeBootVolume"))
    InstanceSpecification.add_member(:exclude_data_volume_ids, Shapes::ShapeRef.new(shape: VolumeIdStringList, location_name: "ExcludeDataVolumeId"))
    InstanceSpecification.struct_class = Types::InstanceSpecification

    InstanceState.add_member(:code, Shapes::ShapeRef.new(shape: Integer, location_name: "code"))
    InstanceState.add_member(:name, Shapes::ShapeRef.new(shape: InstanceStateName, location_name: "name"))
    InstanceState.struct_class = Types::InstanceState

    InstanceStateChange.add_member(:instance_id, Shapes::ShapeRef.new(shape: String, location_name: "instanceId"))
    InstanceStateChange.add_member(:current_state, Shapes::ShapeRef.new(shape: InstanceState, location_name: "currentState"))
    InstanceStateChange.add_member(:previous_state, Shapes::ShapeRef.new(shape: InstanceState, location_name: "previousState"))
    InstanceStateChange.struct_class = Types::InstanceStateChange

    InstanceStateChangeList.member = Shapes::ShapeRef.new(shape: InstanceStateChange, location_name: "item")

    InstanceStatus.add_member(:availability_zone, Shapes::ShapeRef.new(shape: String, location_name: "availabilityZone"))
    InstanceStatus.add_member(:outpost_arn, Shapes::ShapeRef.new(shape: String, location_name: "outpostArn"))
    InstanceStatus.add_member(:operator, Shapes::ShapeRef.new(shape: OperatorResponse, location_name: "operator"))
    InstanceStatus.add_member(:events, Shapes::ShapeRef.new(shape: InstanceStatusEventList, location_name: "eventsSet"))
    InstanceStatus.add_member(:instance_id, Shapes::ShapeRef.new(shape: String, location_name: "instanceId"))
    InstanceStatus.add_member(:instance_state, Shapes::ShapeRef.new(shape: InstanceState, location_name: "instanceState"))
    InstanceStatus.add_member(:instance_status, Shapes::ShapeRef.new(shape: InstanceStatusSummary, location_name: "instanceStatus"))
    InstanceStatus.add_member(:system_status, Shapes::ShapeRef.new(shape: InstanceStatusSummary, location_name: "systemStatus"))
    InstanceStatus.add_member(:attached_ebs_status, Shapes::ShapeRef.new(shape: EbsStatusSummary, location_name: "attachedEbsStatus"))
    InstanceStatus.struct_class = Types::InstanceStatus

    InstanceStatusDetails.add_member(:impaired_since, Shapes::ShapeRef.new(shape: DateTime, location_name: "impairedSince"))
    InstanceStatusDetails.add_member(:name, Shapes::ShapeRef.new(shape: StatusName, location_name: "name"))
    InstanceStatusDetails.add_member(:status, Shapes::ShapeRef.new(shape: StatusType, location_name: "status"))
    InstanceStatusDetails.struct_class = Types::InstanceStatusDetails

    InstanceStatusDetailsList.member = Shapes::ShapeRef.new(shape: InstanceStatusDetails, location_name: "item")

    InstanceStatusEvent.add_member(:instance_event_id, Shapes::ShapeRef.new(shape: InstanceEventId, location_name: "instanceEventId"))
    InstanceStatusEvent.add_member(:code, Shapes::ShapeRef.new(shape: EventCode, location_name: "code"))
    InstanceStatusEvent.add_member(:description, Shapes::ShapeRef.new(shape: String, location_name: "description"))
    InstanceStatusEvent.add_member(:not_after, Shapes::ShapeRef.new(shape: DateTime, location_name: "notAfter"))
    InstanceStatusEvent.add_member(:not_before, Shapes::ShapeRef.new(shape: DateTime, location_name: "notBefore"))
    InstanceStatusEvent.add_member(:not_before_deadline, Shapes::ShapeRef.new(shape: DateTime, location_name: "notBeforeDeadline"))
    InstanceStatusEvent.struct_class = Types::InstanceStatusEvent

    InstanceStatusEventList.member = Shapes::ShapeRef.new(shape: InstanceStatusEvent, location_name: "item")

    InstanceStatusList.member = Shapes::ShapeRef.new(shape: InstanceStatus, location_name: "item")

    InstanceStatusSummary.add_member(:details, Shapes::ShapeRef.new(shape: InstanceStatusDetailsList, location_name: "details"))
    InstanceStatusSummary.add_member(:status, Shapes::ShapeRef.new(shape: SummaryStatus, location_name: "status"))
    InstanceStatusSummary.struct_class = Types::InstanceStatusSummary

    InstanceStorageInfo.add_member(:total_size_in_gb, Shapes::ShapeRef.new(shape: DiskSize, location_name: "totalSizeInGB"))
    InstanceStorageInfo.add_member(:disks, Shapes::ShapeRef.new(shape: DiskInfoList, location_name: "disks"))
    InstanceStorageInfo.add_member(:nvme_support, Shapes::ShapeRef.new(shape: EphemeralNvmeSupport, location_name: "nvmeSupport"))
    InstanceStorageInfo.add_member(:encryption_support, Shapes::ShapeRef.new(shape: InstanceStorageEncryptionSupport, location_name: "encryptionSupport"))
    InstanceStorageInfo.struct_class = Types::InstanceStorageInfo

    InstanceTagKeySet.member = Shapes::ShapeRef.new(shape: String, location_name: "item")

    InstanceTagNotificationAttribute.add_member(:instance_tag_keys, Shapes::ShapeRef.new(shape: InstanceTagKeySet, location_name: "instanceTagKeySet"))
    InstanceTagNotificationAttribute.add_member(:include_all_tags_of_instance, Shapes::ShapeRef.new(shape: Boolean, location_name: "includeAllTagsOfInstance"))
    InstanceTagNotificationAttribute.struct_class = Types::InstanceTagNotificationAttribute

    InstanceTopology.add_member(:instance_id, Shapes::ShapeRef.new(shape: String, location_name: "instanceId"))
    InstanceTopology.add_member(:instance_type, Shapes::ShapeRef.new(shape: String, location_name: "instanceType"))
    InstanceTopology.add_member(:group_name, Shapes::ShapeRef.new(shape: String, location_name: "groupName"))
    InstanceTopology.add_member(:network_nodes, Shapes::ShapeRef.new(shape: NetworkNodesList, location_name: "networkNodeSet"))
    InstanceTopology.add_member(:availability_zone, Shapes::ShapeRef.new(shape: String, location_name: "availabilityZone"))
    InstanceTopology.add_member(:zone_id, Shapes::ShapeRef.new(shape: String, location_name: "zoneId"))
    InstanceTopology.struct_class = Types::InstanceTopology

    InstanceTypeInfo.add_member(:instance_type, Shapes::ShapeRef.new(shape: InstanceType, location_name: "instanceType"))
    InstanceTypeInfo.add_member(:current_generation, Shapes::ShapeRef.new(shape: CurrentGenerationFlag, location_name: "currentGeneration"))
    InstanceTypeInfo.add_member(:free_tier_eligible, Shapes::ShapeRef.new(shape: FreeTierEligibleFlag, location_name: "freeTierEligible"))
    InstanceTypeInfo.add_member(:supported_usage_classes, Shapes::ShapeRef.new(shape: UsageClassTypeList, location_name: "supportedUsageClasses"))
    InstanceTypeInfo.add_member(:supported_root_device_types, Shapes::ShapeRef.new(shape: RootDeviceTypeList, location_name: "supportedRootDeviceTypes"))
    InstanceTypeInfo.add_member(:supported_virtualization_types, Shapes::ShapeRef.new(shape: VirtualizationTypeList, location_name: "supportedVirtualizationTypes"))
    InstanceTypeInfo.add_member(:bare_metal, Shapes::ShapeRef.new(shape: BareMetalFlag, location_name: "bareMetal"))
    InstanceTypeInfo.add_member(:hypervisor, Shapes::ShapeRef.new(shape: InstanceTypeHypervisor, location_name: "hypervisor"))
    InstanceTypeInfo.add_member(:processor_info, Shapes::ShapeRef.new(shape: ProcessorInfo, location_name: "processorInfo"))
    InstanceTypeInfo.add_member(:v_cpu_info, Shapes::ShapeRef.new(shape: VCpuInfo, location_name: "vCpuInfo"))
    InstanceTypeInfo.add_member(:memory_info, Shapes::ShapeRef.new(shape: MemoryInfo, location_name: "memoryInfo"))
    InstanceTypeInfo.add_member(:instance_storage_supported, Shapes::ShapeRef.new(shape: InstanceStorageFlag, location_name: "instanceStorageSupported"))
    InstanceTypeInfo.add_member(:instance_storage_info, Shapes::ShapeRef.new(shape: InstanceStorageInfo, location_name: "instanceStorageInfo"))
    InstanceTypeInfo.add_member(:ebs_info, Shapes::ShapeRef.new(shape: EbsInfo, location_name: "ebsInfo"))
    InstanceTypeInfo.add_member(:network_info, Shapes::ShapeRef.new(shape: NetworkInfo, location_name: "networkInfo"))
    InstanceTypeInfo.add_member(:gpu_info, Shapes::ShapeRef.new(shape: GpuInfo, location_name: "gpuInfo"))
    InstanceTypeInfo.add_member(:fpga_info, Shapes::ShapeRef.new(shape: FpgaInfo, location_name: "fpgaInfo"))
    InstanceTypeInfo.add_member(:placement_group_info, Shapes::ShapeRef.new(shape: PlacementGroupInfo, location_name: "placementGroupInfo"))
    InstanceTypeInfo.add_member(:inference_accelerator_info, Shapes::ShapeRef.new(shape: InferenceAcceleratorInfo, location_name: "inferenceAcceleratorInfo"))
    InstanceTypeInfo.add_member(:hibernation_supported, Shapes::ShapeRef.new(shape: HibernationFlag, location_name: "hibernationSupported"))
    InstanceTypeInfo.add_member(:burstable_performance_supported, Shapes::ShapeRef.new(shape: BurstablePerformanceFlag, location_name: "burstablePerformanceSupported"))
    InstanceTypeInfo.add_member(:dedicated_hosts_supported, Shapes::ShapeRef.new(shape: DedicatedHostFlag, location_name: "dedicatedHostsSupported"))
    InstanceTypeInfo.add_member(:auto_recovery_supported, Shapes::ShapeRef.new(shape: AutoRecoveryFlag, location_name: "autoRecoverySupported"))
    InstanceTypeInfo.add_member(:supported_boot_modes, Shapes::ShapeRef.new(shape: BootModeTypeList, location_name: "supportedBootModes"))
    InstanceTypeInfo.add_member(:nitro_enclaves_support, Shapes::ShapeRef.new(shape: NitroEnclavesSupport, location_name: "nitroEnclavesSupport"))
    InstanceTypeInfo.add_member(:nitro_tpm_support, Shapes::ShapeRef.new(shape: NitroTpmSupport, location_name: "nitroTpmSupport"))
    InstanceTypeInfo.add_member(:nitro_tpm_info, Shapes::ShapeRef.new(shape: NitroTpmInfo, location_name: "nitroTpmInfo"))
    InstanceTypeInfo.add_member(:media_accelerator_info, Shapes::ShapeRef.new(shape: MediaAcceleratorInfo, location_name: "mediaAcceleratorInfo"))
    InstanceTypeInfo.add_member(:neuron_info, Shapes::ShapeRef.new(shape: NeuronInfo, location_name: "neuronInfo"))
    InstanceTypeInfo.add_member(:phc_support, Shapes::ShapeRef.new(shape: PhcSupport, location_name: "phcSupport"))
    InstanceTypeInfo.struct_class = Types::InstanceTypeInfo

    InstanceTypeInfoFromInstanceRequirements.add_member(:instance_type, Shapes::ShapeRef.new(shape: String, location_name: "instanceType"))
    InstanceTypeInfoFromInstanceRequirements.struct_class = Types::InstanceTypeInfoFromInstanceRequirements

    InstanceTypeInfoFromInstanceRequirementsSet.member = Shapes::ShapeRef.new(shape: InstanceTypeInfoFromInstanceRequirements, location_name: "item")

    InstanceTypeInfoList.member = Shapes::ShapeRef.new(shape: InstanceTypeInfo, location_name: "item")

    InstanceTypeList.member = Shapes::ShapeRef.new(shape: InstanceType)

    InstanceTypeOffering.add_member(:instance_type, Shapes::ShapeRef.new(shape: InstanceType, location_name: "instanceType"))
    InstanceTypeOffering.add_member(:location_type, Shapes::ShapeRef.new(shape: LocationType, location_name: "locationType"))
    InstanceTypeOffering.add_member(:location, Shapes::ShapeRef.new(shape: Location, location_name: "location"))
    InstanceTypeOffering.struct_class = Types::InstanceTypeOffering

    InstanceTypeOfferingsList.member = Shapes::ShapeRef.new(shape: InstanceTypeOffering, location_name: "item")

    InstanceTypes.member = Shapes::ShapeRef.new(shape: String)

    InstanceTypesList.member = Shapes::ShapeRef.new(shape: String, location_name: "item")

    InstanceUsage.add_member(:account_id, Shapes::ShapeRef.new(shape: String, location_name: "accountId"))
    InstanceUsage.add_member(:used_instance_count, Shapes::ShapeRef.new(shape: Integer, location_name: "usedInstanceCount"))
    InstanceUsage.struct_class = Types::InstanceUsage

    InstanceUsageSet.member = Shapes::ShapeRef.new(shape: InstanceUsage, location_name: "item")

    IntegrateServices.add_member(:athena_integrations, Shapes::ShapeRef.new(shape: AthenaIntegrationsSet, location_name: "AthenaIntegration"))
    IntegrateServices.struct_class = Types::IntegrateServices

    InternetGateway.add_member(:attachments, Shapes::ShapeRef.new(shape: InternetGatewayAttachmentList, location_name: "attachmentSet"))
    InternetGateway.add_member(:internet_gateway_id, Shapes::ShapeRef.new(shape: String, location_name: "internetGatewayId"))
    InternetGateway.add_member(:owner_id, Shapes::ShapeRef.new(shape: String, location_name: "ownerId"))
    InternetGateway.add_member(:tags, Shapes::ShapeRef.new(shape: TagList, location_name: "tagSet"))
    InternetGateway.struct_class = Types::InternetGateway

    InternetGatewayAttachment.add_member(:state, Shapes::ShapeRef.new(shape: AttachmentStatus, location_name: "state"))
    InternetGatewayAttachment.add_member(:vpc_id, Shapes::ShapeRef.new(shape: String, location_name: "vpcId"))
    InternetGatewayAttachment.struct_class = Types::InternetGatewayAttachment

    InternetGatewayAttachmentList.member = Shapes::ShapeRef.new(shape: InternetGatewayAttachment, location_name: "item")

    InternetGatewayIdList.member = Shapes::ShapeRef.new(shape: InternetGatewayId, location_name: "item")

    InternetGatewayList.member = Shapes::ShapeRef.new(shape: InternetGateway, location_name: "item")

    IpAddressList.member = Shapes::ShapeRef.new(shape: IpAddress, location_name: "item")

    IpList.member = Shapes::ShapeRef.new(shape: String, location_name: "item")

    IpPermission.add_member(:ip_protocol, Shapes::ShapeRef.new(shape: String, location_name: "ipProtocol"))
    IpPermission.add_member(:from_port, Shapes::ShapeRef.new(shape: Integer, location_name: "fromPort"))
    IpPermission.add_member(:to_port, Shapes::ShapeRef.new(shape: Integer, location_name: "toPort"))
    IpPermission.add_member(:user_id_group_pairs, Shapes::ShapeRef.new(shape: UserIdGroupPairList, location_name: "groups"))
    IpPermission.add_member(:ip_ranges, Shapes::ShapeRef.new(shape: IpRangeList, location_name: "ipRanges"))
    IpPermission.add_member(:ipv_6_ranges, Shapes::ShapeRef.new(shape: Ipv6RangeList, location_name: "ipv6Ranges"))
    IpPermission.add_member(:prefix_list_ids, Shapes::ShapeRef.new(shape: PrefixListIdList, location_name: "prefixListIds"))
    IpPermission.struct_class = Types::IpPermission

    IpPermissionList.member = Shapes::ShapeRef.new(shape: IpPermission, location_name: "item")

    IpPrefixList.member = Shapes::ShapeRef.new(shape: String, location_name: "item")

    IpRange.add_member(:description, Shapes::ShapeRef.new(shape: String, location_name: "description"))
    IpRange.add_member(:cidr_ip, Shapes::ShapeRef.new(shape: String, location_name: "cidrIp"))
    IpRange.struct_class = Types::IpRange

    IpRangeList.member = Shapes::ShapeRef.new(shape: IpRange, location_name: "item")

    IpRanges.member = Shapes::ShapeRef.new(shape: String, location_name: "item")

    Ipam.add_member(:owner_id, Shapes::ShapeRef.new(shape: String, location_name: "ownerId"))
    Ipam.add_member(:ipam_id, Shapes::ShapeRef.new(shape: IpamId, location_name: "ipamId"))
    Ipam.add_member(:ipam_arn, Shapes::ShapeRef.new(shape: ResourceArn, location_name: "ipamArn"))
    Ipam.add_member(:ipam_region, Shapes::ShapeRef.new(shape: String, location_name: "ipamRegion"))
    Ipam.add_member(:public_default_scope_id, Shapes::ShapeRef.new(shape: IpamScopeId, location_name: "publicDefaultScopeId"))
    Ipam.add_member(:private_default_scope_id, Shapes::ShapeRef.new(shape: IpamScopeId, location_name: "privateDefaultScopeId"))
    Ipam.add_member(:scope_count, Shapes::ShapeRef.new(shape: Integer, location_name: "scopeCount"))
    Ipam.add_member(:description, Shapes::ShapeRef.new(shape: String, location_name: "description"))
    Ipam.add_member(:operating_regions, Shapes::ShapeRef.new(shape: IpamOperatingRegionSet, location_name: "operatingRegionSet"))
    Ipam.add_member(:state, Shapes::ShapeRef.new(shape: IpamState, location_name: "state"))
    Ipam.add_member(:tags, Shapes::ShapeRef.new(shape: TagList, location_name: "tagSet"))
    Ipam.add_member(:default_resource_discovery_id, Shapes::ShapeRef.new(shape: IpamResourceDiscoveryId, location_name: "defaultResourceDiscoveryId"))
    Ipam.add_member(:default_resource_discovery_association_id, Shapes::ShapeRef.new(shape: IpamResourceDiscoveryAssociationId, location_name: "defaultResourceDiscoveryAssociationId"))
    Ipam.add_member(:resource_discovery_association_count, Shapes::ShapeRef.new(shape: Integer, location_name: "resourceDiscoveryAssociationCount"))
    Ipam.add_member(:state_message, Shapes::ShapeRef.new(shape: String, location_name: "stateMessage"))
    Ipam.add_member(:tier, Shapes::ShapeRef.new(shape: IpamTier, location_name: "tier"))
    Ipam.add_member(:enable_private_gua, Shapes::ShapeRef.new(shape: Boolean, location_name: "enablePrivateGua"))
    Ipam.struct_class = Types::Ipam

    IpamAddressHistoryRecord.add_member(:resource_owner_id, Shapes::ShapeRef.new(shape: String, location_name: "resourceOwnerId"))
    IpamAddressHistoryRecord.add_member(:resource_region, Shapes::ShapeRef.new(shape: String, location_name: "resourceRegion"))
    IpamAddressHistoryRecord.add_member(:resource_type, Shapes::ShapeRef.new(shape: IpamAddressHistoryResourceType, location_name: "resourceType"))
    IpamAddressHistoryRecord.add_member(:resource_id, Shapes::ShapeRef.new(shape: String, location_name: "resourceId"))
    IpamAddressHistoryRecord.add_member(:resource_cidr, Shapes::ShapeRef.new(shape: String, location_name: "resourceCidr"))
    IpamAddressHistoryRecord.add_member(:resource_name, Shapes::ShapeRef.new(shape: String, location_name: "resourceName"))
    IpamAddressHistoryRecord.add_member(:resource_compliance_status, Shapes::ShapeRef.new(shape: IpamComplianceStatus, location_name: "resourceComplianceStatus"))
    IpamAddressHistoryRecord.add_member(:resource_overlap_status, Shapes::ShapeRef.new(shape: IpamOverlapStatus, location_name: "resourceOverlapStatus"))
    IpamAddressHistoryRecord.add_member(:vpc_id, Shapes::ShapeRef.new(shape: String, location_name: "vpcId"))
    IpamAddressHistoryRecord.add_member(:sampled_start_time, Shapes::ShapeRef.new(shape: MillisecondDateTime, location_name: "sampledStartTime"))
    IpamAddressHistoryRecord.add_member(:sampled_end_time, Shapes::ShapeRef.new(shape: MillisecondDateTime, location_name: "sampledEndTime"))
    IpamAddressHistoryRecord.struct_class = Types::IpamAddressHistoryRecord

    IpamAddressHistoryRecordSet.member = Shapes::ShapeRef.new(shape: IpamAddressHistoryRecord, location_name: "item")

    IpamCidrAuthorizationContext.add_member(:message, Shapes::ShapeRef.new(shape: String, location_name: "Message"))
    IpamCidrAuthorizationContext.add_member(:signature, Shapes::ShapeRef.new(shape: String, location_name: "Signature"))
    IpamCidrAuthorizationContext.struct_class = Types::IpamCidrAuthorizationContext

    IpamDiscoveredAccount.add_member(:account_id, Shapes::ShapeRef.new(shape: String, location_name: "accountId"))
    IpamDiscoveredAccount.add_member(:discovery_region, Shapes::ShapeRef.new(shape: String, location_name: "discoveryRegion"))
    IpamDiscoveredAccount.add_member(:failure_reason, Shapes::ShapeRef.new(shape: IpamDiscoveryFailureReason, location_name: "failureReason"))
    IpamDiscoveredAccount.add_member(:last_attempted_discovery_time, Shapes::ShapeRef.new(shape: MillisecondDateTime, location_name: "lastAttemptedDiscoveryTime"))
    IpamDiscoveredAccount.add_member(:last_successful_discovery_time, Shapes::ShapeRef.new(shape: MillisecondDateTime, location_name: "lastSuccessfulDiscoveryTime"))
    IpamDiscoveredAccount.add_member(:organizational_unit_id, Shapes::ShapeRef.new(shape: String, location_name: "organizationalUnitId"))
    IpamDiscoveredAccount.struct_class = Types::IpamDiscoveredAccount

    IpamDiscoveredAccountSet.member = Shapes::ShapeRef.new(shape: IpamDiscoveredAccount, location_name: "item")

    IpamDiscoveredPublicAddress.add_member(:ipam_resource_discovery_id, Shapes::ShapeRef.new(shape: IpamResourceDiscoveryId, location_name: "ipamResourceDiscoveryId"))
    IpamDiscoveredPublicAddress.add_member(:address_region, Shapes::ShapeRef.new(shape: String, location_name: "addressRegion"))
    IpamDiscoveredPublicAddress.add_member(:address, Shapes::ShapeRef.new(shape: String, location_name: "address"))
    IpamDiscoveredPublicAddress.add_member(:address_owner_id, Shapes::ShapeRef.new(shape: String, location_name: "addressOwnerId"))
    IpamDiscoveredPublicAddress.add_member(:address_allocation_id, Shapes::ShapeRef.new(shape: String, location_name: "addressAllocationId"))
    IpamDiscoveredPublicAddress.add_member(:association_status, Shapes::ShapeRef.new(shape: IpamPublicAddressAssociationStatus, location_name: "associationStatus"))
    IpamDiscoveredPublicAddress.add_member(:address_type, Shapes::ShapeRef.new(shape: IpamPublicAddressType, location_name: "addressType"))
    IpamDiscoveredPublicAddress.add_member(:service, Shapes::ShapeRef.new(shape: IpamPublicAddressAwsService, location_name: "service"))
    IpamDiscoveredPublicAddress.add_member(:service_resource, Shapes::ShapeRef.new(shape: String, location_name: "serviceResource"))
    IpamDiscoveredPublicAddress.add_member(:vpc_id, Shapes::ShapeRef.new(shape: String, location_name: "vpcId"))
    IpamDiscoveredPublicAddress.add_member(:subnet_id, Shapes::ShapeRef.new(shape: String, location_name: "subnetId"))
    IpamDiscoveredPublicAddress.add_member(:public_ipv_4_pool_id, Shapes::ShapeRef.new(shape: String, location_name: "publicIpv4PoolId"))
    IpamDiscoveredPublicAddress.add_member(:network_interface_id, Shapes::ShapeRef.new(shape: String, location_name: "networkInterfaceId"))
    IpamDiscoveredPublicAddress.add_member(:network_interface_description, Shapes::ShapeRef.new(shape: String, location_name: "networkInterfaceDescription"))
    IpamDiscoveredPublicAddress.add_member(:instance_id, Shapes::ShapeRef.new(shape: String, location_name: "instanceId"))
    IpamDiscoveredPublicAddress.add_member(:tags, Shapes::ShapeRef.new(shape: IpamPublicAddressTags, location_name: "tags"))
    IpamDiscoveredPublicAddress.add_member(:network_border_group, Shapes::ShapeRef.new(shape: String, location_name: "networkBorderGroup"))
    IpamDiscoveredPublicAddress.add_member(:security_groups, Shapes::ShapeRef.new(shape: IpamPublicAddressSecurityGroupList, location_name: "securityGroupSet"))
    IpamDiscoveredPublicAddress.add_member(:sample_time, Shapes::ShapeRef.new(shape: MillisecondDateTime, location_name: "sampleTime"))
    IpamDiscoveredPublicAddress.struct_class = Types::IpamDiscoveredPublicAddress

    IpamDiscoveredPublicAddressSet.member = Shapes::ShapeRef.new(shape: IpamDiscoveredPublicAddress, location_name: "item")

    IpamDiscoveredResourceCidr.add_member(:ipam_resource_discovery_id, Shapes::ShapeRef.new(shape: IpamResourceDiscoveryId, location_name: "ipamResourceDiscoveryId"))
    IpamDiscoveredResourceCidr.add_member(:resource_region, Shapes::ShapeRef.new(shape: String, location_name: "resourceRegion"))
    IpamDiscoveredResourceCidr.add_member(:resource_id, Shapes::ShapeRef.new(shape: String, location_name: "resourceId"))
    IpamDiscoveredResourceCidr.add_member(:resource_owner_id, Shapes::ShapeRef.new(shape: String, location_name: "resourceOwnerId"))
    IpamDiscoveredResourceCidr.add_member(:resource_cidr, Shapes::ShapeRef.new(shape: String, location_name: "resourceCidr"))
    IpamDiscoveredResourceCidr.add_member(:ip_source, Shapes::ShapeRef.new(shape: IpamResourceCidrIpSource, location_name: "ipSource"))
    IpamDiscoveredResourceCidr.add_member(:resource_type, Shapes::ShapeRef.new(shape: IpamResourceType, location_name: "resourceType"))
    IpamDiscoveredResourceCidr.add_member(:resource_tags, Shapes::ShapeRef.new(shape: IpamResourceTagList, location_name: "resourceTagSet"))
    IpamDiscoveredResourceCidr.add_member(:ip_usage, Shapes::ShapeRef.new(shape: BoxedDouble, location_name: "ipUsage"))
    IpamDiscoveredResourceCidr.add_member(:vpc_id, Shapes::ShapeRef.new(shape: String, location_name: "vpcId"))
    IpamDiscoveredResourceCidr.add_member(:subnet_id, Shapes::ShapeRef.new(shape: String, location_name: "subnetId"))
    IpamDiscoveredResourceCidr.add_member(:network_interface_attachment_status, Shapes::ShapeRef.new(shape: IpamNetworkInterfaceAttachmentStatus, location_name: "networkInterfaceAttachmentStatus"))
    IpamDiscoveredResourceCidr.add_member(:sample_time, Shapes::ShapeRef.new(shape: MillisecondDateTime, location_name: "sampleTime"))
    IpamDiscoveredResourceCidr.add_member(:availability_zone_id, Shapes::ShapeRef.new(shape: String, location_name: "availabilityZoneId"))
    IpamDiscoveredResourceCidr.struct_class = Types::IpamDiscoveredResourceCidr

    IpamDiscoveredResourceCidrSet.member = Shapes::ShapeRef.new(shape: IpamDiscoveredResourceCidr, location_name: "item")

    IpamDiscoveryFailureReason.add_member(:code, Shapes::ShapeRef.new(shape: IpamDiscoveryFailureCode, location_name: "code"))
    IpamDiscoveryFailureReason.add_member(:message, Shapes::ShapeRef.new(shape: String, location_name: "message"))
    IpamDiscoveryFailureReason.struct_class = Types::IpamDiscoveryFailureReason

    IpamExternalResourceVerificationToken.add_member(:ipam_external_resource_verification_token_id, Shapes::ShapeRef.new(shape: IpamExternalResourceVerificationTokenId, location_name: "ipamExternalResourceVerificationTokenId"))
    IpamExternalResourceVerificationToken.add_member(:ipam_external_resource_verification_token_arn, Shapes::ShapeRef.new(shape: ResourceArn, location_name: "ipamExternalResourceVerificationTokenArn"))
    IpamExternalResourceVerificationToken.add_member(:ipam_id, Shapes::ShapeRef.new(shape: IpamId, location_name: "ipamId"))
    IpamExternalResourceVerificationToken.add_member(:ipam_arn, Shapes::ShapeRef.new(shape: ResourceArn, location_name: "ipamArn"))
    IpamExternalResourceVerificationToken.add_member(:ipam_region, Shapes::ShapeRef.new(shape: String, location_name: "ipamRegion"))
    IpamExternalResourceVerificationToken.add_member(:token_value, Shapes::ShapeRef.new(shape: String, location_name: "tokenValue"))
    IpamExternalResourceVerificationToken.add_member(:token_name, Shapes::ShapeRef.new(shape: String, location_name: "tokenName"))
    IpamExternalResourceVerificationToken.add_member(:not_after, Shapes::ShapeRef.new(shape: MillisecondDateTime, location_name: "notAfter"))
    IpamExternalResourceVerificationToken.add_member(:status, Shapes::ShapeRef.new(shape: TokenState, location_name: "status"))
    IpamExternalResourceVerificationToken.add_member(:tags, Shapes::ShapeRef.new(shape: TagList, location_name: "tagSet"))
    IpamExternalResourceVerificationToken.add_member(:state, Shapes::ShapeRef.new(shape: IpamExternalResourceVerificationTokenState, location_name: "state"))
    IpamExternalResourceVerificationToken.struct_class = Types::IpamExternalResourceVerificationToken

    IpamExternalResourceVerificationTokenSet.member = Shapes::ShapeRef.new(shape: IpamExternalResourceVerificationToken, location_name: "item")

    IpamOperatingRegion.add_member(:region_name, Shapes::ShapeRef.new(shape: String, location_name: "regionName"))
    IpamOperatingRegion.struct_class = Types::IpamOperatingRegion

    IpamOperatingRegionSet.member = Shapes::ShapeRef.new(shape: IpamOperatingRegion, location_name: "item")

    IpamOrganizationalUnitExclusion.add_member(:organizations_entity_path, Shapes::ShapeRef.new(shape: String, location_name: "organizationsEntityPath"))
    IpamOrganizationalUnitExclusion.struct_class = Types::IpamOrganizationalUnitExclusion

    IpamOrganizationalUnitExclusionSet.member = Shapes::ShapeRef.new(shape: IpamOrganizationalUnitExclusion, location_name: "item")

    IpamPool.add_member(:owner_id, Shapes::ShapeRef.new(shape: String, location_name: "ownerId"))
    IpamPool.add_member(:ipam_pool_id, Shapes::ShapeRef.new(shape: IpamPoolId, location_name: "ipamPoolId"))
    IpamPool.add_member(:source_ipam_pool_id, Shapes::ShapeRef.new(shape: IpamPoolId, location_name: "sourceIpamPoolId"))
    IpamPool.add_member(:ipam_pool_arn, Shapes::ShapeRef.new(shape: ResourceArn, location_name: "ipamPoolArn"))
    IpamPool.add_member(:ipam_scope_arn, Shapes::ShapeRef.new(shape: ResourceArn, location_name: "ipamScopeArn"))
    IpamPool.add_member(:ipam_scope_type, Shapes::ShapeRef.new(shape: IpamScopeType, location_name: "ipamScopeType"))
    IpamPool.add_member(:ipam_arn, Shapes::ShapeRef.new(shape: ResourceArn, location_name: "ipamArn"))
    IpamPool.add_member(:ipam_region, Shapes::ShapeRef.new(shape: String, location_name: "ipamRegion"))
    IpamPool.add_member(:locale, Shapes::ShapeRef.new(shape: String, location_name: "locale"))
    IpamPool.add_member(:pool_depth, Shapes::ShapeRef.new(shape: Integer, location_name: "poolDepth"))
    IpamPool.add_member(:state, Shapes::ShapeRef.new(shape: IpamPoolState, location_name: "state"))
    IpamPool.add_member(:state_message, Shapes::ShapeRef.new(shape: String, location_name: "stateMessage"))
    IpamPool.add_member(:description, Shapes::ShapeRef.new(shape: String, location_name: "description"))
    IpamPool.add_member(:auto_import, Shapes::ShapeRef.new(shape: Boolean, location_name: "autoImport"))
    IpamPool.add_member(:publicly_advertisable, Shapes::ShapeRef.new(shape: Boolean, location_name: "publiclyAdvertisable"))
    IpamPool.add_member(:address_family, Shapes::ShapeRef.new(shape: AddressFamily, location_name: "addressFamily"))
    IpamPool.add_member(:allocation_min_netmask_length, Shapes::ShapeRef.new(shape: IpamNetmaskLength, location_name: "allocationMinNetmaskLength"))
    IpamPool.add_member(:allocation_max_netmask_length, Shapes::ShapeRef.new(shape: IpamNetmaskLength, location_name: "allocationMaxNetmaskLength"))
    IpamPool.add_member(:allocation_default_netmask_length, Shapes::ShapeRef.new(shape: IpamNetmaskLength, location_name: "allocationDefaultNetmaskLength"))
    IpamPool.add_member(:allocation_resource_tags, Shapes::ShapeRef.new(shape: IpamResourceTagList, location_name: "allocationResourceTagSet"))
    IpamPool.add_member(:tags, Shapes::ShapeRef.new(shape: TagList, location_name: "tagSet"))
    IpamPool.add_member(:aws_service, Shapes::ShapeRef.new(shape: IpamPoolAwsService, location_name: "awsService"))
    IpamPool.add_member(:public_ip_source, Shapes::ShapeRef.new(shape: IpamPoolPublicIpSource, location_name: "publicIpSource"))
    IpamPool.add_member(:source_resource, Shapes::ShapeRef.new(shape: IpamPoolSourceResource, location_name: "sourceResource"))
    IpamPool.struct_class = Types::IpamPool

    IpamPoolAllocation.add_member(:cidr, Shapes::ShapeRef.new(shape: String, location_name: "cidr"))
    IpamPoolAllocation.add_member(:ipam_pool_allocation_id, Shapes::ShapeRef.new(shape: IpamPoolAllocationId, location_name: "ipamPoolAllocationId"))
    IpamPoolAllocation.add_member(:description, Shapes::ShapeRef.new(shape: String, location_name: "description"))
    IpamPoolAllocation.add_member(:resource_id, Shapes::ShapeRef.new(shape: String, location_name: "resourceId"))
    IpamPoolAllocation.add_member(:resource_type, Shapes::ShapeRef.new(shape: IpamPoolAllocationResourceType, location_name: "resourceType"))
    IpamPoolAllocation.add_member(:resource_region, Shapes::ShapeRef.new(shape: String, location_name: "resourceRegion"))
    IpamPoolAllocation.add_member(:resource_owner, Shapes::ShapeRef.new(shape: String, location_name: "resourceOwner"))
    IpamPoolAllocation.struct_class = Types::IpamPoolAllocation

    IpamPoolAllocationAllowedCidrs.member = Shapes::ShapeRef.new(shape: String, location_name: "item")

    IpamPoolAllocationDisallowedCidrs.member = Shapes::ShapeRef.new(shape: String, location_name: "item")

    IpamPoolAllocationSet.member = Shapes::ShapeRef.new(shape: IpamPoolAllocation, location_name: "item")

    IpamPoolCidr.add_member(:cidr, Shapes::ShapeRef.new(shape: String, location_name: "cidr"))
    IpamPoolCidr.add_member(:state, Shapes::ShapeRef.new(shape: IpamPoolCidrState, location_name: "state"))
    IpamPoolCidr.add_member(:failure_reason, Shapes::ShapeRef.new(shape: IpamPoolCidrFailureReason, location_name: "failureReason"))
    IpamPoolCidr.add_member(:ipam_pool_cidr_id, Shapes::ShapeRef.new(shape: IpamPoolCidrId, location_name: "ipamPoolCidrId"))
    IpamPoolCidr.add_member(:netmask_length, Shapes::ShapeRef.new(shape: Integer, location_name: "netmaskLength"))
    IpamPoolCidr.struct_class = Types::IpamPoolCidr

    IpamPoolCidrFailureReason.add_member(:code, Shapes::ShapeRef.new(shape: IpamPoolCidrFailureCode, location_name: "code"))
    IpamPoolCidrFailureReason.add_member(:message, Shapes::ShapeRef.new(shape: String, location_name: "message"))
    IpamPoolCidrFailureReason.struct_class = Types::IpamPoolCidrFailureReason

    IpamPoolCidrSet.member = Shapes::ShapeRef.new(shape: IpamPoolCidr, location_name: "item")

    IpamPoolSet.member = Shapes::ShapeRef.new(shape: IpamPool, location_name: "item")

    IpamPoolSourceResource.add_member(:resource_id, Shapes::ShapeRef.new(shape: String, location_name: "resourceId"))
    IpamPoolSourceResource.add_member(:resource_type, Shapes::ShapeRef.new(shape: IpamPoolSourceResourceType, location_name: "resourceType"))
    IpamPoolSourceResource.add_member(:resource_region, Shapes::ShapeRef.new(shape: String, location_name: "resourceRegion"))
    IpamPoolSourceResource.add_member(:resource_owner, Shapes::ShapeRef.new(shape: String, location_name: "resourceOwner"))
    IpamPoolSourceResource.struct_class = Types::IpamPoolSourceResource

    IpamPoolSourceResourceRequest.add_member(:resource_id, Shapes::ShapeRef.new(shape: String, location_name: "ResourceId"))
    IpamPoolSourceResourceRequest.add_member(:resource_type, Shapes::ShapeRef.new(shape: IpamPoolSourceResourceType, location_name: "ResourceType"))
    IpamPoolSourceResourceRequest.add_member(:resource_region, Shapes::ShapeRef.new(shape: String, location_name: "ResourceRegion"))
    IpamPoolSourceResourceRequest.add_member(:resource_owner, Shapes::ShapeRef.new(shape: String, location_name: "ResourceOwner"))
    IpamPoolSourceResourceRequest.struct_class = Types::IpamPoolSourceResourceRequest

    IpamPublicAddressSecurityGroup.add_member(:group_name, Shapes::ShapeRef.new(shape: String, location_name: "groupName"))
    IpamPublicAddressSecurityGroup.add_member(:group_id, Shapes::ShapeRef.new(shape: String, location_name: "groupId"))
    IpamPublicAddressSecurityGroup.struct_class = Types::IpamPublicAddressSecurityGroup

    IpamPublicAddressSecurityGroupList.member = Shapes::ShapeRef.new(shape: IpamPublicAddressSecurityGroup, location_name: "item")

    IpamPublicAddressTag.add_member(:key, Shapes::ShapeRef.new(shape: String, location_name: "key"))
    IpamPublicAddressTag.add_member(:value, Shapes::ShapeRef.new(shape: String, location_name: "value"))
    IpamPublicAddressTag.struct_class = Types::IpamPublicAddressTag

    IpamPublicAddressTagList.member = Shapes::ShapeRef.new(shape: IpamPublicAddressTag, location_name: "item")

    IpamPublicAddressTags.add_member(:eip_tags, Shapes::ShapeRef.new(shape: IpamPublicAddressTagList, location_name: "eipTagSet"))
    IpamPublicAddressTags.struct_class = Types::IpamPublicAddressTags

    IpamResourceCidr.add_member(:ipam_id, Shapes::ShapeRef.new(shape: IpamId, location_name: "ipamId"))
    IpamResourceCidr.add_member(:ipam_scope_id, Shapes::ShapeRef.new(shape: IpamScopeId, location_name: "ipamScopeId"))
    IpamResourceCidr.add_member(:ipam_pool_id, Shapes::ShapeRef.new(shape: IpamPoolId, location_name: "ipamPoolId"))
    IpamResourceCidr.add_member(:resource_region, Shapes::ShapeRef.new(shape: String, location_name: "resourceRegion"))
    IpamResourceCidr.add_member(:resource_owner_id, Shapes::ShapeRef.new(shape: String, location_name: "resourceOwnerId"))
    IpamResourceCidr.add_member(:resource_id, Shapes::ShapeRef.new(shape: String, location_name: "resourceId"))
    IpamResourceCidr.add_member(:resource_name, Shapes::ShapeRef.new(shape: String, location_name: "resourceName"))
    IpamResourceCidr.add_member(:resource_cidr, Shapes::ShapeRef.new(shape: String, location_name: "resourceCidr"))
    IpamResourceCidr.add_member(:resource_type, Shapes::ShapeRef.new(shape: IpamResourceType, location_name: "resourceType"))
    IpamResourceCidr.add_member(:resource_tags, Shapes::ShapeRef.new(shape: IpamResourceTagList, location_name: "resourceTagSet"))
    IpamResourceCidr.add_member(:ip_usage, Shapes::ShapeRef.new(shape: BoxedDouble, location_name: "ipUsage"))
    IpamResourceCidr.add_member(:compliance_status, Shapes::ShapeRef.new(shape: IpamComplianceStatus, location_name: "complianceStatus"))
    IpamResourceCidr.add_member(:management_state, Shapes::ShapeRef.new(shape: IpamManagementState, location_name: "managementState"))
    IpamResourceCidr.add_member(:overlap_status, Shapes::ShapeRef.new(shape: IpamOverlapStatus, location_name: "overlapStatus"))
    IpamResourceCidr.add_member(:vpc_id, Shapes::ShapeRef.new(shape: String, location_name: "vpcId"))
    IpamResourceCidr.add_member(:availability_zone_id, Shapes::ShapeRef.new(shape: String, location_name: "availabilityZoneId"))
    IpamResourceCidr.struct_class = Types::IpamResourceCidr

    IpamResourceCidrSet.member = Shapes::ShapeRef.new(shape: IpamResourceCidr, location_name: "item")

    IpamResourceDiscovery.add_member(:owner_id, Shapes::ShapeRef.new(shape: String, location_name: "ownerId"))
    IpamResourceDiscovery.add_member(:ipam_resource_discovery_id, Shapes::ShapeRef.new(shape: IpamResourceDiscoveryId, location_name: "ipamResourceDiscoveryId"))
    IpamResourceDiscovery.add_member(:ipam_resource_discovery_arn, Shapes::ShapeRef.new(shape: String, location_name: "ipamResourceDiscoveryArn"))
    IpamResourceDiscovery.add_member(:ipam_resource_discovery_region, Shapes::ShapeRef.new(shape: String, location_name: "ipamResourceDiscoveryRegion"))
    IpamResourceDiscovery.add_member(:description, Shapes::ShapeRef.new(shape: String, location_name: "description"))
    IpamResourceDiscovery.add_member(:operating_regions, Shapes::ShapeRef.new(shape: IpamOperatingRegionSet, location_name: "operatingRegionSet"))
    IpamResourceDiscovery.add_member(:is_default, Shapes::ShapeRef.new(shape: Boolean, location_name: "isDefault"))
    IpamResourceDiscovery.add_member(:state, Shapes::ShapeRef.new(shape: IpamResourceDiscoveryState, location_name: "state"))
    IpamResourceDiscovery.add_member(:tags, Shapes::ShapeRef.new(shape: TagList, location_name: "tagSet"))
    IpamResourceDiscovery.add_member(:organizational_unit_exclusions, Shapes::ShapeRef.new(shape: IpamOrganizationalUnitExclusionSet, location_name: "organizationalUnitExclusionSet"))
    IpamResourceDiscovery.struct_class = Types::IpamResourceDiscovery

    IpamResourceDiscoveryAssociation.add_member(:owner_id, Shapes::ShapeRef.new(shape: String, location_name: "ownerId"))
    IpamResourceDiscoveryAssociation.add_member(:ipam_resource_discovery_association_id, Shapes::ShapeRef.new(shape: IpamResourceDiscoveryAssociationId, location_name: "ipamResourceDiscoveryAssociationId"))
    IpamResourceDiscoveryAssociation.add_member(:ipam_resource_discovery_association_arn, Shapes::ShapeRef.new(shape: String, location_name: "ipamResourceDiscoveryAssociationArn"))
    IpamResourceDiscoveryAssociation.add_member(:ipam_resource_discovery_id, Shapes::ShapeRef.new(shape: IpamResourceDiscoveryId, location_name: "ipamResourceDiscoveryId"))
    IpamResourceDiscoveryAssociation.add_member(:ipam_id, Shapes::ShapeRef.new(shape: IpamId, location_name: "ipamId"))
    IpamResourceDiscoveryAssociation.add_member(:ipam_arn, Shapes::ShapeRef.new(shape: ResourceArn, location_name: "ipamArn"))
    IpamResourceDiscoveryAssociation.add_member(:ipam_region, Shapes::ShapeRef.new(shape: String, location_name: "ipamRegion"))
    IpamResourceDiscoveryAssociation.add_member(:is_default, Shapes::ShapeRef.new(shape: Boolean, location_name: "isDefault"))
    IpamResourceDiscoveryAssociation.add_member(:resource_discovery_status, Shapes::ShapeRef.new(shape: IpamAssociatedResourceDiscoveryStatus, location_name: "resourceDiscoveryStatus"))
    IpamResourceDiscoveryAssociation.add_member(:state, Shapes::ShapeRef.new(shape: IpamResourceDiscoveryAssociationState, location_name: "state"))
    IpamResourceDiscoveryAssociation.add_member(:tags, Shapes::ShapeRef.new(shape: TagList, location_name: "tagSet"))
    IpamResourceDiscoveryAssociation.struct_class = Types::IpamResourceDiscoveryAssociation

    IpamResourceDiscoveryAssociationSet.member = Shapes::ShapeRef.new(shape: IpamResourceDiscoveryAssociation, location_name: "item")

    IpamResourceDiscoverySet.member = Shapes::ShapeRef.new(shape: IpamResourceDiscovery, location_name: "item")

    IpamResourceTag.add_member(:key, Shapes::ShapeRef.new(shape: String, location_name: "key"))
    IpamResourceTag.add_member(:value, Shapes::ShapeRef.new(shape: String, location_name: "value"))
    IpamResourceTag.struct_class = Types::IpamResourceTag

    IpamResourceTagList.member = Shapes::ShapeRef.new(shape: IpamResourceTag, location_name: "item")

    IpamScope.add_member(:owner_id, Shapes::ShapeRef.new(shape: String, location_name: "ownerId"))
    IpamScope.add_member(:ipam_scope_id, Shapes::ShapeRef.new(shape: IpamScopeId, location_name: "ipamScopeId"))
    IpamScope.add_member(:ipam_scope_arn, Shapes::ShapeRef.new(shape: ResourceArn, location_name: "ipamScopeArn"))
    IpamScope.add_member(:ipam_arn, Shapes::ShapeRef.new(shape: ResourceArn, location_name: "ipamArn"))
    IpamScope.add_member(:ipam_region, Shapes::ShapeRef.new(shape: String, location_name: "ipamRegion"))
    IpamScope.add_member(:ipam_scope_type, Shapes::ShapeRef.new(shape: IpamScopeType, location_name: "ipamScopeType"))
    IpamScope.add_member(:is_default, Shapes::ShapeRef.new(shape: Boolean, location_name: "isDefault"))
    IpamScope.add_member(:description, Shapes::ShapeRef.new(shape: String, location_name: "description"))
    IpamScope.add_member(:pool_count, Shapes::ShapeRef.new(shape: Integer, location_name: "poolCount"))
    IpamScope.add_member(:state, Shapes::ShapeRef.new(shape: IpamScopeState, location_name: "state"))
    IpamScope.add_member(:tags, Shapes::ShapeRef.new(shape: TagList, location_name: "tagSet"))
    IpamScope.struct_class = Types::IpamScope

    IpamScopeSet.member = Shapes::ShapeRef.new(shape: IpamScope, location_name: "item")

    IpamSet.member = Shapes::ShapeRef.new(shape: Ipam, location_name: "item")

    Ipv4PrefixList.member = Shapes::ShapeRef.new(shape: Ipv4PrefixSpecificationRequest, location_name: "item")

    Ipv4PrefixListResponse.member = Shapes::ShapeRef.new(shape: Ipv4PrefixSpecificationResponse, location_name: "item")

    Ipv4PrefixSpecification.add_member(:ipv_4_prefix, Shapes::ShapeRef.new(shape: String, location_name: "ipv4Prefix"))
    Ipv4PrefixSpecification.struct_class = Types::Ipv4PrefixSpecification

    Ipv4PrefixSpecificationRequest.add_member(:ipv_4_prefix, Shapes::ShapeRef.new(shape: String, location_name: "Ipv4Prefix"))
    Ipv4PrefixSpecificationRequest.struct_class = Types::Ipv4PrefixSpecificationRequest

    Ipv4PrefixSpecificationResponse.add_member(:ipv_4_prefix, Shapes::ShapeRef.new(shape: String, location_name: "ipv4Prefix"))
    Ipv4PrefixSpecificationResponse.struct_class = Types::Ipv4PrefixSpecificationResponse

    Ipv4PrefixesList.member = Shapes::ShapeRef.new(shape: Ipv4PrefixSpecification, location_name: "item")

    Ipv6AddressList.member = Shapes::ShapeRef.new(shape: String, location_name: "item")

    Ipv6CidrAssociation.add_member(:ipv_6_cidr, Shapes::ShapeRef.new(shape: String, location_name: "ipv6Cidr"))
    Ipv6CidrAssociation.add_member(:associated_resource, Shapes::ShapeRef.new(shape: String, location_name: "associatedResource"))
    Ipv6CidrAssociation.struct_class = Types::Ipv6CidrAssociation

    Ipv6CidrAssociationSet.member = Shapes::ShapeRef.new(shape: Ipv6CidrAssociation, location_name: "item")

    Ipv6CidrBlock.add_member(:ipv_6_cidr_block, Shapes::ShapeRef.new(shape: String, location_name: "ipv6CidrBlock"))
    Ipv6CidrBlock.struct_class = Types::Ipv6CidrBlock

    Ipv6CidrBlockSet.member = Shapes::ShapeRef.new(shape: Ipv6CidrBlock, location_name: "item")

    Ipv6Pool.add_member(:pool_id, Shapes::ShapeRef.new(shape: String, location_name: "poolId"))
    Ipv6Pool.add_member(:description, Shapes::ShapeRef.new(shape: String, location_name: "description"))
    Ipv6Pool.add_member(:pool_cidr_blocks, Shapes::ShapeRef.new(shape: PoolCidrBlocksSet, location_name: "poolCidrBlockSet"))
    Ipv6Pool.add_member(:tags, Shapes::ShapeRef.new(shape: TagList, location_name: "tagSet"))
    Ipv6Pool.struct_class = Types::Ipv6Pool

    Ipv6PoolIdList.member = Shapes::ShapeRef.new(shape: Ipv6PoolEc2Id, location_name: "item")

    Ipv6PoolSet.member = Shapes::ShapeRef.new(shape: Ipv6Pool, location_name: "item")

    Ipv6PrefixList.member = Shapes::ShapeRef.new(shape: Ipv6PrefixSpecificationRequest, location_name: "item")

    Ipv6PrefixListResponse.member = Shapes::ShapeRef.new(shape: Ipv6PrefixSpecificationResponse, location_name: "item")

    Ipv6PrefixSpecification.add_member(:ipv_6_prefix, Shapes::ShapeRef.new(shape: String, location_name: "ipv6Prefix"))
    Ipv6PrefixSpecification.struct_class = Types::Ipv6PrefixSpecification

    Ipv6PrefixSpecificationRequest.add_member(:ipv_6_prefix, Shapes::ShapeRef.new(shape: String, location_name: "Ipv6Prefix"))
    Ipv6PrefixSpecificationRequest.struct_class = Types::Ipv6PrefixSpecificationRequest

    Ipv6PrefixSpecificationResponse.add_member(:ipv_6_prefix, Shapes::ShapeRef.new(shape: String, location_name: "ipv6Prefix"))
    Ipv6PrefixSpecificationResponse.struct_class = Types::Ipv6PrefixSpecificationResponse

    Ipv6PrefixesList.member = Shapes::ShapeRef.new(shape: Ipv6PrefixSpecification, location_name: "item")

    Ipv6Range.add_member(:description, Shapes::ShapeRef.new(shape: String, location_name: "description"))
    Ipv6Range.add_member(:cidr_ipv_6, Shapes::ShapeRef.new(shape: String, location_name: "cidrIpv6"))
    Ipv6Range.struct_class = Types::Ipv6Range

    Ipv6RangeList.member = Shapes::ShapeRef.new(shape: Ipv6Range, location_name: "item")

    KeyNameStringList.member = Shapes::ShapeRef.new(shape: KeyPairName, location_name: "KeyName")

    KeyPair.add_member(:key_pair_id, Shapes::ShapeRef.new(shape: String, location_name: "keyPairId"))
    KeyPair.add_member(:tags, Shapes::ShapeRef.new(shape: TagList, location_name: "tagSet"))
    KeyPair.add_member(:key_name, Shapes::ShapeRef.new(shape: String, location_name: "keyName"))
    KeyPair.add_member(:key_fingerprint, Shapes::ShapeRef.new(shape: String, location_name: "keyFingerprint"))
    KeyPair.add_member(:key_material, Shapes::ShapeRef.new(shape: SensitiveUserData, location_name: "keyMaterial"))
    KeyPair.struct_class = Types::KeyPair

    KeyPairIdStringList.member = Shapes::ShapeRef.new(shape: KeyPairId, location_name: "KeyPairId")

    KeyPairInfo.add_member(:key_pair_id, Shapes::ShapeRef.new(shape: String, location_name: "keyPairId"))
    KeyPairInfo.add_member(:key_type, Shapes::ShapeRef.new(shape: KeyType, location_name: "keyType"))
    KeyPairInfo.add_member(:tags, Shapes::ShapeRef.new(shape: TagList, location_name: "tagSet"))
    KeyPairInfo.add_member(:public_key, Shapes::ShapeRef.new(shape: String, location_name: "publicKey"))
    KeyPairInfo.add_member(:create_time, Shapes::ShapeRef.new(shape: MillisecondDateTime, location_name: "createTime"))
    KeyPairInfo.add_member(:key_name, Shapes::ShapeRef.new(shape: String, location_name: "keyName"))
    KeyPairInfo.add_member(:key_fingerprint, Shapes::ShapeRef.new(shape: String, location_name: "keyFingerprint"))
    KeyPairInfo.struct_class = Types::KeyPairInfo

    KeyPairList.member = Shapes::ShapeRef.new(shape: KeyPairInfo, location_name: "item")

    LastError.add_member(:message, Shapes::ShapeRef.new(shape: String, location_name: "message"))
    LastError.add_member(:code, Shapes::ShapeRef.new(shape: String, location_name: "code"))
    LastError.struct_class = Types::LastError

    LaunchPermission.add_member(:organization_arn, Shapes::ShapeRef.new(shape: String, location_name: "organizationArn"))
    LaunchPermission.add_member(:organizational_unit_arn, Shapes::ShapeRef.new(shape: String, location_name: "organizationalUnitArn"))
    LaunchPermission.add_member(:user_id, Shapes::ShapeRef.new(shape: String, location_name: "userId"))
    LaunchPermission.add_member(:group, Shapes::ShapeRef.new(shape: PermissionGroup, location_name: "group"))
    LaunchPermission.struct_class = Types::LaunchPermission

    LaunchPermissionList.member = Shapes::ShapeRef.new(shape: LaunchPermission, location_name: "item")

    LaunchPermissionModifications.add_member(:add, Shapes::ShapeRef.new(shape: LaunchPermissionList, location_name: "Add"))
    LaunchPermissionModifications.add_member(:remove, Shapes::ShapeRef.new(shape: LaunchPermissionList, location_name: "Remove"))
    LaunchPermissionModifications.struct_class = Types::LaunchPermissionModifications

    LaunchSpecification.add_member(:user_data, Shapes::ShapeRef.new(shape: SensitiveUserData, location_name: "userData"))
    LaunchSpecification.add_member(:addressing_type, Shapes::ShapeRef.new(shape: String, location_name: "addressingType"))
    LaunchSpecification.add_member(:block_device_mappings, Shapes::ShapeRef.new(shape: BlockDeviceMappingList, location_name: "blockDeviceMapping"))
    LaunchSpecification.add_member(:ebs_optimized, Shapes::ShapeRef.new(shape: Boolean, location_name: "ebsOptimized"))
    LaunchSpecification.add_member(:iam_instance_profile, Shapes::ShapeRef.new(shape: IamInstanceProfileSpecification, location_name: "iamInstanceProfile"))
    LaunchSpecification.add_member(:image_id, Shapes::ShapeRef.new(shape: String, location_name: "imageId"))
    LaunchSpecification.add_member(:instance_type, Shapes::ShapeRef.new(shape: InstanceType, location_name: "instanceType"))
    LaunchSpecification.add_member(:kernel_id, Shapes::ShapeRef.new(shape: String, location_name: "kernelId"))
    LaunchSpecification.add_member(:key_name, Shapes::ShapeRef.new(shape: String, location_name: "keyName"))
    LaunchSpecification.add_member(:network_interfaces, Shapes::ShapeRef.new(shape: InstanceNetworkInterfaceSpecificationList, location_name: "networkInterfaceSet"))
    LaunchSpecification.add_member(:placement, Shapes::ShapeRef.new(shape: SpotPlacement, location_name: "placement"))
    LaunchSpecification.add_member(:ramdisk_id, Shapes::ShapeRef.new(shape: String, location_name: "ramdiskId"))
    LaunchSpecification.add_member(:subnet_id, Shapes::ShapeRef.new(shape: String, location_name: "subnetId"))
    LaunchSpecification.add_member(:security_groups, Shapes::ShapeRef.new(shape: GroupIdentifierList, location_name: "groupSet"))
    LaunchSpecification.add_member(:monitoring, Shapes::ShapeRef.new(shape: RunInstancesMonitoringEnabled, location_name: "monitoring"))
    LaunchSpecification.struct_class = Types::LaunchSpecification

    LaunchSpecsList.member = Shapes::ShapeRef.new(shape: SpotFleetLaunchSpecification, location_name: "item")

    LaunchTemplate.add_member(:launch_template_id, Shapes::ShapeRef.new(shape: String, location_name: "launchTemplateId"))
    LaunchTemplate.add_member(:launch_template_name, Shapes::ShapeRef.new(shape: LaunchTemplateName, location_name: "launchTemplateName"))
    LaunchTemplate.add_member(:create_time, Shapes::ShapeRef.new(shape: DateTime, location_name: "createTime"))
    LaunchTemplate.add_member(:created_by, Shapes::ShapeRef.new(shape: String, location_name: "createdBy"))
    LaunchTemplate.add_member(:default_version_number, Shapes::ShapeRef.new(shape: Long, location_name: "defaultVersionNumber"))
    LaunchTemplate.add_member(:latest_version_number, Shapes::ShapeRef.new(shape: Long, location_name: "latestVersionNumber"))
    LaunchTemplate.add_member(:tags, Shapes::ShapeRef.new(shape: TagList, location_name: "tagSet"))
    LaunchTemplate.add_member(:operator, Shapes::ShapeRef.new(shape: OperatorResponse, location_name: "operator"))
    LaunchTemplate.struct_class = Types::LaunchTemplate

    LaunchTemplateAndOverridesResponse.add_member(:launch_template_specification, Shapes::ShapeRef.new(shape: FleetLaunchTemplateSpecification, location_name: "launchTemplateSpecification"))
    LaunchTemplateAndOverridesResponse.add_member(:overrides, Shapes::ShapeRef.new(shape: FleetLaunchTemplateOverrides, location_name: "overrides"))
    LaunchTemplateAndOverridesResponse.struct_class = Types::LaunchTemplateAndOverridesResponse

    LaunchTemplateBlockDeviceMapping.add_member(:device_name, Shapes::ShapeRef.new(shape: String, location_name: "deviceName"))
    LaunchTemplateBlockDeviceMapping.add_member(:virtual_name, Shapes::ShapeRef.new(shape: String, location_name: "virtualName"))
    LaunchTemplateBlockDeviceMapping.add_member(:ebs, Shapes::ShapeRef.new(shape: LaunchTemplateEbsBlockDevice, location_name: "ebs"))
    LaunchTemplateBlockDeviceMapping.add_member(:no_device, Shapes::ShapeRef.new(shape: String, location_name: "noDevice"))
    LaunchTemplateBlockDeviceMapping.struct_class = Types::LaunchTemplateBlockDeviceMapping

    LaunchTemplateBlockDeviceMappingList.member = Shapes::ShapeRef.new(shape: LaunchTemplateBlockDeviceMapping, location_name: "item")

    LaunchTemplateBlockDeviceMappingRequest.add_member(:device_name, Shapes::ShapeRef.new(shape: String, location_name: "DeviceName"))
    LaunchTemplateBlockDeviceMappingRequest.add_member(:virtual_name, Shapes::ShapeRef.new(shape: String, location_name: "VirtualName"))
    LaunchTemplateBlockDeviceMappingRequest.add_member(:ebs, Shapes::ShapeRef.new(shape: LaunchTemplateEbsBlockDeviceRequest, location_name: "Ebs"))
    LaunchTemplateBlockDeviceMappingRequest.add_member(:no_device, Shapes::ShapeRef.new(shape: String, location_name: "NoDevice"))
    LaunchTemplateBlockDeviceMappingRequest.struct_class = Types::LaunchTemplateBlockDeviceMappingRequest

    LaunchTemplateBlockDeviceMappingRequestList.member = Shapes::ShapeRef.new(shape: LaunchTemplateBlockDeviceMappingRequest, location_name: "BlockDeviceMapping")

    LaunchTemplateCapacityReservationSpecificationRequest.add_member(:capacity_reservation_preference, Shapes::ShapeRef.new(shape: CapacityReservationPreference, location_name: "CapacityReservationPreference"))
    LaunchTemplateCapacityReservationSpecificationRequest.add_member(:capacity_reservation_target, Shapes::ShapeRef.new(shape: CapacityReservationTarget, location_name: "CapacityReservationTarget"))
    LaunchTemplateCapacityReservationSpecificationRequest.struct_class = Types::LaunchTemplateCapacityReservationSpecificationRequest

    LaunchTemplateCapacityReservationSpecificationResponse.add_member(:capacity_reservation_preference, Shapes::ShapeRef.new(shape: CapacityReservationPreference, location_name: "capacityReservationPreference"))
    LaunchTemplateCapacityReservationSpecificationResponse.add_member(:capacity_reservation_target, Shapes::ShapeRef.new(shape: CapacityReservationTargetResponse, location_name: "capacityReservationTarget"))
    LaunchTemplateCapacityReservationSpecificationResponse.struct_class = Types::LaunchTemplateCapacityReservationSpecificationResponse

    LaunchTemplateConfig.add_member(:launch_template_specification, Shapes::ShapeRef.new(shape: FleetLaunchTemplateSpecification, location_name: "launchTemplateSpecification"))
    LaunchTemplateConfig.add_member(:overrides, Shapes::ShapeRef.new(shape: LaunchTemplateOverridesList, location_name: "overrides"))
    LaunchTemplateConfig.struct_class = Types::LaunchTemplateConfig

    LaunchTemplateConfigList.member = Shapes::ShapeRef.new(shape: LaunchTemplateConfig, location_name: "item")

    LaunchTemplateCpuOptions.add_member(:core_count, Shapes::ShapeRef.new(shape: Integer, location_name: "coreCount"))
    LaunchTemplateCpuOptions.add_member(:threads_per_core, Shapes::ShapeRef.new(shape: Integer, location_name: "threadsPerCore"))
    LaunchTemplateCpuOptions.add_member(:amd_sev_snp, Shapes::ShapeRef.new(shape: AmdSevSnpSpecification, location_name: "amdSevSnp"))
    LaunchTemplateCpuOptions.struct_class = Types::LaunchTemplateCpuOptions

    LaunchTemplateCpuOptionsRequest.add_member(:core_count, Shapes::ShapeRef.new(shape: Integer, location_name: "CoreCount"))
    LaunchTemplateCpuOptionsRequest.add_member(:threads_per_core, Shapes::ShapeRef.new(shape: Integer, location_name: "ThreadsPerCore"))
    LaunchTemplateCpuOptionsRequest.add_member(:amd_sev_snp, Shapes::ShapeRef.new(shape: AmdSevSnpSpecification, location_name: "AmdSevSnp"))
    LaunchTemplateCpuOptionsRequest.struct_class = Types::LaunchTemplateCpuOptionsRequest

    LaunchTemplateEbsBlockDevice.add_member(:encrypted, Shapes::ShapeRef.new(shape: Boolean, location_name: "encrypted"))
    LaunchTemplateEbsBlockDevice.add_member(:delete_on_termination, Shapes::ShapeRef.new(shape: Boolean, location_name: "deleteOnTermination"))
    LaunchTemplateEbsBlockDevice.add_member(:iops, Shapes::ShapeRef.new(shape: Integer, location_name: "iops"))
    LaunchTemplateEbsBlockDevice.add_member(:kms_key_id, Shapes::ShapeRef.new(shape: KmsKeyId, location_name: "kmsKeyId"))
    LaunchTemplateEbsBlockDevice.add_member(:snapshot_id, Shapes::ShapeRef.new(shape: SnapshotId, location_name: "snapshotId"))
    LaunchTemplateEbsBlockDevice.add_member(:volume_size, Shapes::ShapeRef.new(shape: Integer, location_name: "volumeSize"))
    LaunchTemplateEbsBlockDevice.add_member(:volume_type, Shapes::ShapeRef.new(shape: VolumeType, location_name: "volumeType"))
    LaunchTemplateEbsBlockDevice.add_member(:throughput, Shapes::ShapeRef.new(shape: Integer, location_name: "throughput"))
    LaunchTemplateEbsBlockDevice.struct_class = Types::LaunchTemplateEbsBlockDevice

    LaunchTemplateEbsBlockDeviceRequest.add_member(:encrypted, Shapes::ShapeRef.new(shape: Boolean, location_name: "Encrypted"))
    LaunchTemplateEbsBlockDeviceRequest.add_member(:delete_on_termination, Shapes::ShapeRef.new(shape: Boolean, location_name: "DeleteOnTermination"))
    LaunchTemplateEbsBlockDeviceRequest.add_member(:iops, Shapes::ShapeRef.new(shape: Integer, location_name: "Iops"))
    LaunchTemplateEbsBlockDeviceRequest.add_member(:kms_key_id, Shapes::ShapeRef.new(shape: KmsKeyId, location_name: "KmsKeyId"))
    LaunchTemplateEbsBlockDeviceRequest.add_member(:snapshot_id, Shapes::ShapeRef.new(shape: SnapshotId, location_name: "SnapshotId"))
    LaunchTemplateEbsBlockDeviceRequest.add_member(:volume_size, Shapes::ShapeRef.new(shape: Integer, location_name: "VolumeSize"))
    LaunchTemplateEbsBlockDeviceRequest.add_member(:volume_type, Shapes::ShapeRef.new(shape: VolumeType, location_name: "VolumeType"))
    LaunchTemplateEbsBlockDeviceRequest.add_member(:throughput, Shapes::ShapeRef.new(shape: Integer, location_name: "Throughput"))
    LaunchTemplateEbsBlockDeviceRequest.struct_class = Types::LaunchTemplateEbsBlockDeviceRequest

    LaunchTemplateElasticInferenceAccelerator.add_member(:type, Shapes::ShapeRef.new(shape: String, required: true, location_name: "Type"))
    LaunchTemplateElasticInferenceAccelerator.add_member(:count, Shapes::ShapeRef.new(shape: LaunchTemplateElasticInferenceAcceleratorCount, location_name: "Count"))
    LaunchTemplateElasticInferenceAccelerator.struct_class = Types::LaunchTemplateElasticInferenceAccelerator

    LaunchTemplateElasticInferenceAcceleratorList.member = Shapes::ShapeRef.new(shape: LaunchTemplateElasticInferenceAccelerator, location_name: "item")

    LaunchTemplateElasticInferenceAcceleratorResponse.add_member(:type, Shapes::ShapeRef.new(shape: String, location_name: "type"))
    LaunchTemplateElasticInferenceAcceleratorResponse.add_member(:count, Shapes::ShapeRef.new(shape: Integer, location_name: "count"))
    LaunchTemplateElasticInferenceAcceleratorResponse.struct_class = Types::LaunchTemplateElasticInferenceAcceleratorResponse

    LaunchTemplateElasticInferenceAcceleratorResponseList.member = Shapes::ShapeRef.new(shape: LaunchTemplateElasticInferenceAcceleratorResponse, location_name: "item")

    LaunchTemplateEnaSrdSpecification.add_member(:ena_srd_enabled, Shapes::ShapeRef.new(shape: Boolean, location_name: "enaSrdEnabled"))
    LaunchTemplateEnaSrdSpecification.add_member(:ena_srd_udp_specification, Shapes::ShapeRef.new(shape: LaunchTemplateEnaSrdUdpSpecification, location_name: "enaSrdUdpSpecification"))
    LaunchTemplateEnaSrdSpecification.struct_class = Types::LaunchTemplateEnaSrdSpecification

    LaunchTemplateEnaSrdUdpSpecification.add_member(:ena_srd_udp_enabled, Shapes::ShapeRef.new(shape: Boolean, location_name: "enaSrdUdpEnabled"))
    LaunchTemplateEnaSrdUdpSpecification.struct_class = Types::LaunchTemplateEnaSrdUdpSpecification

    LaunchTemplateEnclaveOptions.add_member(:enabled, Shapes::ShapeRef.new(shape: Boolean, location_name: "enabled"))
    LaunchTemplateEnclaveOptions.struct_class = Types::LaunchTemplateEnclaveOptions

    LaunchTemplateEnclaveOptionsRequest.add_member(:enabled, Shapes::ShapeRef.new(shape: Boolean, location_name: "Enabled"))
    LaunchTemplateEnclaveOptionsRequest.struct_class = Types::LaunchTemplateEnclaveOptionsRequest

    LaunchTemplateHibernationOptions.add_member(:configured, Shapes::ShapeRef.new(shape: Boolean, location_name: "configured"))
    LaunchTemplateHibernationOptions.struct_class = Types::LaunchTemplateHibernationOptions

    LaunchTemplateHibernationOptionsRequest.add_member(:configured, Shapes::ShapeRef.new(shape: Boolean, location_name: "Configured"))
    LaunchTemplateHibernationOptionsRequest.struct_class = Types::LaunchTemplateHibernationOptionsRequest

    LaunchTemplateIamInstanceProfileSpecification.add_member(:arn, Shapes::ShapeRef.new(shape: String, location_name: "arn"))
    LaunchTemplateIamInstanceProfileSpecification.add_member(:name, Shapes::ShapeRef.new(shape: String, location_name: "name"))
    LaunchTemplateIamInstanceProfileSpecification.struct_class = Types::LaunchTemplateIamInstanceProfileSpecification

    LaunchTemplateIamInstanceProfileSpecificationRequest.add_member(:arn, Shapes::ShapeRef.new(shape: String, location_name: "Arn"))
    LaunchTemplateIamInstanceProfileSpecificationRequest.add_member(:name, Shapes::ShapeRef.new(shape: String, location_name: "Name"))
    LaunchTemplateIamInstanceProfileSpecificationRequest.struct_class = Types::LaunchTemplateIamInstanceProfileSpecificationRequest

    LaunchTemplateIdStringList.member = Shapes::ShapeRef.new(shape: LaunchTemplateId, location_name: "item")

    LaunchTemplateInstanceMaintenanceOptions.add_member(:auto_recovery, Shapes::ShapeRef.new(shape: LaunchTemplateAutoRecoveryState, location_name: "autoRecovery"))
    LaunchTemplateInstanceMaintenanceOptions.struct_class = Types::LaunchTemplateInstanceMaintenanceOptions

    LaunchTemplateInstanceMaintenanceOptionsRequest.add_member(:auto_recovery, Shapes::ShapeRef.new(shape: LaunchTemplateAutoRecoveryState, location_name: "AutoRecovery"))
    LaunchTemplateInstanceMaintenanceOptionsRequest.struct_class = Types::LaunchTemplateInstanceMaintenanceOptionsRequest

    LaunchTemplateInstanceMarketOptions.add_member(:market_type, Shapes::ShapeRef.new(shape: MarketType, location_name: "marketType"))
    LaunchTemplateInstanceMarketOptions.add_member(:spot_options, Shapes::ShapeRef.new(shape: LaunchTemplateSpotMarketOptions, location_name: "spotOptions"))
    LaunchTemplateInstanceMarketOptions.struct_class = Types::LaunchTemplateInstanceMarketOptions

    LaunchTemplateInstanceMarketOptionsRequest.add_member(:market_type, Shapes::ShapeRef.new(shape: MarketType, location_name: "MarketType"))
    LaunchTemplateInstanceMarketOptionsRequest.add_member(:spot_options, Shapes::ShapeRef.new(shape: LaunchTemplateSpotMarketOptionsRequest, location_name: "SpotOptions"))
    LaunchTemplateInstanceMarketOptionsRequest.struct_class = Types::LaunchTemplateInstanceMarketOptionsRequest

    LaunchTemplateInstanceMetadataOptions.add_member(:state, Shapes::ShapeRef.new(shape: LaunchTemplateInstanceMetadataOptionsState, location_name: "state"))
    LaunchTemplateInstanceMetadataOptions.add_member(:http_tokens, Shapes::ShapeRef.new(shape: LaunchTemplateHttpTokensState, location_name: "httpTokens"))
    LaunchTemplateInstanceMetadataOptions.add_member(:http_put_response_hop_limit, Shapes::ShapeRef.new(shape: Integer, location_name: "httpPutResponseHopLimit"))
    LaunchTemplateInstanceMetadataOptions.add_member(:http_endpoint, Shapes::ShapeRef.new(shape: LaunchTemplateInstanceMetadataEndpointState, location_name: "httpEndpoint"))
    LaunchTemplateInstanceMetadataOptions.add_member(:http_protocol_ipv_6, Shapes::ShapeRef.new(shape: LaunchTemplateInstanceMetadataProtocolIpv6, location_name: "httpProtocolIpv6"))
    LaunchTemplateInstanceMetadataOptions.add_member(:instance_metadata_tags, Shapes::ShapeRef.new(shape: LaunchTemplateInstanceMetadataTagsState, location_name: "instanceMetadataTags"))
    LaunchTemplateInstanceMetadataOptions.struct_class = Types::LaunchTemplateInstanceMetadataOptions

    LaunchTemplateInstanceMetadataOptionsRequest.add_member(:http_tokens, Shapes::ShapeRef.new(shape: LaunchTemplateHttpTokensState, location_name: "HttpTokens"))
    LaunchTemplateInstanceMetadataOptionsRequest.add_member(:http_put_response_hop_limit, Shapes::ShapeRef.new(shape: Integer, location_name: "HttpPutResponseHopLimit"))
    LaunchTemplateInstanceMetadataOptionsRequest.add_member(:http_endpoint, Shapes::ShapeRef.new(shape: LaunchTemplateInstanceMetadataEndpointState, location_name: "HttpEndpoint"))
    LaunchTemplateInstanceMetadataOptionsRequest.add_member(:http_protocol_ipv_6, Shapes::ShapeRef.new(shape: LaunchTemplateInstanceMetadataProtocolIpv6, location_name: "HttpProtocolIpv6"))
    LaunchTemplateInstanceMetadataOptionsRequest.add_member(:instance_metadata_tags, Shapes::ShapeRef.new(shape: LaunchTemplateInstanceMetadataTagsState, location_name: "InstanceMetadataTags"))
    LaunchTemplateInstanceMetadataOptionsRequest.struct_class = Types::LaunchTemplateInstanceMetadataOptionsRequest

    LaunchTemplateInstanceNetworkInterfaceSpecification.add_member(:associate_carrier_ip_address, Shapes::ShapeRef.new(shape: Boolean, location_name: "associateCarrierIpAddress"))
    LaunchTemplateInstanceNetworkInterfaceSpecification.add_member(:associate_public_ip_address, Shapes::ShapeRef.new(shape: Boolean, location_name: "associatePublicIpAddress"))
    LaunchTemplateInstanceNetworkInterfaceSpecification.add_member(:delete_on_termination, Shapes::ShapeRef.new(shape: Boolean, location_name: "deleteOnTermination"))
    LaunchTemplateInstanceNetworkInterfaceSpecification.add_member(:description, Shapes::ShapeRef.new(shape: String, location_name: "description"))
    LaunchTemplateInstanceNetworkInterfaceSpecification.add_member(:device_index, Shapes::ShapeRef.new(shape: Integer, location_name: "deviceIndex"))
    LaunchTemplateInstanceNetworkInterfaceSpecification.add_member(:groups, Shapes::ShapeRef.new(shape: GroupIdStringList, location_name: "groupSet"))
    LaunchTemplateInstanceNetworkInterfaceSpecification.add_member(:interface_type, Shapes::ShapeRef.new(shape: String, location_name: "interfaceType"))
    LaunchTemplateInstanceNetworkInterfaceSpecification.add_member(:ipv_6_address_count, Shapes::ShapeRef.new(shape: Integer, location_name: "ipv6AddressCount"))
    LaunchTemplateInstanceNetworkInterfaceSpecification.add_member(:ipv_6_addresses, Shapes::ShapeRef.new(shape: InstanceIpv6AddressList, location_name: "ipv6AddressesSet"))
    LaunchTemplateInstanceNetworkInterfaceSpecification.add_member(:network_interface_id, Shapes::ShapeRef.new(shape: NetworkInterfaceId, location_name: "networkInterfaceId"))
    LaunchTemplateInstanceNetworkInterfaceSpecification.add_member(:private_ip_address, Shapes::ShapeRef.new(shape: String, location_name: "privateIpAddress"))
    LaunchTemplateInstanceNetworkInterfaceSpecification.add_member(:private_ip_addresses, Shapes::ShapeRef.new(shape: PrivateIpAddressSpecificationList, location_name: "privateIpAddressesSet"))
    LaunchTemplateInstanceNetworkInterfaceSpecification.add_member(:secondary_private_ip_address_count, Shapes::ShapeRef.new(shape: Integer, location_name: "secondaryPrivateIpAddressCount"))
    LaunchTemplateInstanceNetworkInterfaceSpecification.add_member(:subnet_id, Shapes::ShapeRef.new(shape: SubnetId, location_name: "subnetId"))
    LaunchTemplateInstanceNetworkInterfaceSpecification.add_member(:network_card_index, Shapes::ShapeRef.new(shape: Integer, location_name: "networkCardIndex"))
    LaunchTemplateInstanceNetworkInterfaceSpecification.add_member(:ipv_4_prefixes, Shapes::ShapeRef.new(shape: Ipv4PrefixListResponse, location_name: "ipv4PrefixSet"))
    LaunchTemplateInstanceNetworkInterfaceSpecification.add_member(:ipv_4_prefix_count, Shapes::ShapeRef.new(shape: Integer, location_name: "ipv4PrefixCount"))
    LaunchTemplateInstanceNetworkInterfaceSpecification.add_member(:ipv_6_prefixes, Shapes::ShapeRef.new(shape: Ipv6PrefixListResponse, location_name: "ipv6PrefixSet"))
    LaunchTemplateInstanceNetworkInterfaceSpecification.add_member(:ipv_6_prefix_count, Shapes::ShapeRef.new(shape: Integer, location_name: "ipv6PrefixCount"))
    LaunchTemplateInstanceNetworkInterfaceSpecification.add_member(:primary_ipv_6, Shapes::ShapeRef.new(shape: Boolean, location_name: "primaryIpv6"))
    LaunchTemplateInstanceNetworkInterfaceSpecification.add_member(:ena_srd_specification, Shapes::ShapeRef.new(shape: LaunchTemplateEnaSrdSpecification, location_name: "enaSrdSpecification"))
    LaunchTemplateInstanceNetworkInterfaceSpecification.add_member(:connection_tracking_specification, Shapes::ShapeRef.new(shape: ConnectionTrackingSpecification, location_name: "connectionTrackingSpecification"))
    LaunchTemplateInstanceNetworkInterfaceSpecification.struct_class = Types::LaunchTemplateInstanceNetworkInterfaceSpecification

    LaunchTemplateInstanceNetworkInterfaceSpecificationList.member = Shapes::ShapeRef.new(shape: LaunchTemplateInstanceNetworkInterfaceSpecification, location_name: "item")

    LaunchTemplateInstanceNetworkInterfaceSpecificationRequest.add_member(:associate_carrier_ip_address, Shapes::ShapeRef.new(shape: Boolean, location_name: "AssociateCarrierIpAddress"))
    LaunchTemplateInstanceNetworkInterfaceSpecificationRequest.add_member(:associate_public_ip_address, Shapes::ShapeRef.new(shape: Boolean, location_name: "AssociatePublicIpAddress"))
    LaunchTemplateInstanceNetworkInterfaceSpecificationRequest.add_member(:delete_on_termination, Shapes::ShapeRef.new(shape: Boolean, location_name: "DeleteOnTermination"))
    LaunchTemplateInstanceNetworkInterfaceSpecificationRequest.add_member(:description, Shapes::ShapeRef.new(shape: String, location_name: "Description"))
    LaunchTemplateInstanceNetworkInterfaceSpecificationRequest.add_member(:device_index, Shapes::ShapeRef.new(shape: Integer, location_name: "DeviceIndex"))
    LaunchTemplateInstanceNetworkInterfaceSpecificationRequest.add_member(:groups, Shapes::ShapeRef.new(shape: SecurityGroupIdStringList, location_name: "SecurityGroupId"))
    LaunchTemplateInstanceNetworkInterfaceSpecificationRequest.add_member(:interface_type, Shapes::ShapeRef.new(shape: String, location_name: "InterfaceType"))
    LaunchTemplateInstanceNetworkInterfaceSpecificationRequest.add_member(:ipv_6_address_count, Shapes::ShapeRef.new(shape: Integer, location_name: "Ipv6AddressCount"))
    LaunchTemplateInstanceNetworkInterfaceSpecificationRequest.add_member(:ipv_6_addresses, Shapes::ShapeRef.new(shape: InstanceIpv6AddressListRequest, location_name: "Ipv6Addresses"))
    LaunchTemplateInstanceNetworkInterfaceSpecificationRequest.add_member(:network_interface_id, Shapes::ShapeRef.new(shape: NetworkInterfaceId, location_name: "NetworkInterfaceId"))
    LaunchTemplateInstanceNetworkInterfaceSpecificationRequest.add_member(:private_ip_address, Shapes::ShapeRef.new(shape: String, location_name: "PrivateIpAddress"))
    LaunchTemplateInstanceNetworkInterfaceSpecificationRequest.add_member(:private_ip_addresses, Shapes::ShapeRef.new(shape: PrivateIpAddressSpecificationList, location_name: "PrivateIpAddresses"))
    LaunchTemplateInstanceNetworkInterfaceSpecificationRequest.add_member(:secondary_private_ip_address_count, Shapes::ShapeRef.new(shape: Integer, location_name: "SecondaryPrivateIpAddressCount"))
    LaunchTemplateInstanceNetworkInterfaceSpecificationRequest.add_member(:subnet_id, Shapes::ShapeRef.new(shape: SubnetId, location_name: "SubnetId"))
    LaunchTemplateInstanceNetworkInterfaceSpecificationRequest.add_member(:network_card_index, Shapes::ShapeRef.new(shape: Integer, location_name: "NetworkCardIndex"))
    LaunchTemplateInstanceNetworkInterfaceSpecificationRequest.add_member(:ipv_4_prefixes, Shapes::ShapeRef.new(shape: Ipv4PrefixList, location_name: "Ipv4Prefix"))
    LaunchTemplateInstanceNetworkInterfaceSpecificationRequest.add_member(:ipv_4_prefix_count, Shapes::ShapeRef.new(shape: Integer, location_name: "Ipv4PrefixCount"))
    LaunchTemplateInstanceNetworkInterfaceSpecificationRequest.add_member(:ipv_6_prefixes, Shapes::ShapeRef.new(shape: Ipv6PrefixList, location_name: "Ipv6Prefix"))
    LaunchTemplateInstanceNetworkInterfaceSpecificationRequest.add_member(:ipv_6_prefix_count, Shapes::ShapeRef.new(shape: Integer, location_name: "Ipv6PrefixCount"))
    LaunchTemplateInstanceNetworkInterfaceSpecificationRequest.add_member(:primary_ipv_6, Shapes::ShapeRef.new(shape: Boolean, location_name: "PrimaryIpv6"))
    LaunchTemplateInstanceNetworkInterfaceSpecificationRequest.add_member(:ena_srd_specification, Shapes::ShapeRef.new(shape: EnaSrdSpecificationRequest, location_name: "EnaSrdSpecification"))
    LaunchTemplateInstanceNetworkInterfaceSpecificationRequest.add_member(:connection_tracking_specification, Shapes::ShapeRef.new(shape: ConnectionTrackingSpecificationRequest, location_name: "ConnectionTrackingSpecification"))
    LaunchTemplateInstanceNetworkInterfaceSpecificationRequest.struct_class = Types::LaunchTemplateInstanceNetworkInterfaceSpecificationRequest

    LaunchTemplateInstanceNetworkInterfaceSpecificationRequestList.member = Shapes::ShapeRef.new(shape: LaunchTemplateInstanceNetworkInterfaceSpecificationRequest, location_name: "InstanceNetworkInterfaceSpecification")

    LaunchTemplateLicenseConfiguration.add_member(:license_configuration_arn, Shapes::ShapeRef.new(shape: String, location_name: "licenseConfigurationArn"))
    LaunchTemplateLicenseConfiguration.struct_class = Types::LaunchTemplateLicenseConfiguration

    LaunchTemplateLicenseConfigurationRequest.add_member(:license_configuration_arn, Shapes::ShapeRef.new(shape: String, location_name: "LicenseConfigurationArn"))
    LaunchTemplateLicenseConfigurationRequest.struct_class = Types::LaunchTemplateLicenseConfigurationRequest

    LaunchTemplateLicenseList.member = Shapes::ShapeRef.new(shape: LaunchTemplateLicenseConfiguration, location_name: "item")

    LaunchTemplateLicenseSpecificationListRequest.member = Shapes::ShapeRef.new(shape: LaunchTemplateLicenseConfigurationRequest, location_name: "item")

    LaunchTemplateNameStringList.member = Shapes::ShapeRef.new(shape: LaunchTemplateName, location_name: "item")

    LaunchTemplateNetworkPerformanceOptions.add_member(:bandwidth_weighting, Shapes::ShapeRef.new(shape: InstanceBandwidthWeighting, location_name: "bandwidthWeighting"))
    LaunchTemplateNetworkPerformanceOptions.struct_class = Types::LaunchTemplateNetworkPerformanceOptions

    LaunchTemplateNetworkPerformanceOptionsRequest.add_member(:bandwidth_weighting, Shapes::ShapeRef.new(shape: InstanceBandwidthWeighting, location_name: "BandwidthWeighting"))
    LaunchTemplateNetworkPerformanceOptionsRequest.struct_class = Types::LaunchTemplateNetworkPerformanceOptionsRequest

    LaunchTemplateOverrides.add_member(:instance_type, Shapes::ShapeRef.new(shape: InstanceType, location_name: "instanceType"))
    LaunchTemplateOverrides.add_member(:spot_price, Shapes::ShapeRef.new(shape: String, location_name: "spotPrice"))
    LaunchTemplateOverrides.add_member(:subnet_id, Shapes::ShapeRef.new(shape: SubnetId, location_name: "subnetId"))
    LaunchTemplateOverrides.add_member(:availability_zone, Shapes::ShapeRef.new(shape: String, location_name: "availabilityZone"))
    LaunchTemplateOverrides.add_member(:weighted_capacity, Shapes::ShapeRef.new(shape: Double, location_name: "weightedCapacity"))
    LaunchTemplateOverrides.add_member(:priority, Shapes::ShapeRef.new(shape: Double, location_name: "priority"))
    LaunchTemplateOverrides.add_member(:instance_requirements, Shapes::ShapeRef.new(shape: InstanceRequirements, location_name: "instanceRequirements"))
    LaunchTemplateOverrides.struct_class = Types::LaunchTemplateOverrides

    LaunchTemplateOverridesList.member = Shapes::ShapeRef.new(shape: LaunchTemplateOverrides, location_name: "item")

    LaunchTemplatePlacement.add_member(:availability_zone, Shapes::ShapeRef.new(shape: String, location_name: "availabilityZone"))
    LaunchTemplatePlacement.add_member(:affinity, Shapes::ShapeRef.new(shape: String, location_name: "affinity"))
    LaunchTemplatePlacement.add_member(:group_name, Shapes::ShapeRef.new(shape: String, location_name: "groupName"))
    LaunchTemplatePlacement.add_member(:host_id, Shapes::ShapeRef.new(shape: String, location_name: "hostId"))
    LaunchTemplatePlacement.add_member(:tenancy, Shapes::ShapeRef.new(shape: Tenancy, location_name: "tenancy"))
    LaunchTemplatePlacement.add_member(:spread_domain, Shapes::ShapeRef.new(shape: String, location_name: "spreadDomain"))
    LaunchTemplatePlacement.add_member(:host_resource_group_arn, Shapes::ShapeRef.new(shape: String, location_name: "hostResourceGroupArn"))
    LaunchTemplatePlacement.add_member(:partition_number, Shapes::ShapeRef.new(shape: Integer, location_name: "partitionNumber"))
    LaunchTemplatePlacement.add_member(:group_id, Shapes::ShapeRef.new(shape: PlacementGroupId, location_name: "groupId"))
    LaunchTemplatePlacement.struct_class = Types::LaunchTemplatePlacement

    LaunchTemplatePlacementRequest.add_member(:availability_zone, Shapes::ShapeRef.new(shape: String, location_name: "AvailabilityZone"))
    LaunchTemplatePlacementRequest.add_member(:affinity, Shapes::ShapeRef.new(shape: String, location_name: "Affinity"))
    LaunchTemplatePlacementRequest.add_member(:group_name, Shapes::ShapeRef.new(shape: PlacementGroupName, location_name: "GroupName"))
    LaunchTemplatePlacementRequest.add_member(:host_id, Shapes::ShapeRef.new(shape: DedicatedHostId, location_name: "HostId"))
    LaunchTemplatePlacementRequest.add_member(:tenancy, Shapes::ShapeRef.new(shape: Tenancy, location_name: "Tenancy"))
    LaunchTemplatePlacementRequest.add_member(:spread_domain, Shapes::ShapeRef.new(shape: String, location_name: "SpreadDomain"))
    LaunchTemplatePlacementRequest.add_member(:host_resource_group_arn, Shapes::ShapeRef.new(shape: String, location_name: "HostResourceGroupArn"))
    LaunchTemplatePlacementRequest.add_member(:partition_number, Shapes::ShapeRef.new(shape: Integer, location_name: "PartitionNumber"))
    LaunchTemplatePlacementRequest.add_member(:group_id, Shapes::ShapeRef.new(shape: PlacementGroupId, location_name: "GroupId"))
    LaunchTemplatePlacementRequest.struct_class = Types::LaunchTemplatePlacementRequest

    LaunchTemplatePrivateDnsNameOptions.add_member(:hostname_type, Shapes::ShapeRef.new(shape: HostnameType, location_name: "hostnameType"))
    LaunchTemplatePrivateDnsNameOptions.add_member(:enable_resource_name_dns_a_record, Shapes::ShapeRef.new(shape: Boolean, location_name: "enableResourceNameDnsARecord"))
    LaunchTemplatePrivateDnsNameOptions.add_member(:enable_resource_name_dns_aaaa_record, Shapes::ShapeRef.new(shape: Boolean, location_name: "enableResourceNameDnsAAAARecord"))
    LaunchTemplatePrivateDnsNameOptions.struct_class = Types::LaunchTemplatePrivateDnsNameOptions

    LaunchTemplatePrivateDnsNameOptionsRequest.add_member(:hostname_type, Shapes::ShapeRef.new(shape: HostnameType, location_name: "HostnameType"))
    LaunchTemplatePrivateDnsNameOptionsRequest.add_member(:enable_resource_name_dns_a_record, Shapes::ShapeRef.new(shape: Boolean, location_name: "EnableResourceNameDnsARecord"))
    LaunchTemplatePrivateDnsNameOptionsRequest.add_member(:enable_resource_name_dns_aaaa_record, Shapes::ShapeRef.new(shape: Boolean, location_name: "EnableResourceNameDnsAAAARecord"))
    LaunchTemplatePrivateDnsNameOptionsRequest.struct_class = Types::LaunchTemplatePrivateDnsNameOptionsRequest

    LaunchTemplateSet.member = Shapes::ShapeRef.new(shape: LaunchTemplate, location_name: "item")

    LaunchTemplateSpecification.add_member(:launch_template_id, Shapes::ShapeRef.new(shape: LaunchTemplateId, location_name: "LaunchTemplateId"))
    LaunchTemplateSpecification.add_member(:launch_template_name, Shapes::ShapeRef.new(shape: String, location_name: "LaunchTemplateName"))
    LaunchTemplateSpecification.add_member(:version, Shapes::ShapeRef.new(shape: String, location_name: "Version"))
    LaunchTemplateSpecification.struct_class = Types::LaunchTemplateSpecification

    LaunchTemplateSpotMarketOptions.add_member(:max_price, Shapes::ShapeRef.new(shape: String, location_name: "maxPrice"))
    LaunchTemplateSpotMarketOptions.add_member(:spot_instance_type, Shapes::ShapeRef.new(shape: SpotInstanceType, location_name: "spotInstanceType"))
    LaunchTemplateSpotMarketOptions.add_member(:block_duration_minutes, Shapes::ShapeRef.new(shape: Integer, location_name: "blockDurationMinutes"))
    LaunchTemplateSpotMarketOptions.add_member(:valid_until, Shapes::ShapeRef.new(shape: DateTime, location_name: "validUntil"))
    LaunchTemplateSpotMarketOptions.add_member(:instance_interruption_behavior, Shapes::ShapeRef.new(shape: InstanceInterruptionBehavior, location_name: "instanceInterruptionBehavior"))
    LaunchTemplateSpotMarketOptions.struct_class = Types::LaunchTemplateSpotMarketOptions

    LaunchTemplateSpotMarketOptionsRequest.add_member(:max_price, Shapes::ShapeRef.new(shape: String, location_name: "MaxPrice"))
    LaunchTemplateSpotMarketOptionsRequest.add_member(:spot_instance_type, Shapes::ShapeRef.new(shape: SpotInstanceType, location_name: "SpotInstanceType"))
    LaunchTemplateSpotMarketOptionsRequest.add_member(:block_duration_minutes, Shapes::ShapeRef.new(shape: Integer, location_name: "BlockDurationMinutes"))
    LaunchTemplateSpotMarketOptionsRequest.add_member(:valid_until, Shapes::ShapeRef.new(shape: DateTime, location_name: "ValidUntil"))
    LaunchTemplateSpotMarketOptionsRequest.add_member(:instance_interruption_behavior, Shapes::ShapeRef.new(shape: InstanceInterruptionBehavior, location_name: "InstanceInterruptionBehavior"))
    LaunchTemplateSpotMarketOptionsRequest.struct_class = Types::LaunchTemplateSpotMarketOptionsRequest

    LaunchTemplateTagSpecification.add_member(:resource_type, Shapes::ShapeRef.new(shape: ResourceType, location_name: "resourceType"))
    LaunchTemplateTagSpecification.add_member(:tags, Shapes::ShapeRef.new(shape: TagList, location_name: "tagSet"))
    LaunchTemplateTagSpecification.struct_class = Types::LaunchTemplateTagSpecification

    LaunchTemplateTagSpecificationList.member = Shapes::ShapeRef.new(shape: LaunchTemplateTagSpecification, location_name: "item")

    LaunchTemplateTagSpecificationRequest.add_member(:resource_type, Shapes::ShapeRef.new(shape: ResourceType, location_name: "ResourceType"))
    LaunchTemplateTagSpecificationRequest.add_member(:tags, Shapes::ShapeRef.new(shape: TagList, location_name: "Tag"))
    LaunchTemplateTagSpecificationRequest.struct_class = Types::LaunchTemplateTagSpecificationRequest

    LaunchTemplateTagSpecificationRequestList.member = Shapes::ShapeRef.new(shape: LaunchTemplateTagSpecificationRequest, location_name: "LaunchTemplateTagSpecificationRequest")

    LaunchTemplateVersion.add_member(:launch_template_id, Shapes::ShapeRef.new(shape: String, location_name: "launchTemplateId"))
    LaunchTemplateVersion.add_member(:launch_template_name, Shapes::ShapeRef.new(shape: LaunchTemplateName, location_name: "launchTemplateName"))
    LaunchTemplateVersion.add_member(:version_number, Shapes::ShapeRef.new(shape: Long, location_name: "versionNumber"))
    LaunchTemplateVersion.add_member(:version_description, Shapes::ShapeRef.new(shape: VersionDescription, location_name: "versionDescription"))
    LaunchTemplateVersion.add_member(:create_time, Shapes::ShapeRef.new(shape: DateTime, location_name: "createTime"))
    LaunchTemplateVersion.add_member(:created_by, Shapes::ShapeRef.new(shape: String, location_name: "createdBy"))
    LaunchTemplateVersion.add_member(:default_version, Shapes::ShapeRef.new(shape: Boolean, location_name: "defaultVersion"))
    LaunchTemplateVersion.add_member(:launch_template_data, Shapes::ShapeRef.new(shape: ResponseLaunchTemplateData, location_name: "launchTemplateData"))
    LaunchTemplateVersion.add_member(:operator, Shapes::ShapeRef.new(shape: OperatorResponse, location_name: "operator"))
    LaunchTemplateVersion.struct_class = Types::LaunchTemplateVersion

    LaunchTemplateVersionSet.member = Shapes::ShapeRef.new(shape: LaunchTemplateVersion, location_name: "item")

    LaunchTemplatesMonitoring.add_member(:enabled, Shapes::ShapeRef.new(shape: Boolean, location_name: "enabled"))
    LaunchTemplatesMonitoring.struct_class = Types::LaunchTemplatesMonitoring

    LaunchTemplatesMonitoringRequest.add_member(:enabled, Shapes::ShapeRef.new(shape: Boolean, location_name: "Enabled"))
    LaunchTemplatesMonitoringRequest.struct_class = Types::LaunchTemplatesMonitoringRequest

    LicenseConfiguration.add_member(:license_configuration_arn, Shapes::ShapeRef.new(shape: String, location_name: "licenseConfigurationArn"))
    LicenseConfiguration.struct_class = Types::LicenseConfiguration

    LicenseConfigurationRequest.add_member(:license_configuration_arn, Shapes::ShapeRef.new(shape: String, location_name: "LicenseConfigurationArn"))
    LicenseConfigurationRequest.struct_class = Types::LicenseConfigurationRequest

    LicenseList.member = Shapes::ShapeRef.new(shape: LicenseConfiguration, location_name: "item")

    LicenseSpecificationListRequest.member = Shapes::ShapeRef.new(shape: LicenseConfigurationRequest, location_name: "item")

    ListImagesInRecycleBinRequest.add_member(:image_ids, Shapes::ShapeRef.new(shape: ImageIdStringList, location_name: "ImageId"))
    ListImagesInRecycleBinRequest.add_member(:next_token, Shapes::ShapeRef.new(shape: String, location_name: "NextToken"))
    ListImagesInRecycleBinRequest.add_member(:max_results, Shapes::ShapeRef.new(shape: ListImagesInRecycleBinMaxResults, location_name: "MaxResults"))
    ListImagesInRecycleBinRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    ListImagesInRecycleBinRequest.struct_class = Types::ListImagesInRecycleBinRequest

    ListImagesInRecycleBinResult.add_member(:images, Shapes::ShapeRef.new(shape: ImageRecycleBinInfoList, location_name: "imageSet"))
    ListImagesInRecycleBinResult.add_member(:next_token, Shapes::ShapeRef.new(shape: String, location_name: "nextToken"))
    ListImagesInRecycleBinResult.struct_class = Types::ListImagesInRecycleBinResult

    ListSnapshotsInRecycleBinRequest.add_member(:max_results, Shapes::ShapeRef.new(shape: ListSnapshotsInRecycleBinMaxResults, location_name: "MaxResults"))
    ListSnapshotsInRecycleBinRequest.add_member(:next_token, Shapes::ShapeRef.new(shape: String, location_name: "NextToken"))
    ListSnapshotsInRecycleBinRequest.add_member(:snapshot_ids, Shapes::ShapeRef.new(shape: SnapshotIdStringList, location_name: "SnapshotId"))
    ListSnapshotsInRecycleBinRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    ListSnapshotsInRecycleBinRequest.struct_class = Types::ListSnapshotsInRecycleBinRequest

    ListSnapshotsInRecycleBinResult.add_member(:snapshots, Shapes::ShapeRef.new(shape: SnapshotRecycleBinInfoList, location_name: "snapshotSet"))
    ListSnapshotsInRecycleBinResult.add_member(:next_token, Shapes::ShapeRef.new(shape: String, location_name: "nextToken"))
    ListSnapshotsInRecycleBinResult.struct_class = Types::ListSnapshotsInRecycleBinResult

    LoadBalancersConfig.add_member(:classic_load_balancers_config, Shapes::ShapeRef.new(shape: ClassicLoadBalancersConfig, location_name: "classicLoadBalancersConfig"))
    LoadBalancersConfig.add_member(:target_groups_config, Shapes::ShapeRef.new(shape: TargetGroupsConfig, location_name: "targetGroupsConfig"))
    LoadBalancersConfig.struct_class = Types::LoadBalancersConfig

    LoadPermission.add_member(:user_id, Shapes::ShapeRef.new(shape: String, location_name: "userId"))
    LoadPermission.add_member(:group, Shapes::ShapeRef.new(shape: PermissionGroup, location_name: "group"))
    LoadPermission.struct_class = Types::LoadPermission

    LoadPermissionList.member = Shapes::ShapeRef.new(shape: LoadPermission, location_name: "item")

    LoadPermissionListRequest.member = Shapes::ShapeRef.new(shape: LoadPermissionRequest, location_name: "item")

    LoadPermissionModifications.add_member(:add, Shapes::ShapeRef.new(shape: LoadPermissionListRequest, location_name: "Add"))
    LoadPermissionModifications.add_member(:remove, Shapes::ShapeRef.new(shape: LoadPermissionListRequest, location_name: "Remove"))
    LoadPermissionModifications.struct_class = Types::LoadPermissionModifications

    LoadPermissionRequest.add_member(:group, Shapes::ShapeRef.new(shape: PermissionGroup, location_name: "Group"))
    LoadPermissionRequest.add_member(:user_id, Shapes::ShapeRef.new(shape: String, location_name: "UserId"))
    LoadPermissionRequest.struct_class = Types::LoadPermissionRequest

    LocalGateway.add_member(:local_gateway_id, Shapes::ShapeRef.new(shape: LocalGatewayId, location_name: "localGatewayId"))
    LocalGateway.add_member(:outpost_arn, Shapes::ShapeRef.new(shape: String, location_name: "outpostArn"))
    LocalGateway.add_member(:owner_id, Shapes::ShapeRef.new(shape: String, location_name: "ownerId"))
    LocalGateway.add_member(:state, Shapes::ShapeRef.new(shape: String, location_name: "state"))
    LocalGateway.add_member(:tags, Shapes::ShapeRef.new(shape: TagList, location_name: "tagSet"))
    LocalGateway.struct_class = Types::LocalGateway

    LocalGatewayIdSet.member = Shapes::ShapeRef.new(shape: LocalGatewayId, location_name: "item")

    LocalGatewayRoute.add_member(:destination_cidr_block, Shapes::ShapeRef.new(shape: String, location_name: "destinationCidrBlock"))
    LocalGatewayRoute.add_member(:local_gateway_virtual_interface_group_id, Shapes::ShapeRef.new(shape: LocalGatewayVirtualInterfaceGroupId, location_name: "localGatewayVirtualInterfaceGroupId"))
    LocalGatewayRoute.add_member(:type, Shapes::ShapeRef.new(shape: LocalGatewayRouteType, location_name: "type"))
    LocalGatewayRoute.add_member(:state, Shapes::ShapeRef.new(shape: LocalGatewayRouteState, location_name: "state"))
    LocalGatewayRoute.add_member(:local_gateway_route_table_id, Shapes::ShapeRef.new(shape: LocalGatewayRoutetableId, location_name: "localGatewayRouteTableId"))
    LocalGatewayRoute.add_member(:local_gateway_route_table_arn, Shapes::ShapeRef.new(shape: ResourceArn, location_name: "localGatewayRouteTableArn"))
    LocalGatewayRoute.add_member(:owner_id, Shapes::ShapeRef.new(shape: String, location_name: "ownerId"))
    LocalGatewayRoute.add_member(:subnet_id, Shapes::ShapeRef.new(shape: SubnetId, location_name: "subnetId"))
    LocalGatewayRoute.add_member(:coip_pool_id, Shapes::ShapeRef.new(shape: CoipPoolId, location_name: "coipPoolId"))
    LocalGatewayRoute.add_member(:network_interface_id, Shapes::ShapeRef.new(shape: NetworkInterfaceId, location_name: "networkInterfaceId"))
    LocalGatewayRoute.add_member(:destination_prefix_list_id, Shapes::ShapeRef.new(shape: PrefixListResourceId, location_name: "destinationPrefixListId"))
    LocalGatewayRoute.struct_class = Types::LocalGatewayRoute

    LocalGatewayRouteList.member = Shapes::ShapeRef.new(shape: LocalGatewayRoute, location_name: "item")

    LocalGatewayRouteTable.add_member(:local_gateway_route_table_id, Shapes::ShapeRef.new(shape: String, location_name: "localGatewayRouteTableId"))
    LocalGatewayRouteTable.add_member(:local_gateway_route_table_arn, Shapes::ShapeRef.new(shape: ResourceArn, location_name: "localGatewayRouteTableArn"))
    LocalGatewayRouteTable.add_member(:local_gateway_id, Shapes::ShapeRef.new(shape: LocalGatewayId, location_name: "localGatewayId"))
    LocalGatewayRouteTable.add_member(:outpost_arn, Shapes::ShapeRef.new(shape: String, location_name: "outpostArn"))
    LocalGatewayRouteTable.add_member(:owner_id, Shapes::ShapeRef.new(shape: String, location_name: "ownerId"))
    LocalGatewayRouteTable.add_member(:state, Shapes::ShapeRef.new(shape: String, location_name: "state"))
    LocalGatewayRouteTable.add_member(:tags, Shapes::ShapeRef.new(shape: TagList, location_name: "tagSet"))
    LocalGatewayRouteTable.add_member(:mode, Shapes::ShapeRef.new(shape: LocalGatewayRouteTableMode, location_name: "mode"))
    LocalGatewayRouteTable.add_member(:state_reason, Shapes::ShapeRef.new(shape: StateReason, location_name: "stateReason"))
    LocalGatewayRouteTable.struct_class = Types::LocalGatewayRouteTable

    LocalGatewayRouteTableIdSet.member = Shapes::ShapeRef.new(shape: LocalGatewayRoutetableId, location_name: "item")

    LocalGatewayRouteTableSet.member = Shapes::ShapeRef.new(shape: LocalGatewayRouteTable, location_name: "item")

    LocalGatewayRouteTableVirtualInterfaceGroupAssociation.add_member(:local_gateway_route_table_virtual_interface_group_association_id, Shapes::ShapeRef.new(shape: LocalGatewayRouteTableVirtualInterfaceGroupAssociationId, location_name: "localGatewayRouteTableVirtualInterfaceGroupAssociationId"))
    LocalGatewayRouteTableVirtualInterfaceGroupAssociation.add_member(:local_gateway_virtual_interface_group_id, Shapes::ShapeRef.new(shape: LocalGatewayVirtualInterfaceGroupId, location_name: "localGatewayVirtualInterfaceGroupId"))
    LocalGatewayRouteTableVirtualInterfaceGroupAssociation.add_member(:local_gateway_id, Shapes::ShapeRef.new(shape: String, location_name: "localGatewayId"))
    LocalGatewayRouteTableVirtualInterfaceGroupAssociation.add_member(:local_gateway_route_table_id, Shapes::ShapeRef.new(shape: LocalGatewayId, location_name: "localGatewayRouteTableId"))
    LocalGatewayRouteTableVirtualInterfaceGroupAssociation.add_member(:local_gateway_route_table_arn, Shapes::ShapeRef.new(shape: ResourceArn, location_name: "localGatewayRouteTableArn"))
    LocalGatewayRouteTableVirtualInterfaceGroupAssociation.add_member(:owner_id, Shapes::ShapeRef.new(shape: String, location_name: "ownerId"))
    LocalGatewayRouteTableVirtualInterfaceGroupAssociation.add_member(:state, Shapes::ShapeRef.new(shape: String, location_name: "state"))
    LocalGatewayRouteTableVirtualInterfaceGroupAssociation.add_member(:tags, Shapes::ShapeRef.new(shape: TagList, location_name: "tagSet"))
    LocalGatewayRouteTableVirtualInterfaceGroupAssociation.struct_class = Types::LocalGatewayRouteTableVirtualInterfaceGroupAssociation

    LocalGatewayRouteTableVirtualInterfaceGroupAssociationIdSet.member = Shapes::ShapeRef.new(shape: LocalGatewayRouteTableVirtualInterfaceGroupAssociationId, location_name: "item")

    LocalGatewayRouteTableVirtualInterfaceGroupAssociationSet.member = Shapes::ShapeRef.new(shape: LocalGatewayRouteTableVirtualInterfaceGroupAssociation, location_name: "item")

    LocalGatewayRouteTableVpcAssociation.add_member(:local_gateway_route_table_vpc_association_id, Shapes::ShapeRef.new(shape: LocalGatewayRouteTableVpcAssociationId, location_name: "localGatewayRouteTableVpcAssociationId"))
    LocalGatewayRouteTableVpcAssociation.add_member(:local_gateway_route_table_id, Shapes::ShapeRef.new(shape: String, location_name: "localGatewayRouteTableId"))
    LocalGatewayRouteTableVpcAssociation.add_member(:local_gateway_route_table_arn, Shapes::ShapeRef.new(shape: ResourceArn, location_name: "localGatewayRouteTableArn"))
    LocalGatewayRouteTableVpcAssociation.add_member(:local_gateway_id, Shapes::ShapeRef.new(shape: String, location_name: "localGatewayId"))
    LocalGatewayRouteTableVpcAssociation.add_member(:vpc_id, Shapes::ShapeRef.new(shape: String, location_name: "vpcId"))
    LocalGatewayRouteTableVpcAssociation.add_member(:owner_id, Shapes::ShapeRef.new(shape: String, location_name: "ownerId"))
    LocalGatewayRouteTableVpcAssociation.add_member(:state, Shapes::ShapeRef.new(shape: String, location_name: "state"))
    LocalGatewayRouteTableVpcAssociation.add_member(:tags, Shapes::ShapeRef.new(shape: TagList, location_name: "tagSet"))
    LocalGatewayRouteTableVpcAssociation.struct_class = Types::LocalGatewayRouteTableVpcAssociation

    LocalGatewayRouteTableVpcAssociationIdSet.member = Shapes::ShapeRef.new(shape: LocalGatewayRouteTableVpcAssociationId, location_name: "item")

    LocalGatewayRouteTableVpcAssociationSet.member = Shapes::ShapeRef.new(shape: LocalGatewayRouteTableVpcAssociation, location_name: "item")

    LocalGatewaySet.member = Shapes::ShapeRef.new(shape: LocalGateway, location_name: "item")

    LocalGatewayVirtualInterface.add_member(:local_gateway_virtual_interface_id, Shapes::ShapeRef.new(shape: LocalGatewayVirtualInterfaceId, location_name: "localGatewayVirtualInterfaceId"))
    LocalGatewayVirtualInterface.add_member(:local_gateway_id, Shapes::ShapeRef.new(shape: String, location_name: "localGatewayId"))
    LocalGatewayVirtualInterface.add_member(:vlan, Shapes::ShapeRef.new(shape: Integer, location_name: "vlan"))
    LocalGatewayVirtualInterface.add_member(:local_address, Shapes::ShapeRef.new(shape: String, location_name: "localAddress"))
    LocalGatewayVirtualInterface.add_member(:peer_address, Shapes::ShapeRef.new(shape: String, location_name: "peerAddress"))
    LocalGatewayVirtualInterface.add_member(:local_bgp_asn, Shapes::ShapeRef.new(shape: Integer, location_name: "localBgpAsn"))
    LocalGatewayVirtualInterface.add_member(:peer_bgp_asn, Shapes::ShapeRef.new(shape: Integer, location_name: "peerBgpAsn"))
    LocalGatewayVirtualInterface.add_member(:owner_id, Shapes::ShapeRef.new(shape: String, location_name: "ownerId"))
    LocalGatewayVirtualInterface.add_member(:tags, Shapes::ShapeRef.new(shape: TagList, location_name: "tagSet"))
    LocalGatewayVirtualInterface.struct_class = Types::LocalGatewayVirtualInterface

    LocalGatewayVirtualInterfaceGroup.add_member(:local_gateway_virtual_interface_group_id, Shapes::ShapeRef.new(shape: LocalGatewayVirtualInterfaceGroupId, location_name: "localGatewayVirtualInterfaceGroupId"))
    LocalGatewayVirtualInterfaceGroup.add_member(:local_gateway_virtual_interface_ids, Shapes::ShapeRef.new(shape: LocalGatewayVirtualInterfaceIdSet, location_name: "localGatewayVirtualInterfaceIdSet"))
    LocalGatewayVirtualInterfaceGroup.add_member(:local_gateway_id, Shapes::ShapeRef.new(shape: String, location_name: "localGatewayId"))
    LocalGatewayVirtualInterfaceGroup.add_member(:owner_id, Shapes::ShapeRef.new(shape: String, location_name: "ownerId"))
    LocalGatewayVirtualInterfaceGroup.add_member(:tags, Shapes::ShapeRef.new(shape: TagList, location_name: "tagSet"))
    LocalGatewayVirtualInterfaceGroup.struct_class = Types::LocalGatewayVirtualInterfaceGroup

    LocalGatewayVirtualInterfaceGroupIdSet.member = Shapes::ShapeRef.new(shape: LocalGatewayVirtualInterfaceGroupId, location_name: "item")

    LocalGatewayVirtualInterfaceGroupSet.member = Shapes::ShapeRef.new(shape: LocalGatewayVirtualInterfaceGroup, location_name: "item")

    LocalGatewayVirtualInterfaceIdSet.member = Shapes::ShapeRef.new(shape: LocalGatewayVirtualInterfaceId, location_name: "item")

    LocalGatewayVirtualInterfaceSet.member = Shapes::ShapeRef.new(shape: LocalGatewayVirtualInterface, location_name: "item")

    LocalStorageTypeSet.member = Shapes::ShapeRef.new(shape: LocalStorageType, location_name: "item")

    LockSnapshotRequest.add_member(:snapshot_id, Shapes::ShapeRef.new(shape: SnapshotId, required: true, location_name: "SnapshotId"))
    LockSnapshotRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    LockSnapshotRequest.add_member(:lock_mode, Shapes::ShapeRef.new(shape: LockMode, required: true, location_name: "LockMode"))
    LockSnapshotRequest.add_member(:cool_off_period, Shapes::ShapeRef.new(shape: CoolOffPeriodRequestHours, location_name: "CoolOffPeriod"))
    LockSnapshotRequest.add_member(:lock_duration, Shapes::ShapeRef.new(shape: RetentionPeriodRequestDays, location_name: "LockDuration"))
    LockSnapshotRequest.add_member(:expiration_date, Shapes::ShapeRef.new(shape: MillisecondDateTime, location_name: "ExpirationDate"))
    LockSnapshotRequest.struct_class = Types::LockSnapshotRequest

    LockSnapshotResult.add_member(:snapshot_id, Shapes::ShapeRef.new(shape: String, location_name: "snapshotId"))
    LockSnapshotResult.add_member(:lock_state, Shapes::ShapeRef.new(shape: LockState, location_name: "lockState"))
    LockSnapshotResult.add_member(:lock_duration, Shapes::ShapeRef.new(shape: RetentionPeriodResponseDays, location_name: "lockDuration"))
    LockSnapshotResult.add_member(:cool_off_period, Shapes::ShapeRef.new(shape: CoolOffPeriodResponseHours, location_name: "coolOffPeriod"))
    LockSnapshotResult.add_member(:cool_off_period_expires_on, Shapes::ShapeRef.new(shape: MillisecondDateTime, location_name: "coolOffPeriodExpiresOn"))
    LockSnapshotResult.add_member(:lock_created_on, Shapes::ShapeRef.new(shape: MillisecondDateTime, location_name: "lockCreatedOn"))
    LockSnapshotResult.add_member(:lock_expires_on, Shapes::ShapeRef.new(shape: MillisecondDateTime, location_name: "lockExpiresOn"))
    LockSnapshotResult.add_member(:lock_duration_start_time, Shapes::ShapeRef.new(shape: MillisecondDateTime, location_name: "lockDurationStartTime"))
    LockSnapshotResult.struct_class = Types::LockSnapshotResult

    LockedSnapshotsInfo.add_member(:owner_id, Shapes::ShapeRef.new(shape: String, location_name: "ownerId"))
    LockedSnapshotsInfo.add_member(:snapshot_id, Shapes::ShapeRef.new(shape: String, location_name: "snapshotId"))
    LockedSnapshotsInfo.add_member(:lock_state, Shapes::ShapeRef.new(shape: LockState, location_name: "lockState"))
    LockedSnapshotsInfo.add_member(:lock_duration, Shapes::ShapeRef.new(shape: RetentionPeriodResponseDays, location_name: "lockDuration"))
    LockedSnapshotsInfo.add_member(:cool_off_period, Shapes::ShapeRef.new(shape: CoolOffPeriodResponseHours, location_name: "coolOffPeriod"))
    LockedSnapshotsInfo.add_member(:cool_off_period_expires_on, Shapes::ShapeRef.new(shape: MillisecondDateTime, location_name: "coolOffPeriodExpiresOn"))
    LockedSnapshotsInfo.add_member(:lock_created_on, Shapes::ShapeRef.new(shape: MillisecondDateTime, location_name: "lockCreatedOn"))
    LockedSnapshotsInfo.add_member(:lock_duration_start_time, Shapes::ShapeRef.new(shape: MillisecondDateTime, location_name: "lockDurationStartTime"))
    LockedSnapshotsInfo.add_member(:lock_expires_on, Shapes::ShapeRef.new(shape: MillisecondDateTime, location_name: "lockExpiresOn"))
    LockedSnapshotsInfo.struct_class = Types::LockedSnapshotsInfo

    LockedSnapshotsInfoList.member = Shapes::ShapeRef.new(shape: LockedSnapshotsInfo, location_name: "item")

    MacHost.add_member(:host_id, Shapes::ShapeRef.new(shape: DedicatedHostId, location_name: "hostId"))
    MacHost.add_member(:mac_os_latest_supported_versions, Shapes::ShapeRef.new(shape: MacOSVersionStringList, location_name: "macOSLatestSupportedVersionSet"))
    MacHost.struct_class = Types::MacHost

    MacHostList.member = Shapes::ShapeRef.new(shape: MacHost, location_name: "item")

    MacOSVersionStringList.member = Shapes::ShapeRef.new(shape: String, location_name: "item")

    MaintenanceDetails.add_member(:pending_maintenance, Shapes::ShapeRef.new(shape: String, location_name: "pendingMaintenance"))
    MaintenanceDetails.add_member(:maintenance_auto_applied_after, Shapes::ShapeRef.new(shape: MillisecondDateTime, location_name: "maintenanceAutoAppliedAfter"))
    MaintenanceDetails.add_member(:last_maintenance_applied, Shapes::ShapeRef.new(shape: MillisecondDateTime, location_name: "lastMaintenanceApplied"))
    MaintenanceDetails.struct_class = Types::MaintenanceDetails

    ManagedPrefixList.add_member(:prefix_list_id, Shapes::ShapeRef.new(shape: PrefixListResourceId, location_name: "prefixListId"))
    ManagedPrefixList.add_member(:address_family, Shapes::ShapeRef.new(shape: String, location_name: "addressFamily"))
    ManagedPrefixList.add_member(:state, Shapes::ShapeRef.new(shape: PrefixListState, location_name: "state"))
    ManagedPrefixList.add_member(:state_message, Shapes::ShapeRef.new(shape: String, location_name: "stateMessage"))
    ManagedPrefixList.add_member(:prefix_list_arn, Shapes::ShapeRef.new(shape: ResourceArn, location_name: "prefixListArn"))
    ManagedPrefixList.add_member(:prefix_list_name, Shapes::ShapeRef.new(shape: String, location_name: "prefixListName"))
    ManagedPrefixList.add_member(:max_entries, Shapes::ShapeRef.new(shape: Integer, location_name: "maxEntries"))
    ManagedPrefixList.add_member(:version, Shapes::ShapeRef.new(shape: Long, location_name: "version"))
    ManagedPrefixList.add_member(:tags, Shapes::ShapeRef.new(shape: TagList, location_name: "tagSet"))
    ManagedPrefixList.add_member(:owner_id, Shapes::ShapeRef.new(shape: String, location_name: "ownerId"))
    ManagedPrefixList.struct_class = Types::ManagedPrefixList

    ManagedPrefixListSet.member = Shapes::ShapeRef.new(shape: ManagedPrefixList, location_name: "item")

    MediaAcceleratorInfo.add_member(:accelerators, Shapes::ShapeRef.new(shape: MediaDeviceInfoList, location_name: "accelerators"))
    MediaAcceleratorInfo.add_member(:total_media_memory_in_mi_b, Shapes::ShapeRef.new(shape: TotalMediaMemory, location_name: "totalMediaMemoryInMiB"))
    MediaAcceleratorInfo.struct_class = Types::MediaAcceleratorInfo

    MediaDeviceInfo.add_member(:count, Shapes::ShapeRef.new(shape: MediaDeviceCount, location_name: "count"))
    MediaDeviceInfo.add_member(:name, Shapes::ShapeRef.new(shape: MediaDeviceName, location_name: "name"))
    MediaDeviceInfo.add_member(:manufacturer, Shapes::ShapeRef.new(shape: MediaDeviceManufacturerName, location_name: "manufacturer"))
    MediaDeviceInfo.add_member(:memory_info, Shapes::ShapeRef.new(shape: MediaDeviceMemoryInfo, location_name: "memoryInfo"))
    MediaDeviceInfo.struct_class = Types::MediaDeviceInfo

    MediaDeviceInfoList.member = Shapes::ShapeRef.new(shape: MediaDeviceInfo, location_name: "item")

    MediaDeviceMemoryInfo.add_member(:size_in_mi_b, Shapes::ShapeRef.new(shape: MediaDeviceMemorySize, location_name: "sizeInMiB"))
    MediaDeviceMemoryInfo.struct_class = Types::MediaDeviceMemoryInfo

    MemoryGiBPerVCpu.add_member(:min, Shapes::ShapeRef.new(shape: Double, location_name: "min"))
    MemoryGiBPerVCpu.add_member(:max, Shapes::ShapeRef.new(shape: Double, location_name: "max"))
    MemoryGiBPerVCpu.struct_class = Types::MemoryGiBPerVCpu

    MemoryGiBPerVCpuRequest.add_member(:min, Shapes::ShapeRef.new(shape: Double, location_name: "Min"))
    MemoryGiBPerVCpuRequest.add_member(:max, Shapes::ShapeRef.new(shape: Double, location_name: "Max"))
    MemoryGiBPerVCpuRequest.struct_class = Types::MemoryGiBPerVCpuRequest

    MemoryInfo.add_member(:size_in_mi_b, Shapes::ShapeRef.new(shape: MemorySize, location_name: "sizeInMiB"))
    MemoryInfo.struct_class = Types::MemoryInfo

    MemoryMiB.add_member(:min, Shapes::ShapeRef.new(shape: Integer, location_name: "min"))
    MemoryMiB.add_member(:max, Shapes::ShapeRef.new(shape: Integer, location_name: "max"))
    MemoryMiB.struct_class = Types::MemoryMiB

    MemoryMiBRequest.add_member(:min, Shapes::ShapeRef.new(shape: Integer, required: true, location_name: "Min"))
    MemoryMiBRequest.add_member(:max, Shapes::ShapeRef.new(shape: Integer, location_name: "Max"))
    MemoryMiBRequest.struct_class = Types::MemoryMiBRequest

    MetricPoint.add_member(:start_date, Shapes::ShapeRef.new(shape: MillisecondDateTime, location_name: "startDate"))
    MetricPoint.add_member(:end_date, Shapes::ShapeRef.new(shape: MillisecondDateTime, location_name: "endDate"))
    MetricPoint.add_member(:value, Shapes::ShapeRef.new(shape: Float, location_name: "value"))
    MetricPoint.add_member(:status, Shapes::ShapeRef.new(shape: String, location_name: "status"))
    MetricPoint.struct_class = Types::MetricPoint

    MetricPoints.member = Shapes::ShapeRef.new(shape: MetricPoint, location_name: "item")

    ModifyAddressAttributeRequest.add_member(:allocation_id, Shapes::ShapeRef.new(shape: AllocationId, required: true, location_name: "AllocationId"))
    ModifyAddressAttributeRequest.add_member(:domain_name, Shapes::ShapeRef.new(shape: String, location_name: "DomainName"))
    ModifyAddressAttributeRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    ModifyAddressAttributeRequest.struct_class = Types::ModifyAddressAttributeRequest

    ModifyAddressAttributeResult.add_member(:address, Shapes::ShapeRef.new(shape: AddressAttribute, location_name: "address"))
    ModifyAddressAttributeResult.struct_class = Types::ModifyAddressAttributeResult

    ModifyAvailabilityZoneGroupRequest.add_member(:group_name, Shapes::ShapeRef.new(shape: String, required: true, location_name: "GroupName"))
    ModifyAvailabilityZoneGroupRequest.add_member(:opt_in_status, Shapes::ShapeRef.new(shape: ModifyAvailabilityZoneOptInStatus, required: true, location_name: "OptInStatus"))
    ModifyAvailabilityZoneGroupRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    ModifyAvailabilityZoneGroupRequest.struct_class = Types::ModifyAvailabilityZoneGroupRequest

    ModifyAvailabilityZoneGroupResult.add_member(:return, Shapes::ShapeRef.new(shape: Boolean, location_name: "return"))
    ModifyAvailabilityZoneGroupResult.struct_class = Types::ModifyAvailabilityZoneGroupResult

    ModifyCapacityReservationFleetRequest.add_member(:capacity_reservation_fleet_id, Shapes::ShapeRef.new(shape: CapacityReservationFleetId, required: true, location_name: "CapacityReservationFleetId"))
    ModifyCapacityReservationFleetRequest.add_member(:total_target_capacity, Shapes::ShapeRef.new(shape: Integer, location_name: "TotalTargetCapacity"))
    ModifyCapacityReservationFleetRequest.add_member(:end_date, Shapes::ShapeRef.new(shape: MillisecondDateTime, location_name: "EndDate"))
    ModifyCapacityReservationFleetRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    ModifyCapacityReservationFleetRequest.add_member(:remove_end_date, Shapes::ShapeRef.new(shape: Boolean, location_name: "RemoveEndDate"))
    ModifyCapacityReservationFleetRequest.struct_class = Types::ModifyCapacityReservationFleetRequest

    ModifyCapacityReservationFleetResult.add_member(:return, Shapes::ShapeRef.new(shape: Boolean, location_name: "return"))
    ModifyCapacityReservationFleetResult.struct_class = Types::ModifyCapacityReservationFleetResult

    ModifyCapacityReservationRequest.add_member(:capacity_reservation_id, Shapes::ShapeRef.new(shape: CapacityReservationId, required: true, location_name: "CapacityReservationId"))
    ModifyCapacityReservationRequest.add_member(:instance_count, Shapes::ShapeRef.new(shape: Integer, location_name: "InstanceCount"))
    ModifyCapacityReservationRequest.add_member(:end_date, Shapes::ShapeRef.new(shape: DateTime, location_name: "EndDate"))
    ModifyCapacityReservationRequest.add_member(:end_date_type, Shapes::ShapeRef.new(shape: EndDateType, location_name: "EndDateType"))
    ModifyCapacityReservationRequest.add_member(:accept, Shapes::ShapeRef.new(shape: Boolean, location_name: "Accept"))
    ModifyCapacityReservationRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    ModifyCapacityReservationRequest.add_member(:additional_info, Shapes::ShapeRef.new(shape: String, location_name: "AdditionalInfo"))
    ModifyCapacityReservationRequest.add_member(:instance_match_criteria, Shapes::ShapeRef.new(shape: InstanceMatchCriteria, location_name: "InstanceMatchCriteria"))
    ModifyCapacityReservationRequest.struct_class = Types::ModifyCapacityReservationRequest

    ModifyCapacityReservationResult.add_member(:return, Shapes::ShapeRef.new(shape: Boolean, location_name: "return"))
    ModifyCapacityReservationResult.struct_class = Types::ModifyCapacityReservationResult

    ModifyClientVpnEndpointRequest.add_member(:client_vpn_endpoint_id, Shapes::ShapeRef.new(shape: ClientVpnEndpointId, required: true, location_name: "ClientVpnEndpointId"))
    ModifyClientVpnEndpointRequest.add_member(:server_certificate_arn, Shapes::ShapeRef.new(shape: String, location_name: "ServerCertificateArn"))
    ModifyClientVpnEndpointRequest.add_member(:connection_log_options, Shapes::ShapeRef.new(shape: ConnectionLogOptions, location_name: "ConnectionLogOptions"))
    ModifyClientVpnEndpointRequest.add_member(:dns_servers, Shapes::ShapeRef.new(shape: DnsServersOptionsModifyStructure, location_name: "DnsServers"))
    ModifyClientVpnEndpointRequest.add_member(:vpn_port, Shapes::ShapeRef.new(shape: Integer, location_name: "VpnPort"))
    ModifyClientVpnEndpointRequest.add_member(:description, Shapes::ShapeRef.new(shape: String, location_name: "Description"))
    ModifyClientVpnEndpointRequest.add_member(:split_tunnel, Shapes::ShapeRef.new(shape: Boolean, location_name: "SplitTunnel"))
    ModifyClientVpnEndpointRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    ModifyClientVpnEndpointRequest.add_member(:security_group_ids, Shapes::ShapeRef.new(shape: ClientVpnSecurityGroupIdSet, location_name: "SecurityGroupId"))
    ModifyClientVpnEndpointRequest.add_member(:vpc_id, Shapes::ShapeRef.new(shape: VpcId, location_name: "VpcId"))
    ModifyClientVpnEndpointRequest.add_member(:self_service_portal, Shapes::ShapeRef.new(shape: SelfServicePortal, location_name: "SelfServicePortal"))
    ModifyClientVpnEndpointRequest.add_member(:client_connect_options, Shapes::ShapeRef.new(shape: ClientConnectOptions, location_name: "ClientConnectOptions"))
    ModifyClientVpnEndpointRequest.add_member(:session_timeout_hours, Shapes::ShapeRef.new(shape: Integer, location_name: "SessionTimeoutHours"))
    ModifyClientVpnEndpointRequest.add_member(:client_login_banner_options, Shapes::ShapeRef.new(shape: ClientLoginBannerOptions, location_name: "ClientLoginBannerOptions"))
    ModifyClientVpnEndpointRequest.add_member(:disconnect_on_session_timeout, Shapes::ShapeRef.new(shape: Boolean, location_name: "DisconnectOnSessionTimeout"))
    ModifyClientVpnEndpointRequest.struct_class = Types::ModifyClientVpnEndpointRequest

    ModifyClientVpnEndpointResult.add_member(:return, Shapes::ShapeRef.new(shape: Boolean, location_name: "return"))
    ModifyClientVpnEndpointResult.struct_class = Types::ModifyClientVpnEndpointResult

    ModifyDefaultCreditSpecificationRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    ModifyDefaultCreditSpecificationRequest.add_member(:instance_family, Shapes::ShapeRef.new(shape: UnlimitedSupportedInstanceFamily, required: true, location_name: "InstanceFamily"))
    ModifyDefaultCreditSpecificationRequest.add_member(:cpu_credits, Shapes::ShapeRef.new(shape: String, required: true, location_name: "CpuCredits"))
    ModifyDefaultCreditSpecificationRequest.struct_class = Types::ModifyDefaultCreditSpecificationRequest

    ModifyDefaultCreditSpecificationResult.add_member(:instance_family_credit_specification, Shapes::ShapeRef.new(shape: InstanceFamilyCreditSpecification, location_name: "instanceFamilyCreditSpecification"))
    ModifyDefaultCreditSpecificationResult.struct_class = Types::ModifyDefaultCreditSpecificationResult

    ModifyEbsDefaultKmsKeyIdRequest.add_member(:kms_key_id, Shapes::ShapeRef.new(shape: KmsKeyId, required: true, location_name: "KmsKeyId"))
    ModifyEbsDefaultKmsKeyIdRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    ModifyEbsDefaultKmsKeyIdRequest.struct_class = Types::ModifyEbsDefaultKmsKeyIdRequest

    ModifyEbsDefaultKmsKeyIdResult.add_member(:kms_key_id, Shapes::ShapeRef.new(shape: String, location_name: "kmsKeyId"))
    ModifyEbsDefaultKmsKeyIdResult.struct_class = Types::ModifyEbsDefaultKmsKeyIdResult

    ModifyFleetRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    ModifyFleetRequest.add_member(:excess_capacity_termination_policy, Shapes::ShapeRef.new(shape: FleetExcessCapacityTerminationPolicy, location_name: "ExcessCapacityTerminationPolicy"))
    ModifyFleetRequest.add_member(:launch_template_configs, Shapes::ShapeRef.new(shape: FleetLaunchTemplateConfigListRequest, location_name: "LaunchTemplateConfig"))
    ModifyFleetRequest.add_member(:fleet_id, Shapes::ShapeRef.new(shape: FleetId, required: true, location_name: "FleetId"))
    ModifyFleetRequest.add_member(:target_capacity_specification, Shapes::ShapeRef.new(shape: TargetCapacitySpecificationRequest, location_name: "TargetCapacitySpecification"))
    ModifyFleetRequest.add_member(:context, Shapes::ShapeRef.new(shape: String, location_name: "Context"))
    ModifyFleetRequest.struct_class = Types::ModifyFleetRequest

    ModifyFleetResult.add_member(:return, Shapes::ShapeRef.new(shape: Boolean, location_name: "return"))
    ModifyFleetResult.struct_class = Types::ModifyFleetResult

    ModifyFpgaImageAttributeRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    ModifyFpgaImageAttributeRequest.add_member(:fpga_image_id, Shapes::ShapeRef.new(shape: FpgaImageId, required: true, location_name: "FpgaImageId"))
    ModifyFpgaImageAttributeRequest.add_member(:attribute, Shapes::ShapeRef.new(shape: FpgaImageAttributeName, location_name: "Attribute"))
    ModifyFpgaImageAttributeRequest.add_member(:operation_type, Shapes::ShapeRef.new(shape: OperationType, location_name: "OperationType"))
    ModifyFpgaImageAttributeRequest.add_member(:user_ids, Shapes::ShapeRef.new(shape: UserIdStringList, location_name: "UserId"))
    ModifyFpgaImageAttributeRequest.add_member(:user_groups, Shapes::ShapeRef.new(shape: UserGroupStringList, location_name: "UserGroup"))
    ModifyFpgaImageAttributeRequest.add_member(:product_codes, Shapes::ShapeRef.new(shape: ProductCodeStringList, location_name: "ProductCode"))
    ModifyFpgaImageAttributeRequest.add_member(:load_permission, Shapes::ShapeRef.new(shape: LoadPermissionModifications, location_name: "LoadPermission"))
    ModifyFpgaImageAttributeRequest.add_member(:description, Shapes::ShapeRef.new(shape: String, location_name: "Description"))
    ModifyFpgaImageAttributeRequest.add_member(:name, Shapes::ShapeRef.new(shape: String, location_name: "Name"))
    ModifyFpgaImageAttributeRequest.struct_class = Types::ModifyFpgaImageAttributeRequest

    ModifyFpgaImageAttributeResult.add_member(:fpga_image_attribute, Shapes::ShapeRef.new(shape: FpgaImageAttribute, location_name: "fpgaImageAttribute"))
    ModifyFpgaImageAttributeResult.struct_class = Types::ModifyFpgaImageAttributeResult

    ModifyHostsRequest.add_member(:host_recovery, Shapes::ShapeRef.new(shape: HostRecovery, location_name: "HostRecovery"))
    ModifyHostsRequest.add_member(:instance_type, Shapes::ShapeRef.new(shape: String, location_name: "InstanceType"))
    ModifyHostsRequest.add_member(:instance_family, Shapes::ShapeRef.new(shape: String, location_name: "InstanceFamily"))
    ModifyHostsRequest.add_member(:host_maintenance, Shapes::ShapeRef.new(shape: HostMaintenance, location_name: "HostMaintenance"))
    ModifyHostsRequest.add_member(:host_ids, Shapes::ShapeRef.new(shape: RequestHostIdList, required: true, location_name: "hostId"))
    ModifyHostsRequest.add_member(:auto_placement, Shapes::ShapeRef.new(shape: AutoPlacement, location_name: "autoPlacement"))
    ModifyHostsRequest.struct_class = Types::ModifyHostsRequest

    ModifyHostsResult.add_member(:successful, Shapes::ShapeRef.new(shape: ResponseHostIdList, location_name: "successful"))
    ModifyHostsResult.add_member(:unsuccessful, Shapes::ShapeRef.new(shape: UnsuccessfulItemList, location_name: "unsuccessful"))
    ModifyHostsResult.struct_class = Types::ModifyHostsResult

    ModifyIdFormatRequest.add_member(:resource, Shapes::ShapeRef.new(shape: String, required: true, location_name: "Resource"))
    ModifyIdFormatRequest.add_member(:use_long_ids, Shapes::ShapeRef.new(shape: Boolean, required: true, location_name: "UseLongIds"))
    ModifyIdFormatRequest.struct_class = Types::ModifyIdFormatRequest

    ModifyIdentityIdFormatRequest.add_member(:resource, Shapes::ShapeRef.new(shape: String, required: true, location_name: "resource"))
    ModifyIdentityIdFormatRequest.add_member(:use_long_ids, Shapes::ShapeRef.new(shape: Boolean, required: true, location_name: "useLongIds"))
    ModifyIdentityIdFormatRequest.add_member(:principal_arn, Shapes::ShapeRef.new(shape: String, required: true, location_name: "principalArn"))
    ModifyIdentityIdFormatRequest.struct_class = Types::ModifyIdentityIdFormatRequest

    ModifyImageAttributeRequest.add_member(:attribute, Shapes::ShapeRef.new(shape: String, location_name: "Attribute"))
    ModifyImageAttributeRequest.add_member(:description, Shapes::ShapeRef.new(shape: AttributeValue, location_name: "Description"))
    ModifyImageAttributeRequest.add_member(:image_id, Shapes::ShapeRef.new(shape: ImageId, required: true, location_name: "ImageId"))
    ModifyImageAttributeRequest.add_member(:launch_permission, Shapes::ShapeRef.new(shape: LaunchPermissionModifications, location_name: "LaunchPermission"))
    ModifyImageAttributeRequest.add_member(:operation_type, Shapes::ShapeRef.new(shape: OperationType, location_name: "OperationType"))
    ModifyImageAttributeRequest.add_member(:product_codes, Shapes::ShapeRef.new(shape: ProductCodeStringList, location_name: "ProductCode"))
    ModifyImageAttributeRequest.add_member(:user_groups, Shapes::ShapeRef.new(shape: UserGroupStringList, location_name: "UserGroup"))
    ModifyImageAttributeRequest.add_member(:user_ids, Shapes::ShapeRef.new(shape: UserIdStringList, location_name: "UserId"))
    ModifyImageAttributeRequest.add_member(:value, Shapes::ShapeRef.new(shape: String, location_name: "Value"))
    ModifyImageAttributeRequest.add_member(:organization_arns, Shapes::ShapeRef.new(shape: OrganizationArnStringList, location_name: "OrganizationArn"))
    ModifyImageAttributeRequest.add_member(:organizational_unit_arns, Shapes::ShapeRef.new(shape: OrganizationalUnitArnStringList, location_name: "OrganizationalUnitArn"))
    ModifyImageAttributeRequest.add_member(:imds_support, Shapes::ShapeRef.new(shape: AttributeValue, location_name: "ImdsSupport"))
    ModifyImageAttributeRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "dryRun"))
    ModifyImageAttributeRequest.struct_class = Types::ModifyImageAttributeRequest

    ModifyInstanceAttributeRequest.add_member(:source_dest_check, Shapes::ShapeRef.new(shape: AttributeBooleanValue, location_name: "SourceDestCheck"))
    ModifyInstanceAttributeRequest.add_member(:disable_api_stop, Shapes::ShapeRef.new(shape: AttributeBooleanValue, location_name: "DisableApiStop"))
    ModifyInstanceAttributeRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "dryRun"))
    ModifyInstanceAttributeRequest.add_member(:instance_id, Shapes::ShapeRef.new(shape: InstanceId, required: true, location_name: "instanceId"))
    ModifyInstanceAttributeRequest.add_member(:attribute, Shapes::ShapeRef.new(shape: InstanceAttributeName, location_name: "attribute"))
    ModifyInstanceAttributeRequest.add_member(:value, Shapes::ShapeRef.new(shape: String, location_name: "value"))
    ModifyInstanceAttributeRequest.add_member(:block_device_mappings, Shapes::ShapeRef.new(shape: InstanceBlockDeviceMappingSpecificationList, location_name: "blockDeviceMapping"))
    ModifyInstanceAttributeRequest.add_member(:disable_api_termination, Shapes::ShapeRef.new(shape: AttributeBooleanValue, location_name: "disableApiTermination"))
    ModifyInstanceAttributeRequest.add_member(:instance_type, Shapes::ShapeRef.new(shape: AttributeValue, location_name: "instanceType"))
    ModifyInstanceAttributeRequest.add_member(:kernel, Shapes::ShapeRef.new(shape: AttributeValue, location_name: "kernel"))
    ModifyInstanceAttributeRequest.add_member(:ramdisk, Shapes::ShapeRef.new(shape: AttributeValue, location_name: "ramdisk"))
    ModifyInstanceAttributeRequest.add_member(:user_data, Shapes::ShapeRef.new(shape: BlobAttributeValue, location_name: "userData"))
    ModifyInstanceAttributeRequest.add_member(:instance_initiated_shutdown_behavior, Shapes::ShapeRef.new(shape: AttributeValue, location_name: "instanceInitiatedShutdownBehavior"))
    ModifyInstanceAttributeRequest.add_member(:groups, Shapes::ShapeRef.new(shape: GroupIdStringList, location_name: "GroupId"))
    ModifyInstanceAttributeRequest.add_member(:ebs_optimized, Shapes::ShapeRef.new(shape: AttributeBooleanValue, location_name: "ebsOptimized"))
    ModifyInstanceAttributeRequest.add_member(:sriov_net_support, Shapes::ShapeRef.new(shape: AttributeValue, location_name: "sriovNetSupport"))
    ModifyInstanceAttributeRequest.add_member(:ena_support, Shapes::ShapeRef.new(shape: AttributeBooleanValue, location_name: "enaSupport"))
    ModifyInstanceAttributeRequest.struct_class = Types::ModifyInstanceAttributeRequest

    ModifyInstanceCapacityReservationAttributesRequest.add_member(:instance_id, Shapes::ShapeRef.new(shape: InstanceId, required: true, location_name: "InstanceId"))
    ModifyInstanceCapacityReservationAttributesRequest.add_member(:capacity_reservation_specification, Shapes::ShapeRef.new(shape: CapacityReservationSpecification, required: true, location_name: "CapacityReservationSpecification"))
    ModifyInstanceCapacityReservationAttributesRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    ModifyInstanceCapacityReservationAttributesRequest.struct_class = Types::ModifyInstanceCapacityReservationAttributesRequest

    ModifyInstanceCapacityReservationAttributesResult.add_member(:return, Shapes::ShapeRef.new(shape: Boolean, location_name: "return"))
    ModifyInstanceCapacityReservationAttributesResult.struct_class = Types::ModifyInstanceCapacityReservationAttributesResult

    ModifyInstanceCpuOptionsRequest.add_member(:instance_id, Shapes::ShapeRef.new(shape: InstanceId, required: true, location_name: "InstanceId"))
    ModifyInstanceCpuOptionsRequest.add_member(:core_count, Shapes::ShapeRef.new(shape: Integer, required: true, location_name: "CoreCount"))
    ModifyInstanceCpuOptionsRequest.add_member(:threads_per_core, Shapes::ShapeRef.new(shape: Integer, required: true, location_name: "ThreadsPerCore"))
    ModifyInstanceCpuOptionsRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    ModifyInstanceCpuOptionsRequest.struct_class = Types::ModifyInstanceCpuOptionsRequest

    ModifyInstanceCpuOptionsResult.add_member(:instance_id, Shapes::ShapeRef.new(shape: InstanceId, location_name: "instanceId"))
    ModifyInstanceCpuOptionsResult.add_member(:core_count, Shapes::ShapeRef.new(shape: Integer, location_name: "coreCount"))
    ModifyInstanceCpuOptionsResult.add_member(:threads_per_core, Shapes::ShapeRef.new(shape: Integer, location_name: "threadsPerCore"))
    ModifyInstanceCpuOptionsResult.struct_class = Types::ModifyInstanceCpuOptionsResult

    ModifyInstanceCreditSpecificationRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    ModifyInstanceCreditSpecificationRequest.add_member(:client_token, Shapes::ShapeRef.new(shape: String, location_name: "ClientToken"))
    ModifyInstanceCreditSpecificationRequest.add_member(:instance_credit_specifications, Shapes::ShapeRef.new(shape: InstanceCreditSpecificationListRequest, required: true, location_name: "InstanceCreditSpecification"))
    ModifyInstanceCreditSpecificationRequest.struct_class = Types::ModifyInstanceCreditSpecificationRequest

    ModifyInstanceCreditSpecificationResult.add_member(:successful_instance_credit_specifications, Shapes::ShapeRef.new(shape: SuccessfulInstanceCreditSpecificationSet, location_name: "successfulInstanceCreditSpecificationSet"))
    ModifyInstanceCreditSpecificationResult.add_member(:unsuccessful_instance_credit_specifications, Shapes::ShapeRef.new(shape: UnsuccessfulInstanceCreditSpecificationSet, location_name: "unsuccessfulInstanceCreditSpecificationSet"))
    ModifyInstanceCreditSpecificationResult.struct_class = Types::ModifyInstanceCreditSpecificationResult

    ModifyInstanceEventStartTimeRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    ModifyInstanceEventStartTimeRequest.add_member(:instance_id, Shapes::ShapeRef.new(shape: InstanceId, required: true, location_name: "InstanceId"))
    ModifyInstanceEventStartTimeRequest.add_member(:instance_event_id, Shapes::ShapeRef.new(shape: String, required: true, location_name: "InstanceEventId"))
    ModifyInstanceEventStartTimeRequest.add_member(:not_before, Shapes::ShapeRef.new(shape: DateTime, required: true, location_name: "NotBefore"))
    ModifyInstanceEventStartTimeRequest.struct_class = Types::ModifyInstanceEventStartTimeRequest

    ModifyInstanceEventStartTimeResult.add_member(:event, Shapes::ShapeRef.new(shape: InstanceStatusEvent, location_name: "event"))
    ModifyInstanceEventStartTimeResult.struct_class = Types::ModifyInstanceEventStartTimeResult

    ModifyInstanceEventWindowRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    ModifyInstanceEventWindowRequest.add_member(:name, Shapes::ShapeRef.new(shape: String, location_name: "Name"))
    ModifyInstanceEventWindowRequest.add_member(:instance_event_window_id, Shapes::ShapeRef.new(shape: InstanceEventWindowId, required: true, location_name: "InstanceEventWindowId"))
    ModifyInstanceEventWindowRequest.add_member(:time_ranges, Shapes::ShapeRef.new(shape: InstanceEventWindowTimeRangeRequestSet, location_name: "TimeRange"))
    ModifyInstanceEventWindowRequest.add_member(:cron_expression, Shapes::ShapeRef.new(shape: InstanceEventWindowCronExpression, location_name: "CronExpression"))
    ModifyInstanceEventWindowRequest.struct_class = Types::ModifyInstanceEventWindowRequest

    ModifyInstanceEventWindowResult.add_member(:instance_event_window, Shapes::ShapeRef.new(shape: InstanceEventWindow, location_name: "instanceEventWindow"))
    ModifyInstanceEventWindowResult.struct_class = Types::ModifyInstanceEventWindowResult

    ModifyInstanceMaintenanceOptionsRequest.add_member(:instance_id, Shapes::ShapeRef.new(shape: InstanceId, required: true, location_name: "InstanceId"))
    ModifyInstanceMaintenanceOptionsRequest.add_member(:auto_recovery, Shapes::ShapeRef.new(shape: InstanceAutoRecoveryState, location_name: "AutoRecovery"))
    ModifyInstanceMaintenanceOptionsRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    ModifyInstanceMaintenanceOptionsRequest.struct_class = Types::ModifyInstanceMaintenanceOptionsRequest

    ModifyInstanceMaintenanceOptionsResult.add_member(:instance_id, Shapes::ShapeRef.new(shape: String, location_name: "instanceId"))
    ModifyInstanceMaintenanceOptionsResult.add_member(:auto_recovery, Shapes::ShapeRef.new(shape: InstanceAutoRecoveryState, location_name: "autoRecovery"))
    ModifyInstanceMaintenanceOptionsResult.struct_class = Types::ModifyInstanceMaintenanceOptionsResult

    ModifyInstanceMetadataDefaultsRequest.add_member(:http_tokens, Shapes::ShapeRef.new(shape: MetadataDefaultHttpTokensState, location_name: "HttpTokens"))
    ModifyInstanceMetadataDefaultsRequest.add_member(:http_put_response_hop_limit, Shapes::ShapeRef.new(shape: BoxedInteger, location_name: "HttpPutResponseHopLimit"))
    ModifyInstanceMetadataDefaultsRequest.add_member(:http_endpoint, Shapes::ShapeRef.new(shape: DefaultInstanceMetadataEndpointState, location_name: "HttpEndpoint"))
    ModifyInstanceMetadataDefaultsRequest.add_member(:instance_metadata_tags, Shapes::ShapeRef.new(shape: DefaultInstanceMetadataTagsState, location_name: "InstanceMetadataTags"))
    ModifyInstanceMetadataDefaultsRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    ModifyInstanceMetadataDefaultsRequest.struct_class = Types::ModifyInstanceMetadataDefaultsRequest

    ModifyInstanceMetadataDefaultsResult.add_member(:return, Shapes::ShapeRef.new(shape: Boolean, location_name: "return"))
    ModifyInstanceMetadataDefaultsResult.struct_class = Types::ModifyInstanceMetadataDefaultsResult

    ModifyInstanceMetadataOptionsRequest.add_member(:instance_id, Shapes::ShapeRef.new(shape: InstanceId, required: true, location_name: "InstanceId"))
    ModifyInstanceMetadataOptionsRequest.add_member(:http_tokens, Shapes::ShapeRef.new(shape: HttpTokensState, location_name: "HttpTokens"))
    ModifyInstanceMetadataOptionsRequest.add_member(:http_put_response_hop_limit, Shapes::ShapeRef.new(shape: Integer, location_name: "HttpPutResponseHopLimit"))
    ModifyInstanceMetadataOptionsRequest.add_member(:http_endpoint, Shapes::ShapeRef.new(shape: InstanceMetadataEndpointState, location_name: "HttpEndpoint"))
    ModifyInstanceMetadataOptionsRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    ModifyInstanceMetadataOptionsRequest.add_member(:http_protocol_ipv_6, Shapes::ShapeRef.new(shape: InstanceMetadataProtocolState, location_name: "HttpProtocolIpv6"))
    ModifyInstanceMetadataOptionsRequest.add_member(:instance_metadata_tags, Shapes::ShapeRef.new(shape: InstanceMetadataTagsState, location_name: "InstanceMetadataTags"))
    ModifyInstanceMetadataOptionsRequest.struct_class = Types::ModifyInstanceMetadataOptionsRequest

    ModifyInstanceMetadataOptionsResult.add_member(:instance_id, Shapes::ShapeRef.new(shape: String, location_name: "instanceId"))
    ModifyInstanceMetadataOptionsResult.add_member(:instance_metadata_options, Shapes::ShapeRef.new(shape: InstanceMetadataOptionsResponse, location_name: "instanceMetadataOptions"))
    ModifyInstanceMetadataOptionsResult.struct_class = Types::ModifyInstanceMetadataOptionsResult

    ModifyInstanceNetworkPerformanceRequest.add_member(:instance_id, Shapes::ShapeRef.new(shape: InstanceId, required: true, location_name: "InstanceId"))
    ModifyInstanceNetworkPerformanceRequest.add_member(:bandwidth_weighting, Shapes::ShapeRef.new(shape: InstanceBandwidthWeighting, required: true, location_name: "BandwidthWeighting"))
    ModifyInstanceNetworkPerformanceRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    ModifyInstanceNetworkPerformanceRequest.struct_class = Types::ModifyInstanceNetworkPerformanceRequest

    ModifyInstanceNetworkPerformanceResult.add_member(:instance_id, Shapes::ShapeRef.new(shape: InstanceId, location_name: "instanceId"))
    ModifyInstanceNetworkPerformanceResult.add_member(:bandwidth_weighting, Shapes::ShapeRef.new(shape: InstanceBandwidthWeighting, location_name: "bandwidthWeighting"))
    ModifyInstanceNetworkPerformanceResult.struct_class = Types::ModifyInstanceNetworkPerformanceResult

    ModifyInstancePlacementRequest.add_member(:group_name, Shapes::ShapeRef.new(shape: PlacementGroupName, location_name: "GroupName"))
    ModifyInstancePlacementRequest.add_member(:partition_number, Shapes::ShapeRef.new(shape: Integer, location_name: "PartitionNumber"))
    ModifyInstancePlacementRequest.add_member(:host_resource_group_arn, Shapes::ShapeRef.new(shape: String, location_name: "HostResourceGroupArn"))
    ModifyInstancePlacementRequest.add_member(:group_id, Shapes::ShapeRef.new(shape: PlacementGroupId, location_name: "GroupId"))
    ModifyInstancePlacementRequest.add_member(:instance_id, Shapes::ShapeRef.new(shape: InstanceId, required: true, location_name: "instanceId"))
    ModifyInstancePlacementRequest.add_member(:tenancy, Shapes::ShapeRef.new(shape: HostTenancy, location_name: "tenancy"))
    ModifyInstancePlacementRequest.add_member(:affinity, Shapes::ShapeRef.new(shape: Affinity, location_name: "affinity"))
    ModifyInstancePlacementRequest.add_member(:host_id, Shapes::ShapeRef.new(shape: DedicatedHostId, location_name: "hostId"))
    ModifyInstancePlacementRequest.struct_class = Types::ModifyInstancePlacementRequest

    ModifyInstancePlacementResult.add_member(:return, Shapes::ShapeRef.new(shape: Boolean, location_name: "return"))
    ModifyInstancePlacementResult.struct_class = Types::ModifyInstancePlacementResult

    ModifyIpamPoolRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    ModifyIpamPoolRequest.add_member(:ipam_pool_id, Shapes::ShapeRef.new(shape: IpamPoolId, required: true, location_name: "IpamPoolId"))
    ModifyIpamPoolRequest.add_member(:description, Shapes::ShapeRef.new(shape: String, location_name: "Description"))
    ModifyIpamPoolRequest.add_member(:auto_import, Shapes::ShapeRef.new(shape: Boolean, location_name: "AutoImport"))
    ModifyIpamPoolRequest.add_member(:allocation_min_netmask_length, Shapes::ShapeRef.new(shape: IpamNetmaskLength, location_name: "AllocationMinNetmaskLength"))
    ModifyIpamPoolRequest.add_member(:allocation_max_netmask_length, Shapes::ShapeRef.new(shape: IpamNetmaskLength, location_name: "AllocationMaxNetmaskLength"))
    ModifyIpamPoolRequest.add_member(:allocation_default_netmask_length, Shapes::ShapeRef.new(shape: IpamNetmaskLength, location_name: "AllocationDefaultNetmaskLength"))
    ModifyIpamPoolRequest.add_member(:clear_allocation_default_netmask_length, Shapes::ShapeRef.new(shape: Boolean, location_name: "ClearAllocationDefaultNetmaskLength"))
    ModifyIpamPoolRequest.add_member(:add_allocation_resource_tags, Shapes::ShapeRef.new(shape: RequestIpamResourceTagList, location_name: "AddAllocationResourceTag"))
    ModifyIpamPoolRequest.add_member(:remove_allocation_resource_tags, Shapes::ShapeRef.new(shape: RequestIpamResourceTagList, location_name: "RemoveAllocationResourceTag"))
    ModifyIpamPoolRequest.struct_class = Types::ModifyIpamPoolRequest

    ModifyIpamPoolResult.add_member(:ipam_pool, Shapes::ShapeRef.new(shape: IpamPool, location_name: "ipamPool"))
    ModifyIpamPoolResult.struct_class = Types::ModifyIpamPoolResult

    ModifyIpamRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    ModifyIpamRequest.add_member(:ipam_id, Shapes::ShapeRef.new(shape: IpamId, required: true, location_name: "IpamId"))
    ModifyIpamRequest.add_member(:description, Shapes::ShapeRef.new(shape: String, location_name: "Description"))
    ModifyIpamRequest.add_member(:add_operating_regions, Shapes::ShapeRef.new(shape: AddIpamOperatingRegionSet, location_name: "AddOperatingRegion"))
    ModifyIpamRequest.add_member(:remove_operating_regions, Shapes::ShapeRef.new(shape: RemoveIpamOperatingRegionSet, location_name: "RemoveOperatingRegion"))
    ModifyIpamRequest.add_member(:tier, Shapes::ShapeRef.new(shape: IpamTier, location_name: "Tier"))
    ModifyIpamRequest.add_member(:enable_private_gua, Shapes::ShapeRef.new(shape: Boolean, location_name: "EnablePrivateGua"))
    ModifyIpamRequest.struct_class = Types::ModifyIpamRequest

    ModifyIpamResourceCidrRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    ModifyIpamResourceCidrRequest.add_member(:resource_id, Shapes::ShapeRef.new(shape: String, required: true, location_name: "ResourceId"))
    ModifyIpamResourceCidrRequest.add_member(:resource_cidr, Shapes::ShapeRef.new(shape: String, required: true, location_name: "ResourceCidr"))
    ModifyIpamResourceCidrRequest.add_member(:resource_region, Shapes::ShapeRef.new(shape: String, required: true, location_name: "ResourceRegion"))
    ModifyIpamResourceCidrRequest.add_member(:current_ipam_scope_id, Shapes::ShapeRef.new(shape: IpamScopeId, required: true, location_name: "CurrentIpamScopeId"))
    ModifyIpamResourceCidrRequest.add_member(:destination_ipam_scope_id, Shapes::ShapeRef.new(shape: IpamScopeId, location_name: "DestinationIpamScopeId"))
    ModifyIpamResourceCidrRequest.add_member(:monitored, Shapes::ShapeRef.new(shape: Boolean, required: true, location_name: "Monitored"))
    ModifyIpamResourceCidrRequest.struct_class = Types::ModifyIpamResourceCidrRequest

    ModifyIpamResourceCidrResult.add_member(:ipam_resource_cidr, Shapes::ShapeRef.new(shape: IpamResourceCidr, location_name: "ipamResourceCidr"))
    ModifyIpamResourceCidrResult.struct_class = Types::ModifyIpamResourceCidrResult

    ModifyIpamResourceDiscoveryRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    ModifyIpamResourceDiscoveryRequest.add_member(:ipam_resource_discovery_id, Shapes::ShapeRef.new(shape: IpamResourceDiscoveryId, required: true, location_name: "IpamResourceDiscoveryId"))
    ModifyIpamResourceDiscoveryRequest.add_member(:description, Shapes::ShapeRef.new(shape: String, location_name: "Description"))
    ModifyIpamResourceDiscoveryRequest.add_member(:add_operating_regions, Shapes::ShapeRef.new(shape: AddIpamOperatingRegionSet, location_name: "AddOperatingRegion"))
    ModifyIpamResourceDiscoveryRequest.add_member(:remove_operating_regions, Shapes::ShapeRef.new(shape: RemoveIpamOperatingRegionSet, location_name: "RemoveOperatingRegion"))
    ModifyIpamResourceDiscoveryRequest.add_member(:add_organizational_unit_exclusions, Shapes::ShapeRef.new(shape: AddIpamOrganizationalUnitExclusionSet, location_name: "AddOrganizationalUnitExclusion"))
    ModifyIpamResourceDiscoveryRequest.add_member(:remove_organizational_unit_exclusions, Shapes::ShapeRef.new(shape: RemoveIpamOrganizationalUnitExclusionSet, location_name: "RemoveOrganizationalUnitExclusion"))
    ModifyIpamResourceDiscoveryRequest.struct_class = Types::ModifyIpamResourceDiscoveryRequest

    ModifyIpamResourceDiscoveryResult.add_member(:ipam_resource_discovery, Shapes::ShapeRef.new(shape: IpamResourceDiscovery, location_name: "ipamResourceDiscovery"))
    ModifyIpamResourceDiscoveryResult.struct_class = Types::ModifyIpamResourceDiscoveryResult

    ModifyIpamResult.add_member(:ipam, Shapes::ShapeRef.new(shape: Ipam, location_name: "ipam"))
    ModifyIpamResult.struct_class = Types::ModifyIpamResult

    ModifyIpamScopeRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    ModifyIpamScopeRequest.add_member(:ipam_scope_id, Shapes::ShapeRef.new(shape: IpamScopeId, required: true, location_name: "IpamScopeId"))
    ModifyIpamScopeRequest.add_member(:description, Shapes::ShapeRef.new(shape: String, location_name: "Description"))
    ModifyIpamScopeRequest.struct_class = Types::ModifyIpamScopeRequest

    ModifyIpamScopeResult.add_member(:ipam_scope, Shapes::ShapeRef.new(shape: IpamScope, location_name: "ipamScope"))
    ModifyIpamScopeResult.struct_class = Types::ModifyIpamScopeResult

    ModifyLaunchTemplateRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    ModifyLaunchTemplateRequest.add_member(:client_token, Shapes::ShapeRef.new(shape: String, location_name: "ClientToken"))
    ModifyLaunchTemplateRequest.add_member(:launch_template_id, Shapes::ShapeRef.new(shape: LaunchTemplateId, location_name: "LaunchTemplateId"))
    ModifyLaunchTemplateRequest.add_member(:launch_template_name, Shapes::ShapeRef.new(shape: LaunchTemplateName, location_name: "LaunchTemplateName"))
    ModifyLaunchTemplateRequest.add_member(:default_version, Shapes::ShapeRef.new(shape: String, location_name: "SetDefaultVersion"))
    ModifyLaunchTemplateRequest.struct_class = Types::ModifyLaunchTemplateRequest

    ModifyLaunchTemplateResult.add_member(:launch_template, Shapes::ShapeRef.new(shape: LaunchTemplate, location_name: "launchTemplate"))
    ModifyLaunchTemplateResult.struct_class = Types::ModifyLaunchTemplateResult

    ModifyLocalGatewayRouteRequest.add_member(:destination_cidr_block, Shapes::ShapeRef.new(shape: String, location_name: "DestinationCidrBlock"))
    ModifyLocalGatewayRouteRequest.add_member(:local_gateway_route_table_id, Shapes::ShapeRef.new(shape: LocalGatewayRoutetableId, required: true, location_name: "LocalGatewayRouteTableId"))
    ModifyLocalGatewayRouteRequest.add_member(:local_gateway_virtual_interface_group_id, Shapes::ShapeRef.new(shape: LocalGatewayVirtualInterfaceGroupId, location_name: "LocalGatewayVirtualInterfaceGroupId"))
    ModifyLocalGatewayRouteRequest.add_member(:network_interface_id, Shapes::ShapeRef.new(shape: NetworkInterfaceId, location_name: "NetworkInterfaceId"))
    ModifyLocalGatewayRouteRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    ModifyLocalGatewayRouteRequest.add_member(:destination_prefix_list_id, Shapes::ShapeRef.new(shape: PrefixListResourceId, location_name: "DestinationPrefixListId"))
    ModifyLocalGatewayRouteRequest.struct_class = Types::ModifyLocalGatewayRouteRequest

    ModifyLocalGatewayRouteResult.add_member(:route, Shapes::ShapeRef.new(shape: LocalGatewayRoute, location_name: "route"))
    ModifyLocalGatewayRouteResult.struct_class = Types::ModifyLocalGatewayRouteResult

    ModifyManagedPrefixListRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    ModifyManagedPrefixListRequest.add_member(:prefix_list_id, Shapes::ShapeRef.new(shape: PrefixListResourceId, required: true, location_name: "PrefixListId"))
    ModifyManagedPrefixListRequest.add_member(:current_version, Shapes::ShapeRef.new(shape: Long, location_name: "CurrentVersion"))
    ModifyManagedPrefixListRequest.add_member(:prefix_list_name, Shapes::ShapeRef.new(shape: String, location_name: "PrefixListName"))
    ModifyManagedPrefixListRequest.add_member(:add_entries, Shapes::ShapeRef.new(shape: AddPrefixListEntries, location_name: "AddEntry"))
    ModifyManagedPrefixListRequest.add_member(:remove_entries, Shapes::ShapeRef.new(shape: RemovePrefixListEntries, location_name: "RemoveEntry"))
    ModifyManagedPrefixListRequest.add_member(:max_entries, Shapes::ShapeRef.new(shape: Integer, location_name: "MaxEntries"))
    ModifyManagedPrefixListRequest.struct_class = Types::ModifyManagedPrefixListRequest

    ModifyManagedPrefixListResult.add_member(:prefix_list, Shapes::ShapeRef.new(shape: ManagedPrefixList, location_name: "prefixList"))
    ModifyManagedPrefixListResult.struct_class = Types::ModifyManagedPrefixListResult

    ModifyNetworkInterfaceAttributeRequest.add_member(:ena_srd_specification, Shapes::ShapeRef.new(shape: EnaSrdSpecification, location_name: "EnaSrdSpecification"))
    ModifyNetworkInterfaceAttributeRequest.add_member(:enable_primary_ipv_6, Shapes::ShapeRef.new(shape: Boolean, location_name: "EnablePrimaryIpv6"))
    ModifyNetworkInterfaceAttributeRequest.add_member(:connection_tracking_specification, Shapes::ShapeRef.new(shape: ConnectionTrackingSpecificationRequest, location_name: "ConnectionTrackingSpecification"))
    ModifyNetworkInterfaceAttributeRequest.add_member(:associate_public_ip_address, Shapes::ShapeRef.new(shape: Boolean, location_name: "AssociatePublicIpAddress"))
    ModifyNetworkInterfaceAttributeRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "dryRun"))
    ModifyNetworkInterfaceAttributeRequest.add_member(:network_interface_id, Shapes::ShapeRef.new(shape: NetworkInterfaceId, required: true, location_name: "networkInterfaceId"))
    ModifyNetworkInterfaceAttributeRequest.add_member(:description, Shapes::ShapeRef.new(shape: AttributeValue, location_name: "description"))
    ModifyNetworkInterfaceAttributeRequest.add_member(:source_dest_check, Shapes::ShapeRef.new(shape: AttributeBooleanValue, location_name: "sourceDestCheck"))
    ModifyNetworkInterfaceAttributeRequest.add_member(:groups, Shapes::ShapeRef.new(shape: SecurityGroupIdStringList, location_name: "SecurityGroupId"))
    ModifyNetworkInterfaceAttributeRequest.add_member(:attachment, Shapes::ShapeRef.new(shape: NetworkInterfaceAttachmentChanges, location_name: "attachment"))
    ModifyNetworkInterfaceAttributeRequest.struct_class = Types::ModifyNetworkInterfaceAttributeRequest

    ModifyPrivateDnsNameOptionsRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    ModifyPrivateDnsNameOptionsRequest.add_member(:instance_id, Shapes::ShapeRef.new(shape: InstanceId, required: true, location_name: "InstanceId"))
    ModifyPrivateDnsNameOptionsRequest.add_member(:private_dns_hostname_type, Shapes::ShapeRef.new(shape: HostnameType, location_name: "PrivateDnsHostnameType"))
    ModifyPrivateDnsNameOptionsRequest.add_member(:enable_resource_name_dns_a_record, Shapes::ShapeRef.new(shape: Boolean, location_name: "EnableResourceNameDnsARecord"))
    ModifyPrivateDnsNameOptionsRequest.add_member(:enable_resource_name_dns_aaaa_record, Shapes::ShapeRef.new(shape: Boolean, location_name: "EnableResourceNameDnsAAAARecord"))
    ModifyPrivateDnsNameOptionsRequest.struct_class = Types::ModifyPrivateDnsNameOptionsRequest

    ModifyPrivateDnsNameOptionsResult.add_member(:return, Shapes::ShapeRef.new(shape: Boolean, location_name: "return"))
    ModifyPrivateDnsNameOptionsResult.struct_class = Types::ModifyPrivateDnsNameOptionsResult

    ModifyReservedInstancesRequest.add_member(:reserved_instances_ids, Shapes::ShapeRef.new(shape: ReservedInstancesIdStringList, required: true, location_name: "ReservedInstancesId"))
    ModifyReservedInstancesRequest.add_member(:client_token, Shapes::ShapeRef.new(shape: String, location_name: "clientToken"))
    ModifyReservedInstancesRequest.add_member(:target_configurations, Shapes::ShapeRef.new(shape: ReservedInstancesConfigurationList, required: true, location_name: "ReservedInstancesConfigurationSetItemType"))
    ModifyReservedInstancesRequest.struct_class = Types::ModifyReservedInstancesRequest

    ModifyReservedInstancesResult.add_member(:reserved_instances_modification_id, Shapes::ShapeRef.new(shape: String, location_name: "reservedInstancesModificationId"))
    ModifyReservedInstancesResult.struct_class = Types::ModifyReservedInstancesResult

    ModifySecurityGroupRulesRequest.add_member(:group_id, Shapes::ShapeRef.new(shape: SecurityGroupId, required: true, location_name: "GroupId"))
    ModifySecurityGroupRulesRequest.add_member(:security_group_rules, Shapes::ShapeRef.new(shape: SecurityGroupRuleUpdateList, required: true, location_name: "SecurityGroupRule"))
    ModifySecurityGroupRulesRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    ModifySecurityGroupRulesRequest.struct_class = Types::ModifySecurityGroupRulesRequest

    ModifySecurityGroupRulesResult.add_member(:return, Shapes::ShapeRef.new(shape: Boolean, location_name: "return"))
    ModifySecurityGroupRulesResult.struct_class = Types::ModifySecurityGroupRulesResult

    ModifySnapshotAttributeRequest.add_member(:attribute, Shapes::ShapeRef.new(shape: SnapshotAttributeName, location_name: "Attribute"))
    ModifySnapshotAttributeRequest.add_member(:create_volume_permission, Shapes::ShapeRef.new(shape: CreateVolumePermissionModifications, location_name: "CreateVolumePermission"))
    ModifySnapshotAttributeRequest.add_member(:group_names, Shapes::ShapeRef.new(shape: GroupNameStringList, location_name: "UserGroup"))
    ModifySnapshotAttributeRequest.add_member(:operation_type, Shapes::ShapeRef.new(shape: OperationType, location_name: "OperationType"))
    ModifySnapshotAttributeRequest.add_member(:snapshot_id, Shapes::ShapeRef.new(shape: SnapshotId, required: true, location_name: "SnapshotId"))
    ModifySnapshotAttributeRequest.add_member(:user_ids, Shapes::ShapeRef.new(shape: UserIdStringList, location_name: "UserId"))
    ModifySnapshotAttributeRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "dryRun"))
    ModifySnapshotAttributeRequest.struct_class = Types::ModifySnapshotAttributeRequest

    ModifySnapshotTierRequest.add_member(:snapshot_id, Shapes::ShapeRef.new(shape: SnapshotId, required: true, location_name: "SnapshotId"))
    ModifySnapshotTierRequest.add_member(:storage_tier, Shapes::ShapeRef.new(shape: TargetStorageTier, location_name: "StorageTier"))
    ModifySnapshotTierRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    ModifySnapshotTierRequest.struct_class = Types::ModifySnapshotTierRequest

    ModifySnapshotTierResult.add_member(:snapshot_id, Shapes::ShapeRef.new(shape: String, location_name: "snapshotId"))
    ModifySnapshotTierResult.add_member(:tiering_start_time, Shapes::ShapeRef.new(shape: MillisecondDateTime, location_name: "tieringStartTime"))
    ModifySnapshotTierResult.struct_class = Types::ModifySnapshotTierResult

    ModifySpotFleetRequestRequest.add_member(:launch_template_configs, Shapes::ShapeRef.new(shape: LaunchTemplateConfigList, location_name: "LaunchTemplateConfig"))
    ModifySpotFleetRequestRequest.add_member(:on_demand_target_capacity, Shapes::ShapeRef.new(shape: Integer, location_name: "OnDemandTargetCapacity"))
    ModifySpotFleetRequestRequest.add_member(:context, Shapes::ShapeRef.new(shape: String, location_name: "Context"))
    ModifySpotFleetRequestRequest.add_member(:spot_fleet_request_id, Shapes::ShapeRef.new(shape: SpotFleetRequestId, required: true, location_name: "spotFleetRequestId"))
    ModifySpotFleetRequestRequest.add_member(:target_capacity, Shapes::ShapeRef.new(shape: Integer, location_name: "targetCapacity"))
    ModifySpotFleetRequestRequest.add_member(:excess_capacity_termination_policy, Shapes::ShapeRef.new(shape: ExcessCapacityTerminationPolicy, location_name: "excessCapacityTerminationPolicy"))
    ModifySpotFleetRequestRequest.struct_class = Types::ModifySpotFleetRequestRequest

    ModifySpotFleetRequestResponse.add_member(:return, Shapes::ShapeRef.new(shape: Boolean, location_name: "return"))
    ModifySpotFleetRequestResponse.struct_class = Types::ModifySpotFleetRequestResponse

    ModifySubnetAttributeRequest.add_member(:assign_ipv_6_address_on_creation, Shapes::ShapeRef.new(shape: AttributeBooleanValue, location_name: "AssignIpv6AddressOnCreation"))
    ModifySubnetAttributeRequest.add_member(:map_public_ip_on_launch, Shapes::ShapeRef.new(shape: AttributeBooleanValue, location_name: "MapPublicIpOnLaunch"))
    ModifySubnetAttributeRequest.add_member(:subnet_id, Shapes::ShapeRef.new(shape: SubnetId, required: true, location_name: "subnetId"))
    ModifySubnetAttributeRequest.add_member(:map_customer_owned_ip_on_launch, Shapes::ShapeRef.new(shape: AttributeBooleanValue, location_name: "MapCustomerOwnedIpOnLaunch"))
    ModifySubnetAttributeRequest.add_member(:customer_owned_ipv_4_pool, Shapes::ShapeRef.new(shape: CoipPoolId, location_name: "CustomerOwnedIpv4Pool"))
    ModifySubnetAttributeRequest.add_member(:enable_dns_64, Shapes::ShapeRef.new(shape: AttributeBooleanValue, location_name: "EnableDns64"))
    ModifySubnetAttributeRequest.add_member(:private_dns_hostname_type_on_launch, Shapes::ShapeRef.new(shape: HostnameType, location_name: "PrivateDnsHostnameTypeOnLaunch"))
    ModifySubnetAttributeRequest.add_member(:enable_resource_name_dns_a_record_on_launch, Shapes::ShapeRef.new(shape: AttributeBooleanValue, location_name: "EnableResourceNameDnsARecordOnLaunch"))
    ModifySubnetAttributeRequest.add_member(:enable_resource_name_dns_aaaa_record_on_launch, Shapes::ShapeRef.new(shape: AttributeBooleanValue, location_name: "EnableResourceNameDnsAAAARecordOnLaunch"))
    ModifySubnetAttributeRequest.add_member(:enable_lni_at_device_index, Shapes::ShapeRef.new(shape: Integer, location_name: "EnableLniAtDeviceIndex"))
    ModifySubnetAttributeRequest.add_member(:disable_lni_at_device_index, Shapes::ShapeRef.new(shape: AttributeBooleanValue, location_name: "DisableLniAtDeviceIndex"))
    ModifySubnetAttributeRequest.struct_class = Types::ModifySubnetAttributeRequest

    ModifyTrafficMirrorFilterNetworkServicesRequest.add_member(:traffic_mirror_filter_id, Shapes::ShapeRef.new(shape: TrafficMirrorFilterId, required: true, location_name: "TrafficMirrorFilterId"))
    ModifyTrafficMirrorFilterNetworkServicesRequest.add_member(:add_network_services, Shapes::ShapeRef.new(shape: TrafficMirrorNetworkServiceList, location_name: "AddNetworkService"))
    ModifyTrafficMirrorFilterNetworkServicesRequest.add_member(:remove_network_services, Shapes::ShapeRef.new(shape: TrafficMirrorNetworkServiceList, location_name: "RemoveNetworkService"))
    ModifyTrafficMirrorFilterNetworkServicesRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    ModifyTrafficMirrorFilterNetworkServicesRequest.struct_class = Types::ModifyTrafficMirrorFilterNetworkServicesRequest

    ModifyTrafficMirrorFilterNetworkServicesResult.add_member(:traffic_mirror_filter, Shapes::ShapeRef.new(shape: TrafficMirrorFilter, location_name: "trafficMirrorFilter"))
    ModifyTrafficMirrorFilterNetworkServicesResult.struct_class = Types::ModifyTrafficMirrorFilterNetworkServicesResult

    ModifyTrafficMirrorFilterRuleRequest.add_member(:traffic_mirror_filter_rule_id, Shapes::ShapeRef.new(shape: TrafficMirrorFilterRuleIdWithResolver, required: true, location_name: "TrafficMirrorFilterRuleId"))
    ModifyTrafficMirrorFilterRuleRequest.add_member(:traffic_direction, Shapes::ShapeRef.new(shape: TrafficDirection, location_name: "TrafficDirection"))
    ModifyTrafficMirrorFilterRuleRequest.add_member(:rule_number, Shapes::ShapeRef.new(shape: Integer, location_name: "RuleNumber"))
    ModifyTrafficMirrorFilterRuleRequest.add_member(:rule_action, Shapes::ShapeRef.new(shape: TrafficMirrorRuleAction, location_name: "RuleAction"))
    ModifyTrafficMirrorFilterRuleRequest.add_member(:destination_port_range, Shapes::ShapeRef.new(shape: TrafficMirrorPortRangeRequest, location_name: "DestinationPortRange"))
    ModifyTrafficMirrorFilterRuleRequest.add_member(:source_port_range, Shapes::ShapeRef.new(shape: TrafficMirrorPortRangeRequest, location_name: "SourcePortRange"))
    ModifyTrafficMirrorFilterRuleRequest.add_member(:protocol, Shapes::ShapeRef.new(shape: Integer, location_name: "Protocol"))
    ModifyTrafficMirrorFilterRuleRequest.add_member(:destination_cidr_block, Shapes::ShapeRef.new(shape: String, location_name: "DestinationCidrBlock"))
    ModifyTrafficMirrorFilterRuleRequest.add_member(:source_cidr_block, Shapes::ShapeRef.new(shape: String, location_name: "SourceCidrBlock"))
    ModifyTrafficMirrorFilterRuleRequest.add_member(:description, Shapes::ShapeRef.new(shape: String, location_name: "Description"))
    ModifyTrafficMirrorFilterRuleRequest.add_member(:remove_fields, Shapes::ShapeRef.new(shape: TrafficMirrorFilterRuleFieldList, location_name: "RemoveField"))
    ModifyTrafficMirrorFilterRuleRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    ModifyTrafficMirrorFilterRuleRequest.struct_class = Types::ModifyTrafficMirrorFilterRuleRequest

    ModifyTrafficMirrorFilterRuleResult.add_member(:traffic_mirror_filter_rule, Shapes::ShapeRef.new(shape: TrafficMirrorFilterRule, location_name: "trafficMirrorFilterRule"))
    ModifyTrafficMirrorFilterRuleResult.struct_class = Types::ModifyTrafficMirrorFilterRuleResult

    ModifyTrafficMirrorSessionRequest.add_member(:traffic_mirror_session_id, Shapes::ShapeRef.new(shape: TrafficMirrorSessionId, required: true, location_name: "TrafficMirrorSessionId"))
    ModifyTrafficMirrorSessionRequest.add_member(:traffic_mirror_target_id, Shapes::ShapeRef.new(shape: TrafficMirrorTargetId, location_name: "TrafficMirrorTargetId"))
    ModifyTrafficMirrorSessionRequest.add_member(:traffic_mirror_filter_id, Shapes::ShapeRef.new(shape: TrafficMirrorFilterId, location_name: "TrafficMirrorFilterId"))
    ModifyTrafficMirrorSessionRequest.add_member(:packet_length, Shapes::ShapeRef.new(shape: Integer, location_name: "PacketLength"))
    ModifyTrafficMirrorSessionRequest.add_member(:session_number, Shapes::ShapeRef.new(shape: Integer, location_name: "SessionNumber"))
    ModifyTrafficMirrorSessionRequest.add_member(:virtual_network_id, Shapes::ShapeRef.new(shape: Integer, location_name: "VirtualNetworkId"))
    ModifyTrafficMirrorSessionRequest.add_member(:description, Shapes::ShapeRef.new(shape: String, location_name: "Description"))
    ModifyTrafficMirrorSessionRequest.add_member(:remove_fields, Shapes::ShapeRef.new(shape: TrafficMirrorSessionFieldList, location_name: "RemoveField"))
    ModifyTrafficMirrorSessionRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    ModifyTrafficMirrorSessionRequest.struct_class = Types::ModifyTrafficMirrorSessionRequest

    ModifyTrafficMirrorSessionResult.add_member(:traffic_mirror_session, Shapes::ShapeRef.new(shape: TrafficMirrorSession, location_name: "trafficMirrorSession"))
    ModifyTrafficMirrorSessionResult.struct_class = Types::ModifyTrafficMirrorSessionResult

    ModifyTransitGatewayOptions.add_member(:add_transit_gateway_cidr_blocks, Shapes::ShapeRef.new(shape: TransitGatewayCidrBlockStringList, location_name: "AddTransitGatewayCidrBlocks"))
    ModifyTransitGatewayOptions.add_member(:remove_transit_gateway_cidr_blocks, Shapes::ShapeRef.new(shape: TransitGatewayCidrBlockStringList, location_name: "RemoveTransitGatewayCidrBlocks"))
    ModifyTransitGatewayOptions.add_member(:vpn_ecmp_support, Shapes::ShapeRef.new(shape: VpnEcmpSupportValue, location_name: "VpnEcmpSupport"))
    ModifyTransitGatewayOptions.add_member(:dns_support, Shapes::ShapeRef.new(shape: DnsSupportValue, location_name: "DnsSupport"))
    ModifyTransitGatewayOptions.add_member(:security_group_referencing_support, Shapes::ShapeRef.new(shape: SecurityGroupReferencingSupportValue, location_name: "SecurityGroupReferencingSupport"))
    ModifyTransitGatewayOptions.add_member(:auto_accept_shared_attachments, Shapes::ShapeRef.new(shape: AutoAcceptSharedAttachmentsValue, location_name: "AutoAcceptSharedAttachments"))
    ModifyTransitGatewayOptions.add_member(:default_route_table_association, Shapes::ShapeRef.new(shape: DefaultRouteTableAssociationValue, location_name: "DefaultRouteTableAssociation"))
    ModifyTransitGatewayOptions.add_member(:association_default_route_table_id, Shapes::ShapeRef.new(shape: TransitGatewayRouteTableId, location_name: "AssociationDefaultRouteTableId"))
    ModifyTransitGatewayOptions.add_member(:default_route_table_propagation, Shapes::ShapeRef.new(shape: DefaultRouteTablePropagationValue, location_name: "DefaultRouteTablePropagation"))
    ModifyTransitGatewayOptions.add_member(:propagation_default_route_table_id, Shapes::ShapeRef.new(shape: TransitGatewayRouteTableId, location_name: "PropagationDefaultRouteTableId"))
    ModifyTransitGatewayOptions.add_member(:amazon_side_asn, Shapes::ShapeRef.new(shape: Long, location_name: "AmazonSideAsn"))
    ModifyTransitGatewayOptions.struct_class = Types::ModifyTransitGatewayOptions

    ModifyTransitGatewayPrefixListReferenceRequest.add_member(:transit_gateway_route_table_id, Shapes::ShapeRef.new(shape: TransitGatewayRouteTableId, required: true, location_name: "TransitGatewayRouteTableId"))
    ModifyTransitGatewayPrefixListReferenceRequest.add_member(:prefix_list_id, Shapes::ShapeRef.new(shape: PrefixListResourceId, required: true, location_name: "PrefixListId"))
    ModifyTransitGatewayPrefixListReferenceRequest.add_member(:transit_gateway_attachment_id, Shapes::ShapeRef.new(shape: TransitGatewayAttachmentId, location_name: "TransitGatewayAttachmentId"))
    ModifyTransitGatewayPrefixListReferenceRequest.add_member(:blackhole, Shapes::ShapeRef.new(shape: Boolean, location_name: "Blackhole"))
    ModifyTransitGatewayPrefixListReferenceRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    ModifyTransitGatewayPrefixListReferenceRequest.struct_class = Types::ModifyTransitGatewayPrefixListReferenceRequest

    ModifyTransitGatewayPrefixListReferenceResult.add_member(:transit_gateway_prefix_list_reference, Shapes::ShapeRef.new(shape: TransitGatewayPrefixListReference, location_name: "transitGatewayPrefixListReference"))
    ModifyTransitGatewayPrefixListReferenceResult.struct_class = Types::ModifyTransitGatewayPrefixListReferenceResult

    ModifyTransitGatewayRequest.add_member(:transit_gateway_id, Shapes::ShapeRef.new(shape: TransitGatewayId, required: true, location_name: "TransitGatewayId"))
    ModifyTransitGatewayRequest.add_member(:description, Shapes::ShapeRef.new(shape: String, location_name: "Description"))
    ModifyTransitGatewayRequest.add_member(:options, Shapes::ShapeRef.new(shape: ModifyTransitGatewayOptions, location_name: "Options"))
    ModifyTransitGatewayRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    ModifyTransitGatewayRequest.struct_class = Types::ModifyTransitGatewayRequest

    ModifyTransitGatewayResult.add_member(:transit_gateway, Shapes::ShapeRef.new(shape: TransitGateway, location_name: "transitGateway"))
    ModifyTransitGatewayResult.struct_class = Types::ModifyTransitGatewayResult

    ModifyTransitGatewayVpcAttachmentRequest.add_member(:transit_gateway_attachment_id, Shapes::ShapeRef.new(shape: TransitGatewayAttachmentId, required: true, location_name: "TransitGatewayAttachmentId"))
    ModifyTransitGatewayVpcAttachmentRequest.add_member(:add_subnet_ids, Shapes::ShapeRef.new(shape: TransitGatewaySubnetIdList, location_name: "AddSubnetIds"))
    ModifyTransitGatewayVpcAttachmentRequest.add_member(:remove_subnet_ids, Shapes::ShapeRef.new(shape: TransitGatewaySubnetIdList, location_name: "RemoveSubnetIds"))
    ModifyTransitGatewayVpcAttachmentRequest.add_member(:options, Shapes::ShapeRef.new(shape: ModifyTransitGatewayVpcAttachmentRequestOptions, location_name: "Options"))
    ModifyTransitGatewayVpcAttachmentRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    ModifyTransitGatewayVpcAttachmentRequest.struct_class = Types::ModifyTransitGatewayVpcAttachmentRequest

    ModifyTransitGatewayVpcAttachmentRequestOptions.add_member(:dns_support, Shapes::ShapeRef.new(shape: DnsSupportValue, location_name: "DnsSupport"))
    ModifyTransitGatewayVpcAttachmentRequestOptions.add_member(:security_group_referencing_support, Shapes::ShapeRef.new(shape: SecurityGroupReferencingSupportValue, location_name: "SecurityGroupReferencingSupport"))
    ModifyTransitGatewayVpcAttachmentRequestOptions.add_member(:ipv_6_support, Shapes::ShapeRef.new(shape: Ipv6SupportValue, location_name: "Ipv6Support"))
    ModifyTransitGatewayVpcAttachmentRequestOptions.add_member(:appliance_mode_support, Shapes::ShapeRef.new(shape: ApplianceModeSupportValue, location_name: "ApplianceModeSupport"))
    ModifyTransitGatewayVpcAttachmentRequestOptions.struct_class = Types::ModifyTransitGatewayVpcAttachmentRequestOptions

    ModifyTransitGatewayVpcAttachmentResult.add_member(:transit_gateway_vpc_attachment, Shapes::ShapeRef.new(shape: TransitGatewayVpcAttachment, location_name: "transitGatewayVpcAttachment"))
    ModifyTransitGatewayVpcAttachmentResult.struct_class = Types::ModifyTransitGatewayVpcAttachmentResult

    ModifyVerifiedAccessEndpointCidrOptions.add_member(:port_ranges, Shapes::ShapeRef.new(shape: ModifyVerifiedAccessEndpointPortRangeList, location_name: "PortRange"))
    ModifyVerifiedAccessEndpointCidrOptions.struct_class = Types::ModifyVerifiedAccessEndpointCidrOptions

    ModifyVerifiedAccessEndpointEniOptions.add_member(:protocol, Shapes::ShapeRef.new(shape: VerifiedAccessEndpointProtocol, location_name: "Protocol"))
    ModifyVerifiedAccessEndpointEniOptions.add_member(:port, Shapes::ShapeRef.new(shape: VerifiedAccessEndpointPortNumber, location_name: "Port"))
    ModifyVerifiedAccessEndpointEniOptions.add_member(:port_ranges, Shapes::ShapeRef.new(shape: ModifyVerifiedAccessEndpointPortRangeList, location_name: "PortRange"))
    ModifyVerifiedAccessEndpointEniOptions.struct_class = Types::ModifyVerifiedAccessEndpointEniOptions

    ModifyVerifiedAccessEndpointLoadBalancerOptions.add_member(:subnet_ids, Shapes::ShapeRef.new(shape: ModifyVerifiedAccessEndpointSubnetIdList, location_name: "SubnetId"))
    ModifyVerifiedAccessEndpointLoadBalancerOptions.add_member(:protocol, Shapes::ShapeRef.new(shape: VerifiedAccessEndpointProtocol, location_name: "Protocol"))
    ModifyVerifiedAccessEndpointLoadBalancerOptions.add_member(:port, Shapes::ShapeRef.new(shape: VerifiedAccessEndpointPortNumber, location_name: "Port"))
    ModifyVerifiedAccessEndpointLoadBalancerOptions.add_member(:port_ranges, Shapes::ShapeRef.new(shape: ModifyVerifiedAccessEndpointPortRangeList, location_name: "PortRange"))
    ModifyVerifiedAccessEndpointLoadBalancerOptions.struct_class = Types::ModifyVerifiedAccessEndpointLoadBalancerOptions

    ModifyVerifiedAccessEndpointPolicyRequest.add_member(:verified_access_endpoint_id, Shapes::ShapeRef.new(shape: VerifiedAccessEndpointId, required: true, location_name: "VerifiedAccessEndpointId"))
    ModifyVerifiedAccessEndpointPolicyRequest.add_member(:policy_enabled, Shapes::ShapeRef.new(shape: Boolean, location_name: "PolicyEnabled"))
    ModifyVerifiedAccessEndpointPolicyRequest.add_member(:policy_document, Shapes::ShapeRef.new(shape: String, location_name: "PolicyDocument"))
    ModifyVerifiedAccessEndpointPolicyRequest.add_member(:client_token, Shapes::ShapeRef.new(shape: String, location_name: "ClientToken", metadata: {"idempotencyToken"=>true}))
    ModifyVerifiedAccessEndpointPolicyRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    ModifyVerifiedAccessEndpointPolicyRequest.add_member(:sse_specification, Shapes::ShapeRef.new(shape: VerifiedAccessSseSpecificationRequest, location_name: "SseSpecification"))
    ModifyVerifiedAccessEndpointPolicyRequest.struct_class = Types::ModifyVerifiedAccessEndpointPolicyRequest

    ModifyVerifiedAccessEndpointPolicyResult.add_member(:policy_enabled, Shapes::ShapeRef.new(shape: Boolean, location_name: "policyEnabled"))
    ModifyVerifiedAccessEndpointPolicyResult.add_member(:policy_document, Shapes::ShapeRef.new(shape: String, location_name: "policyDocument"))
    ModifyVerifiedAccessEndpointPolicyResult.add_member(:sse_specification, Shapes::ShapeRef.new(shape: VerifiedAccessSseSpecificationResponse, location_name: "sseSpecification"))
    ModifyVerifiedAccessEndpointPolicyResult.struct_class = Types::ModifyVerifiedAccessEndpointPolicyResult

    ModifyVerifiedAccessEndpointPortRange.add_member(:from_port, Shapes::ShapeRef.new(shape: VerifiedAccessEndpointPortNumber, location_name: "FromPort"))
    ModifyVerifiedAccessEndpointPortRange.add_member(:to_port, Shapes::ShapeRef.new(shape: VerifiedAccessEndpointPortNumber, location_name: "ToPort"))
    ModifyVerifiedAccessEndpointPortRange.struct_class = Types::ModifyVerifiedAccessEndpointPortRange

    ModifyVerifiedAccessEndpointPortRangeList.member = Shapes::ShapeRef.new(shape: ModifyVerifiedAccessEndpointPortRange, location_name: "item")

    ModifyVerifiedAccessEndpointRdsOptions.add_member(:subnet_ids, Shapes::ShapeRef.new(shape: ModifyVerifiedAccessEndpointSubnetIdList, location_name: "SubnetId"))
    ModifyVerifiedAccessEndpointRdsOptions.add_member(:port, Shapes::ShapeRef.new(shape: VerifiedAccessEndpointPortNumber, location_name: "Port"))
    ModifyVerifiedAccessEndpointRdsOptions.add_member(:rds_endpoint, Shapes::ShapeRef.new(shape: String, location_name: "RdsEndpoint"))
    ModifyVerifiedAccessEndpointRdsOptions.struct_class = Types::ModifyVerifiedAccessEndpointRdsOptions

    ModifyVerifiedAccessEndpointRequest.add_member(:verified_access_endpoint_id, Shapes::ShapeRef.new(shape: VerifiedAccessEndpointId, required: true, location_name: "VerifiedAccessEndpointId"))
    ModifyVerifiedAccessEndpointRequest.add_member(:verified_access_group_id, Shapes::ShapeRef.new(shape: VerifiedAccessGroupId, location_name: "VerifiedAccessGroupId"))
    ModifyVerifiedAccessEndpointRequest.add_member(:load_balancer_options, Shapes::ShapeRef.new(shape: ModifyVerifiedAccessEndpointLoadBalancerOptions, location_name: "LoadBalancerOptions"))
    ModifyVerifiedAccessEndpointRequest.add_member(:network_interface_options, Shapes::ShapeRef.new(shape: ModifyVerifiedAccessEndpointEniOptions, location_name: "NetworkInterfaceOptions"))
    ModifyVerifiedAccessEndpointRequest.add_member(:description, Shapes::ShapeRef.new(shape: String, location_name: "Description"))
    ModifyVerifiedAccessEndpointRequest.add_member(:client_token, Shapes::ShapeRef.new(shape: String, location_name: "ClientToken", metadata: {"idempotencyToken"=>true}))
    ModifyVerifiedAccessEndpointRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    ModifyVerifiedAccessEndpointRequest.add_member(:rds_options, Shapes::ShapeRef.new(shape: ModifyVerifiedAccessEndpointRdsOptions, location_name: "RdsOptions"))
    ModifyVerifiedAccessEndpointRequest.add_member(:cidr_options, Shapes::ShapeRef.new(shape: ModifyVerifiedAccessEndpointCidrOptions, location_name: "CidrOptions"))
    ModifyVerifiedAccessEndpointRequest.struct_class = Types::ModifyVerifiedAccessEndpointRequest

    ModifyVerifiedAccessEndpointResult.add_member(:verified_access_endpoint, Shapes::ShapeRef.new(shape: VerifiedAccessEndpoint, location_name: "verifiedAccessEndpoint"))
    ModifyVerifiedAccessEndpointResult.struct_class = Types::ModifyVerifiedAccessEndpointResult

    ModifyVerifiedAccessEndpointSubnetIdList.member = Shapes::ShapeRef.new(shape: SubnetId, location_name: "item")

    ModifyVerifiedAccessGroupPolicyRequest.add_member(:verified_access_group_id, Shapes::ShapeRef.new(shape: VerifiedAccessGroupId, required: true, location_name: "VerifiedAccessGroupId"))
    ModifyVerifiedAccessGroupPolicyRequest.add_member(:policy_enabled, Shapes::ShapeRef.new(shape: Boolean, location_name: "PolicyEnabled"))
    ModifyVerifiedAccessGroupPolicyRequest.add_member(:policy_document, Shapes::ShapeRef.new(shape: String, location_name: "PolicyDocument"))
    ModifyVerifiedAccessGroupPolicyRequest.add_member(:client_token, Shapes::ShapeRef.new(shape: String, location_name: "ClientToken", metadata: {"idempotencyToken"=>true}))
    ModifyVerifiedAccessGroupPolicyRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    ModifyVerifiedAccessGroupPolicyRequest.add_member(:sse_specification, Shapes::ShapeRef.new(shape: VerifiedAccessSseSpecificationRequest, location_name: "SseSpecification"))
    ModifyVerifiedAccessGroupPolicyRequest.struct_class = Types::ModifyVerifiedAccessGroupPolicyRequest

    ModifyVerifiedAccessGroupPolicyResult.add_member(:policy_enabled, Shapes::ShapeRef.new(shape: Boolean, location_name: "policyEnabled"))
    ModifyVerifiedAccessGroupPolicyResult.add_member(:policy_document, Shapes::ShapeRef.new(shape: String, location_name: "policyDocument"))
    ModifyVerifiedAccessGroupPolicyResult.add_member(:sse_specification, Shapes::ShapeRef.new(shape: VerifiedAccessSseSpecificationResponse, location_name: "sseSpecification"))
    ModifyVerifiedAccessGroupPolicyResult.struct_class = Types::ModifyVerifiedAccessGroupPolicyResult

    ModifyVerifiedAccessGroupRequest.add_member(:verified_access_group_id, Shapes::ShapeRef.new(shape: VerifiedAccessGroupId, required: true, location_name: "VerifiedAccessGroupId"))
    ModifyVerifiedAccessGroupRequest.add_member(:verified_access_instance_id, Shapes::ShapeRef.new(shape: VerifiedAccessInstanceId, location_name: "VerifiedAccessInstanceId"))
    ModifyVerifiedAccessGroupRequest.add_member(:description, Shapes::ShapeRef.new(shape: String, location_name: "Description"))
    ModifyVerifiedAccessGroupRequest.add_member(:client_token, Shapes::ShapeRef.new(shape: String, location_name: "ClientToken", metadata: {"idempotencyToken"=>true}))
    ModifyVerifiedAccessGroupRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    ModifyVerifiedAccessGroupRequest.struct_class = Types::ModifyVerifiedAccessGroupRequest

    ModifyVerifiedAccessGroupResult.add_member(:verified_access_group, Shapes::ShapeRef.new(shape: VerifiedAccessGroup, location_name: "verifiedAccessGroup"))
    ModifyVerifiedAccessGroupResult.struct_class = Types::ModifyVerifiedAccessGroupResult

    ModifyVerifiedAccessInstanceLoggingConfigurationRequest.add_member(:verified_access_instance_id, Shapes::ShapeRef.new(shape: VerifiedAccessInstanceId, required: true, location_name: "VerifiedAccessInstanceId"))
    ModifyVerifiedAccessInstanceLoggingConfigurationRequest.add_member(:access_logs, Shapes::ShapeRef.new(shape: VerifiedAccessLogOptions, required: true, location_name: "AccessLogs"))
    ModifyVerifiedAccessInstanceLoggingConfigurationRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    ModifyVerifiedAccessInstanceLoggingConfigurationRequest.add_member(:client_token, Shapes::ShapeRef.new(shape: String, location_name: "ClientToken", metadata: {"idempotencyToken"=>true}))
    ModifyVerifiedAccessInstanceLoggingConfigurationRequest.struct_class = Types::ModifyVerifiedAccessInstanceLoggingConfigurationRequest

    ModifyVerifiedAccessInstanceLoggingConfigurationResult.add_member(:logging_configuration, Shapes::ShapeRef.new(shape: VerifiedAccessInstanceLoggingConfiguration, location_name: "loggingConfiguration"))
    ModifyVerifiedAccessInstanceLoggingConfigurationResult.struct_class = Types::ModifyVerifiedAccessInstanceLoggingConfigurationResult

    ModifyVerifiedAccessInstanceRequest.add_member(:verified_access_instance_id, Shapes::ShapeRef.new(shape: VerifiedAccessInstanceId, required: true, location_name: "VerifiedAccessInstanceId"))
    ModifyVerifiedAccessInstanceRequest.add_member(:description, Shapes::ShapeRef.new(shape: String, location_name: "Description"))
    ModifyVerifiedAccessInstanceRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    ModifyVerifiedAccessInstanceRequest.add_member(:client_token, Shapes::ShapeRef.new(shape: String, location_name: "ClientToken", metadata: {"idempotencyToken"=>true}))
    ModifyVerifiedAccessInstanceRequest.add_member(:cidr_endpoints_custom_sub_domain, Shapes::ShapeRef.new(shape: String, location_name: "CidrEndpointsCustomSubDomain"))
    ModifyVerifiedAccessInstanceRequest.struct_class = Types::ModifyVerifiedAccessInstanceRequest

    ModifyVerifiedAccessInstanceResult.add_member(:verified_access_instance, Shapes::ShapeRef.new(shape: VerifiedAccessInstance, location_name: "verifiedAccessInstance"))
    ModifyVerifiedAccessInstanceResult.struct_class = Types::ModifyVerifiedAccessInstanceResult

    ModifyVerifiedAccessNativeApplicationOidcOptions.add_member(:public_signing_key_endpoint, Shapes::ShapeRef.new(shape: String, location_name: "PublicSigningKeyEndpoint"))
    ModifyVerifiedAccessNativeApplicationOidcOptions.add_member(:issuer, Shapes::ShapeRef.new(shape: String, location_name: "Issuer"))
    ModifyVerifiedAccessNativeApplicationOidcOptions.add_member(:authorization_endpoint, Shapes::ShapeRef.new(shape: String, location_name: "AuthorizationEndpoint"))
    ModifyVerifiedAccessNativeApplicationOidcOptions.add_member(:token_endpoint, Shapes::ShapeRef.new(shape: String, location_name: "TokenEndpoint"))
    ModifyVerifiedAccessNativeApplicationOidcOptions.add_member(:user_info_endpoint, Shapes::ShapeRef.new(shape: String, location_name: "UserInfoEndpoint"))
    ModifyVerifiedAccessNativeApplicationOidcOptions.add_member(:client_id, Shapes::ShapeRef.new(shape: String, location_name: "ClientId"))
    ModifyVerifiedAccessNativeApplicationOidcOptions.add_member(:client_secret, Shapes::ShapeRef.new(shape: ClientSecretType, location_name: "ClientSecret"))
    ModifyVerifiedAccessNativeApplicationOidcOptions.add_member(:scope, Shapes::ShapeRef.new(shape: String, location_name: "Scope"))
    ModifyVerifiedAccessNativeApplicationOidcOptions.struct_class = Types::ModifyVerifiedAccessNativeApplicationOidcOptions

    ModifyVerifiedAccessTrustProviderDeviceOptions.add_member(:public_signing_key_url, Shapes::ShapeRef.new(shape: String, location_name: "PublicSigningKeyUrl"))
    ModifyVerifiedAccessTrustProviderDeviceOptions.struct_class = Types::ModifyVerifiedAccessTrustProviderDeviceOptions

    ModifyVerifiedAccessTrustProviderOidcOptions.add_member(:issuer, Shapes::ShapeRef.new(shape: String, location_name: "Issuer"))
    ModifyVerifiedAccessTrustProviderOidcOptions.add_member(:authorization_endpoint, Shapes::ShapeRef.new(shape: String, location_name: "AuthorizationEndpoint"))
    ModifyVerifiedAccessTrustProviderOidcOptions.add_member(:token_endpoint, Shapes::ShapeRef.new(shape: String, location_name: "TokenEndpoint"))
    ModifyVerifiedAccessTrustProviderOidcOptions.add_member(:user_info_endpoint, Shapes::ShapeRef.new(shape: String, location_name: "UserInfoEndpoint"))
    ModifyVerifiedAccessTrustProviderOidcOptions.add_member(:client_id, Shapes::ShapeRef.new(shape: String, location_name: "ClientId"))
    ModifyVerifiedAccessTrustProviderOidcOptions.add_member(:client_secret, Shapes::ShapeRef.new(shape: ClientSecretType, location_name: "ClientSecret"))
    ModifyVerifiedAccessTrustProviderOidcOptions.add_member(:scope, Shapes::ShapeRef.new(shape: String, location_name: "Scope"))
    ModifyVerifiedAccessTrustProviderOidcOptions.struct_class = Types::ModifyVerifiedAccessTrustProviderOidcOptions

    ModifyVerifiedAccessTrustProviderRequest.add_member(:verified_access_trust_provider_id, Shapes::ShapeRef.new(shape: VerifiedAccessTrustProviderId, required: true, location_name: "VerifiedAccessTrustProviderId"))
    ModifyVerifiedAccessTrustProviderRequest.add_member(:oidc_options, Shapes::ShapeRef.new(shape: ModifyVerifiedAccessTrustProviderOidcOptions, location_name: "OidcOptions"))
    ModifyVerifiedAccessTrustProviderRequest.add_member(:device_options, Shapes::ShapeRef.new(shape: ModifyVerifiedAccessTrustProviderDeviceOptions, location_name: "DeviceOptions"))
    ModifyVerifiedAccessTrustProviderRequest.add_member(:description, Shapes::ShapeRef.new(shape: String, location_name: "Description"))
    ModifyVerifiedAccessTrustProviderRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    ModifyVerifiedAccessTrustProviderRequest.add_member(:client_token, Shapes::ShapeRef.new(shape: String, location_name: "ClientToken", metadata: {"idempotencyToken"=>true}))
    ModifyVerifiedAccessTrustProviderRequest.add_member(:sse_specification, Shapes::ShapeRef.new(shape: VerifiedAccessSseSpecificationRequest, location_name: "SseSpecification"))
    ModifyVerifiedAccessTrustProviderRequest.add_member(:native_application_oidc_options, Shapes::ShapeRef.new(shape: ModifyVerifiedAccessNativeApplicationOidcOptions, location_name: "NativeApplicationOidcOptions"))
    ModifyVerifiedAccessTrustProviderRequest.struct_class = Types::ModifyVerifiedAccessTrustProviderRequest

    ModifyVerifiedAccessTrustProviderResult.add_member(:verified_access_trust_provider, Shapes::ShapeRef.new(shape: VerifiedAccessTrustProvider, location_name: "verifiedAccessTrustProvider"))
    ModifyVerifiedAccessTrustProviderResult.struct_class = Types::ModifyVerifiedAccessTrustProviderResult

    ModifyVolumeAttributeRequest.add_member(:auto_enable_io, Shapes::ShapeRef.new(shape: AttributeBooleanValue, location_name: "AutoEnableIO"))
    ModifyVolumeAttributeRequest.add_member(:volume_id, Shapes::ShapeRef.new(shape: VolumeId, required: true, location_name: "VolumeId"))
    ModifyVolumeAttributeRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "dryRun"))
    ModifyVolumeAttributeRequest.struct_class = Types::ModifyVolumeAttributeRequest

    ModifyVolumeRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    ModifyVolumeRequest.add_member(:volume_id, Shapes::ShapeRef.new(shape: VolumeId, required: true, location_name: "VolumeId"))
    ModifyVolumeRequest.add_member(:size, Shapes::ShapeRef.new(shape: Integer, location_name: "Size"))
    ModifyVolumeRequest.add_member(:volume_type, Shapes::ShapeRef.new(shape: VolumeType, location_name: "VolumeType"))
    ModifyVolumeRequest.add_member(:iops, Shapes::ShapeRef.new(shape: Integer, location_name: "Iops"))
    ModifyVolumeRequest.add_member(:throughput, Shapes::ShapeRef.new(shape: Integer, location_name: "Throughput"))
    ModifyVolumeRequest.add_member(:multi_attach_enabled, Shapes::ShapeRef.new(shape: Boolean, location_name: "MultiAttachEnabled"))
    ModifyVolumeRequest.struct_class = Types::ModifyVolumeRequest

    ModifyVolumeResult.add_member(:volume_modification, Shapes::ShapeRef.new(shape: VolumeModification, location_name: "volumeModification"))
    ModifyVolumeResult.struct_class = Types::ModifyVolumeResult

    ModifyVpcAttributeRequest.add_member(:enable_dns_hostnames, Shapes::ShapeRef.new(shape: AttributeBooleanValue, location_name: "EnableDnsHostnames"))
    ModifyVpcAttributeRequest.add_member(:enable_dns_support, Shapes::ShapeRef.new(shape: AttributeBooleanValue, location_name: "EnableDnsSupport"))
    ModifyVpcAttributeRequest.add_member(:vpc_id, Shapes::ShapeRef.new(shape: VpcId, required: true, location_name: "vpcId"))
    ModifyVpcAttributeRequest.add_member(:enable_network_address_usage_metrics, Shapes::ShapeRef.new(shape: AttributeBooleanValue, location_name: "EnableNetworkAddressUsageMetrics"))
    ModifyVpcAttributeRequest.struct_class = Types::ModifyVpcAttributeRequest

    ModifyVpcBlockPublicAccessExclusionRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    ModifyVpcBlockPublicAccessExclusionRequest.add_member(:exclusion_id, Shapes::ShapeRef.new(shape: VpcBlockPublicAccessExclusionId, required: true, location_name: "ExclusionId"))
    ModifyVpcBlockPublicAccessExclusionRequest.add_member(:internet_gateway_exclusion_mode, Shapes::ShapeRef.new(shape: InternetGatewayExclusionMode, required: true, location_name: "InternetGatewayExclusionMode"))
    ModifyVpcBlockPublicAccessExclusionRequest.struct_class = Types::ModifyVpcBlockPublicAccessExclusionRequest

    ModifyVpcBlockPublicAccessExclusionResult.add_member(:vpc_block_public_access_exclusion, Shapes::ShapeRef.new(shape: VpcBlockPublicAccessExclusion, location_name: "vpcBlockPublicAccessExclusion"))
    ModifyVpcBlockPublicAccessExclusionResult.struct_class = Types::ModifyVpcBlockPublicAccessExclusionResult

    ModifyVpcBlockPublicAccessOptionsRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    ModifyVpcBlockPublicAccessOptionsRequest.add_member(:internet_gateway_block_mode, Shapes::ShapeRef.new(shape: InternetGatewayBlockMode, required: true, location_name: "InternetGatewayBlockMode"))
    ModifyVpcBlockPublicAccessOptionsRequest.struct_class = Types::ModifyVpcBlockPublicAccessOptionsRequest

    ModifyVpcBlockPublicAccessOptionsResult.add_member(:vpc_block_public_access_options, Shapes::ShapeRef.new(shape: VpcBlockPublicAccessOptions, location_name: "vpcBlockPublicAccessOptions"))
    ModifyVpcBlockPublicAccessOptionsResult.struct_class = Types::ModifyVpcBlockPublicAccessOptionsResult

    ModifyVpcEndpointConnectionNotificationRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    ModifyVpcEndpointConnectionNotificationRequest.add_member(:connection_notification_id, Shapes::ShapeRef.new(shape: ConnectionNotificationId, required: true, location_name: "ConnectionNotificationId"))
    ModifyVpcEndpointConnectionNotificationRequest.add_member(:connection_notification_arn, Shapes::ShapeRef.new(shape: String, location_name: "ConnectionNotificationArn"))
    ModifyVpcEndpointConnectionNotificationRequest.add_member(:connection_events, Shapes::ShapeRef.new(shape: ValueStringList, location_name: "ConnectionEvents"))
    ModifyVpcEndpointConnectionNotificationRequest.struct_class = Types::ModifyVpcEndpointConnectionNotificationRequest

    ModifyVpcEndpointConnectionNotificationResult.add_member(:return_value, Shapes::ShapeRef.new(shape: Boolean, location_name: "return"))
    ModifyVpcEndpointConnectionNotificationResult.struct_class = Types::ModifyVpcEndpointConnectionNotificationResult

    ModifyVpcEndpointRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    ModifyVpcEndpointRequest.add_member(:vpc_endpoint_id, Shapes::ShapeRef.new(shape: VpcEndpointId, required: true, location_name: "VpcEndpointId"))
    ModifyVpcEndpointRequest.add_member(:reset_policy, Shapes::ShapeRef.new(shape: Boolean, location_name: "ResetPolicy"))
    ModifyVpcEndpointRequest.add_member(:policy_document, Shapes::ShapeRef.new(shape: String, location_name: "PolicyDocument"))
    ModifyVpcEndpointRequest.add_member(:add_route_table_ids, Shapes::ShapeRef.new(shape: VpcEndpointRouteTableIdList, location_name: "AddRouteTableId"))
    ModifyVpcEndpointRequest.add_member(:remove_route_table_ids, Shapes::ShapeRef.new(shape: VpcEndpointRouteTableIdList, location_name: "RemoveRouteTableId"))
    ModifyVpcEndpointRequest.add_member(:add_subnet_ids, Shapes::ShapeRef.new(shape: VpcEndpointSubnetIdList, location_name: "AddSubnetId"))
    ModifyVpcEndpointRequest.add_member(:remove_subnet_ids, Shapes::ShapeRef.new(shape: VpcEndpointSubnetIdList, location_name: "RemoveSubnetId"))
    ModifyVpcEndpointRequest.add_member(:add_security_group_ids, Shapes::ShapeRef.new(shape: VpcEndpointSecurityGroupIdList, location_name: "AddSecurityGroupId"))
    ModifyVpcEndpointRequest.add_member(:remove_security_group_ids, Shapes::ShapeRef.new(shape: VpcEndpointSecurityGroupIdList, location_name: "RemoveSecurityGroupId"))
    ModifyVpcEndpointRequest.add_member(:ip_address_type, Shapes::ShapeRef.new(shape: IpAddressType, location_name: "IpAddressType"))
    ModifyVpcEndpointRequest.add_member(:dns_options, Shapes::ShapeRef.new(shape: DnsOptionsSpecification, location_name: "DnsOptions"))
    ModifyVpcEndpointRequest.add_member(:private_dns_enabled, Shapes::ShapeRef.new(shape: Boolean, location_name: "PrivateDnsEnabled"))
    ModifyVpcEndpointRequest.add_member(:subnet_configurations, Shapes::ShapeRef.new(shape: SubnetConfigurationsList, location_name: "SubnetConfiguration"))
    ModifyVpcEndpointRequest.struct_class = Types::ModifyVpcEndpointRequest

    ModifyVpcEndpointResult.add_member(:return, Shapes::ShapeRef.new(shape: Boolean, location_name: "return"))
    ModifyVpcEndpointResult.struct_class = Types::ModifyVpcEndpointResult

    ModifyVpcEndpointServiceConfigurationRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    ModifyVpcEndpointServiceConfigurationRequest.add_member(:service_id, Shapes::ShapeRef.new(shape: VpcEndpointServiceId, required: true, location_name: "ServiceId"))
    ModifyVpcEndpointServiceConfigurationRequest.add_member(:private_dns_name, Shapes::ShapeRef.new(shape: String, location_name: "PrivateDnsName"))
    ModifyVpcEndpointServiceConfigurationRequest.add_member(:remove_private_dns_name, Shapes::ShapeRef.new(shape: Boolean, location_name: "RemovePrivateDnsName"))
    ModifyVpcEndpointServiceConfigurationRequest.add_member(:acceptance_required, Shapes::ShapeRef.new(shape: Boolean, location_name: "AcceptanceRequired"))
    ModifyVpcEndpointServiceConfigurationRequest.add_member(:add_network_load_balancer_arns, Shapes::ShapeRef.new(shape: ValueStringList, location_name: "AddNetworkLoadBalancerArn"))
    ModifyVpcEndpointServiceConfigurationRequest.add_member(:remove_network_load_balancer_arns, Shapes::ShapeRef.new(shape: ValueStringList, location_name: "RemoveNetworkLoadBalancerArn"))
    ModifyVpcEndpointServiceConfigurationRequest.add_member(:add_gateway_load_balancer_arns, Shapes::ShapeRef.new(shape: ValueStringList, location_name: "AddGatewayLoadBalancerArn"))
    ModifyVpcEndpointServiceConfigurationRequest.add_member(:remove_gateway_load_balancer_arns, Shapes::ShapeRef.new(shape: ValueStringList, location_name: "RemoveGatewayLoadBalancerArn"))
    ModifyVpcEndpointServiceConfigurationRequest.add_member(:add_supported_ip_address_types, Shapes::ShapeRef.new(shape: ValueStringList, location_name: "AddSupportedIpAddressType"))
    ModifyVpcEndpointServiceConfigurationRequest.add_member(:remove_supported_ip_address_types, Shapes::ShapeRef.new(shape: ValueStringList, location_name: "RemoveSupportedIpAddressType"))
    ModifyVpcEndpointServiceConfigurationRequest.add_member(:add_supported_regions, Shapes::ShapeRef.new(shape: ValueStringList, location_name: "AddSupportedRegion"))
    ModifyVpcEndpointServiceConfigurationRequest.add_member(:remove_supported_regions, Shapes::ShapeRef.new(shape: ValueStringList, location_name: "RemoveSupportedRegion"))
    ModifyVpcEndpointServiceConfigurationRequest.struct_class = Types::ModifyVpcEndpointServiceConfigurationRequest

    ModifyVpcEndpointServiceConfigurationResult.add_member(:return, Shapes::ShapeRef.new(shape: Boolean, location_name: "return"))
    ModifyVpcEndpointServiceConfigurationResult.struct_class = Types::ModifyVpcEndpointServiceConfigurationResult

    ModifyVpcEndpointServicePayerResponsibilityRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    ModifyVpcEndpointServicePayerResponsibilityRequest.add_member(:service_id, Shapes::ShapeRef.new(shape: VpcEndpointServiceId, required: true, location_name: "ServiceId"))
    ModifyVpcEndpointServicePayerResponsibilityRequest.add_member(:payer_responsibility, Shapes::ShapeRef.new(shape: PayerResponsibility, required: true, location_name: "PayerResponsibility"))
    ModifyVpcEndpointServicePayerResponsibilityRequest.struct_class = Types::ModifyVpcEndpointServicePayerResponsibilityRequest

    ModifyVpcEndpointServicePayerResponsibilityResult.add_member(:return_value, Shapes::ShapeRef.new(shape: Boolean, location_name: "return"))
    ModifyVpcEndpointServicePayerResponsibilityResult.struct_class = Types::ModifyVpcEndpointServicePayerResponsibilityResult

    ModifyVpcEndpointServicePermissionsRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    ModifyVpcEndpointServicePermissionsRequest.add_member(:service_id, Shapes::ShapeRef.new(shape: VpcEndpointServiceId, required: true, location_name: "ServiceId"))
    ModifyVpcEndpointServicePermissionsRequest.add_member(:add_allowed_principals, Shapes::ShapeRef.new(shape: ValueStringList, location_name: "AddAllowedPrincipals"))
    ModifyVpcEndpointServicePermissionsRequest.add_member(:remove_allowed_principals, Shapes::ShapeRef.new(shape: ValueStringList, location_name: "RemoveAllowedPrincipals"))
    ModifyVpcEndpointServicePermissionsRequest.struct_class = Types::ModifyVpcEndpointServicePermissionsRequest

    ModifyVpcEndpointServicePermissionsResult.add_member(:added_principals, Shapes::ShapeRef.new(shape: AddedPrincipalSet, location_name: "addedPrincipalSet"))
    ModifyVpcEndpointServicePermissionsResult.add_member(:return_value, Shapes::ShapeRef.new(shape: Boolean, location_name: "return"))
    ModifyVpcEndpointServicePermissionsResult.struct_class = Types::ModifyVpcEndpointServicePermissionsResult

    ModifyVpcPeeringConnectionOptionsRequest.add_member(:accepter_peering_connection_options, Shapes::ShapeRef.new(shape: PeeringConnectionOptionsRequest, location_name: "AccepterPeeringConnectionOptions"))
    ModifyVpcPeeringConnectionOptionsRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    ModifyVpcPeeringConnectionOptionsRequest.add_member(:requester_peering_connection_options, Shapes::ShapeRef.new(shape: PeeringConnectionOptionsRequest, location_name: "RequesterPeeringConnectionOptions"))
    ModifyVpcPeeringConnectionOptionsRequest.add_member(:vpc_peering_connection_id, Shapes::ShapeRef.new(shape: VpcPeeringConnectionId, required: true, location_name: "VpcPeeringConnectionId"))
    ModifyVpcPeeringConnectionOptionsRequest.struct_class = Types::ModifyVpcPeeringConnectionOptionsRequest

    ModifyVpcPeeringConnectionOptionsResult.add_member(:accepter_peering_connection_options, Shapes::ShapeRef.new(shape: PeeringConnectionOptions, location_name: "accepterPeeringConnectionOptions"))
    ModifyVpcPeeringConnectionOptionsResult.add_member(:requester_peering_connection_options, Shapes::ShapeRef.new(shape: PeeringConnectionOptions, location_name: "requesterPeeringConnectionOptions"))
    ModifyVpcPeeringConnectionOptionsResult.struct_class = Types::ModifyVpcPeeringConnectionOptionsResult

    ModifyVpcTenancyRequest.add_member(:vpc_id, Shapes::ShapeRef.new(shape: VpcId, required: true, location_name: "VpcId"))
    ModifyVpcTenancyRequest.add_member(:instance_tenancy, Shapes::ShapeRef.new(shape: VpcTenancy, required: true, location_name: "InstanceTenancy"))
    ModifyVpcTenancyRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    ModifyVpcTenancyRequest.struct_class = Types::ModifyVpcTenancyRequest

    ModifyVpcTenancyResult.add_member(:return_value, Shapes::ShapeRef.new(shape: Boolean, location_name: "return"))
    ModifyVpcTenancyResult.struct_class = Types::ModifyVpcTenancyResult

    ModifyVpnConnectionOptionsRequest.add_member(:vpn_connection_id, Shapes::ShapeRef.new(shape: VpnConnectionId, required: true, location_name: "VpnConnectionId"))
    ModifyVpnConnectionOptionsRequest.add_member(:local_ipv_4_network_cidr, Shapes::ShapeRef.new(shape: String, location_name: "LocalIpv4NetworkCidr"))
    ModifyVpnConnectionOptionsRequest.add_member(:remote_ipv_4_network_cidr, Shapes::ShapeRef.new(shape: String, location_name: "RemoteIpv4NetworkCidr"))
    ModifyVpnConnectionOptionsRequest.add_member(:local_ipv_6_network_cidr, Shapes::ShapeRef.new(shape: String, location_name: "LocalIpv6NetworkCidr"))
    ModifyVpnConnectionOptionsRequest.add_member(:remote_ipv_6_network_cidr, Shapes::ShapeRef.new(shape: String, location_name: "RemoteIpv6NetworkCidr"))
    ModifyVpnConnectionOptionsRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    ModifyVpnConnectionOptionsRequest.struct_class = Types::ModifyVpnConnectionOptionsRequest

    ModifyVpnConnectionOptionsResult.add_member(:vpn_connection, Shapes::ShapeRef.new(shape: VpnConnection, location_name: "vpnConnection"))
    ModifyVpnConnectionOptionsResult.struct_class = Types::ModifyVpnConnectionOptionsResult

    ModifyVpnConnectionRequest.add_member(:vpn_connection_id, Shapes::ShapeRef.new(shape: VpnConnectionId, required: true, location_name: "VpnConnectionId"))
    ModifyVpnConnectionRequest.add_member(:transit_gateway_id, Shapes::ShapeRef.new(shape: TransitGatewayId, location_name: "TransitGatewayId"))
    ModifyVpnConnectionRequest.add_member(:customer_gateway_id, Shapes::ShapeRef.new(shape: CustomerGatewayId, location_name: "CustomerGatewayId"))
    ModifyVpnConnectionRequest.add_member(:vpn_gateway_id, Shapes::ShapeRef.new(shape: VpnGatewayId, location_name: "VpnGatewayId"))
    ModifyVpnConnectionRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    ModifyVpnConnectionRequest.struct_class = Types::ModifyVpnConnectionRequest

    ModifyVpnConnectionResult.add_member(:vpn_connection, Shapes::ShapeRef.new(shape: VpnConnection, location_name: "vpnConnection"))
    ModifyVpnConnectionResult.struct_class = Types::ModifyVpnConnectionResult

    ModifyVpnTunnelCertificateRequest.add_member(:vpn_connection_id, Shapes::ShapeRef.new(shape: VpnConnectionId, required: true, location_name: "VpnConnectionId"))
    ModifyVpnTunnelCertificateRequest.add_member(:vpn_tunnel_outside_ip_address, Shapes::ShapeRef.new(shape: String, required: true, location_name: "VpnTunnelOutsideIpAddress"))
    ModifyVpnTunnelCertificateRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    ModifyVpnTunnelCertificateRequest.struct_class = Types::ModifyVpnTunnelCertificateRequest

    ModifyVpnTunnelCertificateResult.add_member(:vpn_connection, Shapes::ShapeRef.new(shape: VpnConnection, location_name: "vpnConnection"))
    ModifyVpnTunnelCertificateResult.struct_class = Types::ModifyVpnTunnelCertificateResult

    ModifyVpnTunnelOptionsRequest.add_member(:vpn_connection_id, Shapes::ShapeRef.new(shape: VpnConnectionId, required: true, location_name: "VpnConnectionId"))
    ModifyVpnTunnelOptionsRequest.add_member(:vpn_tunnel_outside_ip_address, Shapes::ShapeRef.new(shape: String, required: true, location_name: "VpnTunnelOutsideIpAddress"))
    ModifyVpnTunnelOptionsRequest.add_member(:tunnel_options, Shapes::ShapeRef.new(shape: ModifyVpnTunnelOptionsSpecification, required: true, location_name: "TunnelOptions"))
    ModifyVpnTunnelOptionsRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    ModifyVpnTunnelOptionsRequest.add_member(:skip_tunnel_replacement, Shapes::ShapeRef.new(shape: Boolean, location_name: "SkipTunnelReplacement"))
    ModifyVpnTunnelOptionsRequest.struct_class = Types::ModifyVpnTunnelOptionsRequest

    ModifyVpnTunnelOptionsResult.add_member(:vpn_connection, Shapes::ShapeRef.new(shape: VpnConnection, location_name: "vpnConnection"))
    ModifyVpnTunnelOptionsResult.struct_class = Types::ModifyVpnTunnelOptionsResult

    ModifyVpnTunnelOptionsSpecification.add_member(:tunnel_inside_cidr, Shapes::ShapeRef.new(shape: String, location_name: "TunnelInsideCidr"))
    ModifyVpnTunnelOptionsSpecification.add_member(:tunnel_inside_ipv_6_cidr, Shapes::ShapeRef.new(shape: String, location_name: "TunnelInsideIpv6Cidr"))
    ModifyVpnTunnelOptionsSpecification.add_member(:pre_shared_key, Shapes::ShapeRef.new(shape: preSharedKey, location_name: "PreSharedKey"))
    ModifyVpnTunnelOptionsSpecification.add_member(:phase_1_lifetime_seconds, Shapes::ShapeRef.new(shape: Integer, location_name: "Phase1LifetimeSeconds"))
    ModifyVpnTunnelOptionsSpecification.add_member(:phase_2_lifetime_seconds, Shapes::ShapeRef.new(shape: Integer, location_name: "Phase2LifetimeSeconds"))
    ModifyVpnTunnelOptionsSpecification.add_member(:rekey_margin_time_seconds, Shapes::ShapeRef.new(shape: Integer, location_name: "RekeyMarginTimeSeconds"))
    ModifyVpnTunnelOptionsSpecification.add_member(:rekey_fuzz_percentage, Shapes::ShapeRef.new(shape: Integer, location_name: "RekeyFuzzPercentage"))
    ModifyVpnTunnelOptionsSpecification.add_member(:replay_window_size, Shapes::ShapeRef.new(shape: Integer, location_name: "ReplayWindowSize"))
    ModifyVpnTunnelOptionsSpecification.add_member(:dpd_timeout_seconds, Shapes::ShapeRef.new(shape: Integer, location_name: "DPDTimeoutSeconds"))
    ModifyVpnTunnelOptionsSpecification.add_member(:dpd_timeout_action, Shapes::ShapeRef.new(shape: String, location_name: "DPDTimeoutAction"))
    ModifyVpnTunnelOptionsSpecification.add_member(:phase_1_encryption_algorithms, Shapes::ShapeRef.new(shape: Phase1EncryptionAlgorithmsRequestList, location_name: "Phase1EncryptionAlgorithm"))
    ModifyVpnTunnelOptionsSpecification.add_member(:phase_2_encryption_algorithms, Shapes::ShapeRef.new(shape: Phase2EncryptionAlgorithmsRequestList, location_name: "Phase2EncryptionAlgorithm"))
    ModifyVpnTunnelOptionsSpecification.add_member(:phase_1_integrity_algorithms, Shapes::ShapeRef.new(shape: Phase1IntegrityAlgorithmsRequestList, location_name: "Phase1IntegrityAlgorithm"))
    ModifyVpnTunnelOptionsSpecification.add_member(:phase_2_integrity_algorithms, Shapes::ShapeRef.new(shape: Phase2IntegrityAlgorithmsRequestList, location_name: "Phase2IntegrityAlgorithm"))
    ModifyVpnTunnelOptionsSpecification.add_member(:phase_1_dh_group_numbers, Shapes::ShapeRef.new(shape: Phase1DHGroupNumbersRequestList, location_name: "Phase1DHGroupNumber"))
    ModifyVpnTunnelOptionsSpecification.add_member(:phase_2_dh_group_numbers, Shapes::ShapeRef.new(shape: Phase2DHGroupNumbersRequestList, location_name: "Phase2DHGroupNumber"))
    ModifyVpnTunnelOptionsSpecification.add_member(:ike_versions, Shapes::ShapeRef.new(shape: IKEVersionsRequestList, location_name: "IKEVersion"))
    ModifyVpnTunnelOptionsSpecification.add_member(:startup_action, Shapes::ShapeRef.new(shape: String, location_name: "StartupAction"))
    ModifyVpnTunnelOptionsSpecification.add_member(:log_options, Shapes::ShapeRef.new(shape: VpnTunnelLogOptionsSpecification, location_name: "LogOptions"))
    ModifyVpnTunnelOptionsSpecification.add_member(:enable_tunnel_lifecycle_control, Shapes::ShapeRef.new(shape: Boolean, location_name: "EnableTunnelLifecycleControl"))
    ModifyVpnTunnelOptionsSpecification.struct_class = Types::ModifyVpnTunnelOptionsSpecification

    MonitorInstancesRequest.add_member(:instance_ids, Shapes::ShapeRef.new(shape: InstanceIdStringList, required: true, location_name: "InstanceId"))
    MonitorInstancesRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "dryRun"))
    MonitorInstancesRequest.struct_class = Types::MonitorInstancesRequest

    MonitorInstancesResult.add_member(:instance_monitorings, Shapes::ShapeRef.new(shape: InstanceMonitoringList, location_name: "instancesSet"))
    MonitorInstancesResult.struct_class = Types::MonitorInstancesResult

    Monitoring.add_member(:state, Shapes::ShapeRef.new(shape: MonitoringState, location_name: "state"))
    Monitoring.struct_class = Types::Monitoring

    MoveAddressToVpcRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "dryRun"))
    MoveAddressToVpcRequest.add_member(:public_ip, Shapes::ShapeRef.new(shape: String, required: true, location_name: "publicIp"))
    MoveAddressToVpcRequest.struct_class = Types::MoveAddressToVpcRequest

    MoveAddressToVpcResult.add_member(:allocation_id, Shapes::ShapeRef.new(shape: String, location_name: "allocationId"))
    MoveAddressToVpcResult.add_member(:status, Shapes::ShapeRef.new(shape: Status, location_name: "status"))
    MoveAddressToVpcResult.struct_class = Types::MoveAddressToVpcResult

    MoveByoipCidrToIpamRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    MoveByoipCidrToIpamRequest.add_member(:cidr, Shapes::ShapeRef.new(shape: String, required: true, location_name: "Cidr"))
    MoveByoipCidrToIpamRequest.add_member(:ipam_pool_id, Shapes::ShapeRef.new(shape: IpamPoolId, required: true, location_name: "IpamPoolId"))
    MoveByoipCidrToIpamRequest.add_member(:ipam_pool_owner, Shapes::ShapeRef.new(shape: String, required: true, location_name: "IpamPoolOwner"))
    MoveByoipCidrToIpamRequest.struct_class = Types::MoveByoipCidrToIpamRequest

    MoveByoipCidrToIpamResult.add_member(:byoip_cidr, Shapes::ShapeRef.new(shape: ByoipCidr, location_name: "byoipCidr"))
    MoveByoipCidrToIpamResult.struct_class = Types::MoveByoipCidrToIpamResult

    MoveCapacityReservationInstancesRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    MoveCapacityReservationInstancesRequest.add_member(:client_token, Shapes::ShapeRef.new(shape: String, location_name: "ClientToken", metadata: {"idempotencyToken"=>true}))
    MoveCapacityReservationInstancesRequest.add_member(:source_capacity_reservation_id, Shapes::ShapeRef.new(shape: CapacityReservationId, required: true, location_name: "SourceCapacityReservationId"))
    MoveCapacityReservationInstancesRequest.add_member(:destination_capacity_reservation_id, Shapes::ShapeRef.new(shape: CapacityReservationId, required: true, location_name: "DestinationCapacityReservationId"))
    MoveCapacityReservationInstancesRequest.add_member(:instance_count, Shapes::ShapeRef.new(shape: Integer, required: true, location_name: "InstanceCount"))
    MoveCapacityReservationInstancesRequest.struct_class = Types::MoveCapacityReservationInstancesRequest

    MoveCapacityReservationInstancesResult.add_member(:source_capacity_reservation, Shapes::ShapeRef.new(shape: CapacityReservation, location_name: "sourceCapacityReservation"))
    MoveCapacityReservationInstancesResult.add_member(:destination_capacity_reservation, Shapes::ShapeRef.new(shape: CapacityReservation, location_name: "destinationCapacityReservation"))
    MoveCapacityReservationInstancesResult.add_member(:instance_count, Shapes::ShapeRef.new(shape: Integer, location_name: "instanceCount"))
    MoveCapacityReservationInstancesResult.struct_class = Types::MoveCapacityReservationInstancesResult

    MovingAddressStatus.add_member(:move_status, Shapes::ShapeRef.new(shape: MoveStatus, location_name: "moveStatus"))
    MovingAddressStatus.add_member(:public_ip, Shapes::ShapeRef.new(shape: String, location_name: "publicIp"))
    MovingAddressStatus.struct_class = Types::MovingAddressStatus

    MovingAddressStatusSet.member = Shapes::ShapeRef.new(shape: MovingAddressStatus, location_name: "item")

    NatGateway.add_member(:create_time, Shapes::ShapeRef.new(shape: DateTime, location_name: "createTime"))
    NatGateway.add_member(:delete_time, Shapes::ShapeRef.new(shape: DateTime, location_name: "deleteTime"))
    NatGateway.add_member(:failure_code, Shapes::ShapeRef.new(shape: String, location_name: "failureCode"))
    NatGateway.add_member(:failure_message, Shapes::ShapeRef.new(shape: String, location_name: "failureMessage"))
    NatGateway.add_member(:nat_gateway_addresses, Shapes::ShapeRef.new(shape: NatGatewayAddressList, location_name: "natGatewayAddressSet"))
    NatGateway.add_member(:nat_gateway_id, Shapes::ShapeRef.new(shape: String, location_name: "natGatewayId"))
    NatGateway.add_member(:provisioned_bandwidth, Shapes::ShapeRef.new(shape: ProvisionedBandwidth, location_name: "provisionedBandwidth"))
    NatGateway.add_member(:state, Shapes::ShapeRef.new(shape: NatGatewayState, location_name: "state"))
    NatGateway.add_member(:subnet_id, Shapes::ShapeRef.new(shape: String, location_name: "subnetId"))
    NatGateway.add_member(:vpc_id, Shapes::ShapeRef.new(shape: String, location_name: "vpcId"))
    NatGateway.add_member(:tags, Shapes::ShapeRef.new(shape: TagList, location_name: "tagSet"))
    NatGateway.add_member(:connectivity_type, Shapes::ShapeRef.new(shape: ConnectivityType, location_name: "connectivityType"))
    NatGateway.struct_class = Types::NatGateway

    NatGatewayAddress.add_member(:allocation_id, Shapes::ShapeRef.new(shape: String, location_name: "allocationId"))
    NatGatewayAddress.add_member(:network_interface_id, Shapes::ShapeRef.new(shape: String, location_name: "networkInterfaceId"))
    NatGatewayAddress.add_member(:private_ip, Shapes::ShapeRef.new(shape: String, location_name: "privateIp"))
    NatGatewayAddress.add_member(:public_ip, Shapes::ShapeRef.new(shape: String, location_name: "publicIp"))
    NatGatewayAddress.add_member(:association_id, Shapes::ShapeRef.new(shape: String, location_name: "associationId"))
    NatGatewayAddress.add_member(:is_primary, Shapes::ShapeRef.new(shape: Boolean, location_name: "isPrimary"))
    NatGatewayAddress.add_member(:failure_message, Shapes::ShapeRef.new(shape: String, location_name: "failureMessage"))
    NatGatewayAddress.add_member(:status, Shapes::ShapeRef.new(shape: NatGatewayAddressStatus, location_name: "status"))
    NatGatewayAddress.struct_class = Types::NatGatewayAddress

    NatGatewayAddressList.member = Shapes::ShapeRef.new(shape: NatGatewayAddress, location_name: "item")

    NatGatewayIdStringList.member = Shapes::ShapeRef.new(shape: NatGatewayId, location_name: "item")

    NatGatewayList.member = Shapes::ShapeRef.new(shape: NatGateway, location_name: "item")

    NativeApplicationOidcOptions.add_member(:public_signing_key_endpoint, Shapes::ShapeRef.new(shape: String, location_name: "publicSigningKeyEndpoint"))
    NativeApplicationOidcOptions.add_member(:issuer, Shapes::ShapeRef.new(shape: String, location_name: "issuer"))
    NativeApplicationOidcOptions.add_member(:authorization_endpoint, Shapes::ShapeRef.new(shape: String, location_name: "authorizationEndpoint"))
    NativeApplicationOidcOptions.add_member(:token_endpoint, Shapes::ShapeRef.new(shape: String, location_name: "tokenEndpoint"))
    NativeApplicationOidcOptions.add_member(:user_info_endpoint, Shapes::ShapeRef.new(shape: String, location_name: "userInfoEndpoint"))
    NativeApplicationOidcOptions.add_member(:client_id, Shapes::ShapeRef.new(shape: String, location_name: "clientId"))
    NativeApplicationOidcOptions.add_member(:scope, Shapes::ShapeRef.new(shape: String, location_name: "scope"))
    NativeApplicationOidcOptions.struct_class = Types::NativeApplicationOidcOptions

    NetworkAcl.add_member(:associations, Shapes::ShapeRef.new(shape: NetworkAclAssociationList, location_name: "associationSet"))
    NetworkAcl.add_member(:entries, Shapes::ShapeRef.new(shape: NetworkAclEntryList, location_name: "entrySet"))
    NetworkAcl.add_member(:is_default, Shapes::ShapeRef.new(shape: Boolean, location_name: "default"))
    NetworkAcl.add_member(:network_acl_id, Shapes::ShapeRef.new(shape: String, location_name: "networkAclId"))
    NetworkAcl.add_member(:tags, Shapes::ShapeRef.new(shape: TagList, location_name: "tagSet"))
    NetworkAcl.add_member(:vpc_id, Shapes::ShapeRef.new(shape: String, location_name: "vpcId"))
    NetworkAcl.add_member(:owner_id, Shapes::ShapeRef.new(shape: String, location_name: "ownerId"))
    NetworkAcl.struct_class = Types::NetworkAcl

    NetworkAclAssociation.add_member(:network_acl_association_id, Shapes::ShapeRef.new(shape: String, location_name: "networkAclAssociationId"))
    NetworkAclAssociation.add_member(:network_acl_id, Shapes::ShapeRef.new(shape: String, location_name: "networkAclId"))
    NetworkAclAssociation.add_member(:subnet_id, Shapes::ShapeRef.new(shape: String, location_name: "subnetId"))
    NetworkAclAssociation.struct_class = Types::NetworkAclAssociation

    NetworkAclAssociationList.member = Shapes::ShapeRef.new(shape: NetworkAclAssociation, location_name: "item")

    NetworkAclEntry.add_member(:cidr_block, Shapes::ShapeRef.new(shape: String, location_name: "cidrBlock"))
    NetworkAclEntry.add_member(:egress, Shapes::ShapeRef.new(shape: Boolean, location_name: "egress"))
    NetworkAclEntry.add_member(:icmp_type_code, Shapes::ShapeRef.new(shape: IcmpTypeCode, location_name: "icmpTypeCode"))
    NetworkAclEntry.add_member(:ipv_6_cidr_block, Shapes::ShapeRef.new(shape: String, location_name: "ipv6CidrBlock"))
    NetworkAclEntry.add_member(:port_range, Shapes::ShapeRef.new(shape: PortRange, location_name: "portRange"))
    NetworkAclEntry.add_member(:protocol, Shapes::ShapeRef.new(shape: String, location_name: "protocol"))
    NetworkAclEntry.add_member(:rule_action, Shapes::ShapeRef.new(shape: RuleAction, location_name: "ruleAction"))
    NetworkAclEntry.add_member(:rule_number, Shapes::ShapeRef.new(shape: Integer, location_name: "ruleNumber"))
    NetworkAclEntry.struct_class = Types::NetworkAclEntry

    NetworkAclEntryList.member = Shapes::ShapeRef.new(shape: NetworkAclEntry, location_name: "item")

    NetworkAclIdStringList.member = Shapes::ShapeRef.new(shape: NetworkAclId, location_name: "item")

    NetworkAclList.member = Shapes::ShapeRef.new(shape: NetworkAcl, location_name: "item")

    NetworkBandwidthGbps.add_member(:min, Shapes::ShapeRef.new(shape: Double, location_name: "min"))
    NetworkBandwidthGbps.add_member(:max, Shapes::ShapeRef.new(shape: Double, location_name: "max"))
    NetworkBandwidthGbps.struct_class = Types::NetworkBandwidthGbps

    NetworkBandwidthGbpsRequest.add_member(:min, Shapes::ShapeRef.new(shape: Double, location_name: "Min"))
    NetworkBandwidthGbpsRequest.add_member(:max, Shapes::ShapeRef.new(shape: Double, location_name: "Max"))
    NetworkBandwidthGbpsRequest.struct_class = Types::NetworkBandwidthGbpsRequest

    NetworkCardInfo.add_member(:network_card_index, Shapes::ShapeRef.new(shape: NetworkCardIndex, location_name: "networkCardIndex"))
    NetworkCardInfo.add_member(:network_performance, Shapes::ShapeRef.new(shape: NetworkPerformance, location_name: "networkPerformance"))
    NetworkCardInfo.add_member(:maximum_network_interfaces, Shapes::ShapeRef.new(shape: MaxNetworkInterfaces, location_name: "maximumNetworkInterfaces"))
    NetworkCardInfo.add_member(:baseline_bandwidth_in_gbps, Shapes::ShapeRef.new(shape: BaselineBandwidthInGbps, location_name: "baselineBandwidthInGbps"))
    NetworkCardInfo.add_member(:peak_bandwidth_in_gbps, Shapes::ShapeRef.new(shape: PeakBandwidthInGbps, location_name: "peakBandwidthInGbps"))
    NetworkCardInfo.struct_class = Types::NetworkCardInfo

    NetworkCardInfoList.member = Shapes::ShapeRef.new(shape: NetworkCardInfo, location_name: "item")

    NetworkInfo.add_member(:network_performance, Shapes::ShapeRef.new(shape: NetworkPerformance, location_name: "networkPerformance"))
    NetworkInfo.add_member(:maximum_network_interfaces, Shapes::ShapeRef.new(shape: MaxNetworkInterfaces, location_name: "maximumNetworkInterfaces"))
    NetworkInfo.add_member(:maximum_network_cards, Shapes::ShapeRef.new(shape: MaximumNetworkCards, location_name: "maximumNetworkCards"))
    NetworkInfo.add_member(:default_network_card_index, Shapes::ShapeRef.new(shape: DefaultNetworkCardIndex, location_name: "defaultNetworkCardIndex"))
    NetworkInfo.add_member(:network_cards, Shapes::ShapeRef.new(shape: NetworkCardInfoList, location_name: "networkCards"))
    NetworkInfo.add_member(:ipv_4_addresses_per_interface, Shapes::ShapeRef.new(shape: MaxIpv4AddrPerInterface, location_name: "ipv4AddressesPerInterface"))
    NetworkInfo.add_member(:ipv_6_addresses_per_interface, Shapes::ShapeRef.new(shape: MaxIpv6AddrPerInterface, location_name: "ipv6AddressesPerInterface"))
    NetworkInfo.add_member(:ipv_6_supported, Shapes::ShapeRef.new(shape: Ipv6Flag, location_name: "ipv6Supported"))
    NetworkInfo.add_member(:ena_support, Shapes::ShapeRef.new(shape: EnaSupport, location_name: "enaSupport"))
    NetworkInfo.add_member(:efa_supported, Shapes::ShapeRef.new(shape: EfaSupportedFlag, location_name: "efaSupported"))
    NetworkInfo.add_member(:efa_info, Shapes::ShapeRef.new(shape: EfaInfo, location_name: "efaInfo"))
    NetworkInfo.add_member(:encryption_in_transit_supported, Shapes::ShapeRef.new(shape: EncryptionInTransitSupported, location_name: "encryptionInTransitSupported"))
    NetworkInfo.add_member(:ena_srd_supported, Shapes::ShapeRef.new(shape: EnaSrdSupported, location_name: "enaSrdSupported"))
    NetworkInfo.add_member(:bandwidth_weightings, Shapes::ShapeRef.new(shape: BandwidthWeightingTypeList, location_name: "bandwidthWeightings"))
    NetworkInfo.struct_class = Types::NetworkInfo

    NetworkInsightsAccessScope.add_member(:network_insights_access_scope_id, Shapes::ShapeRef.new(shape: NetworkInsightsAccessScopeId, location_name: "networkInsightsAccessScopeId"))
    NetworkInsightsAccessScope.add_member(:network_insights_access_scope_arn, Shapes::ShapeRef.new(shape: ResourceArn, location_name: "networkInsightsAccessScopeArn"))
    NetworkInsightsAccessScope.add_member(:created_date, Shapes::ShapeRef.new(shape: MillisecondDateTime, location_name: "createdDate"))
    NetworkInsightsAccessScope.add_member(:updated_date, Shapes::ShapeRef.new(shape: MillisecondDateTime, location_name: "updatedDate"))
    NetworkInsightsAccessScope.add_member(:tags, Shapes::ShapeRef.new(shape: TagList, location_name: "tagSet"))
    NetworkInsightsAccessScope.struct_class = Types::NetworkInsightsAccessScope

    NetworkInsightsAccessScopeAnalysis.add_member(:network_insights_access_scope_analysis_id, Shapes::ShapeRef.new(shape: NetworkInsightsAccessScopeAnalysisId, location_name: "networkInsightsAccessScopeAnalysisId"))
    NetworkInsightsAccessScopeAnalysis.add_member(:network_insights_access_scope_analysis_arn, Shapes::ShapeRef.new(shape: ResourceArn, location_name: "networkInsightsAccessScopeAnalysisArn"))
    NetworkInsightsAccessScopeAnalysis.add_member(:network_insights_access_scope_id, Shapes::ShapeRef.new(shape: NetworkInsightsAccessScopeId, location_name: "networkInsightsAccessScopeId"))
    NetworkInsightsAccessScopeAnalysis.add_member(:status, Shapes::ShapeRef.new(shape: AnalysisStatus, location_name: "status"))
    NetworkInsightsAccessScopeAnalysis.add_member(:status_message, Shapes::ShapeRef.new(shape: String, location_name: "statusMessage"))
    NetworkInsightsAccessScopeAnalysis.add_member(:warning_message, Shapes::ShapeRef.new(shape: String, location_name: "warningMessage"))
    NetworkInsightsAccessScopeAnalysis.add_member(:start_date, Shapes::ShapeRef.new(shape: MillisecondDateTime, location_name: "startDate"))
    NetworkInsightsAccessScopeAnalysis.add_member(:end_date, Shapes::ShapeRef.new(shape: MillisecondDateTime, location_name: "endDate"))
    NetworkInsightsAccessScopeAnalysis.add_member(:findings_found, Shapes::ShapeRef.new(shape: FindingsFound, location_name: "findingsFound"))
    NetworkInsightsAccessScopeAnalysis.add_member(:analyzed_eni_count, Shapes::ShapeRef.new(shape: Integer, location_name: "analyzedEniCount"))
    NetworkInsightsAccessScopeAnalysis.add_member(:tags, Shapes::ShapeRef.new(shape: TagList, location_name: "tagSet"))
    NetworkInsightsAccessScopeAnalysis.struct_class = Types::NetworkInsightsAccessScopeAnalysis

    NetworkInsightsAccessScopeAnalysisIdList.member = Shapes::ShapeRef.new(shape: NetworkInsightsAccessScopeAnalysisId, location_name: "item")

    NetworkInsightsAccessScopeAnalysisList.member = Shapes::ShapeRef.new(shape: NetworkInsightsAccessScopeAnalysis, location_name: "item")

    NetworkInsightsAccessScopeContent.add_member(:network_insights_access_scope_id, Shapes::ShapeRef.new(shape: NetworkInsightsAccessScopeId, location_name: "networkInsightsAccessScopeId"))
    NetworkInsightsAccessScopeContent.add_member(:match_paths, Shapes::ShapeRef.new(shape: AccessScopePathList, location_name: "matchPathSet"))
    NetworkInsightsAccessScopeContent.add_member(:exclude_paths, Shapes::ShapeRef.new(shape: AccessScopePathList, location_name: "excludePathSet"))
    NetworkInsightsAccessScopeContent.struct_class = Types::NetworkInsightsAccessScopeContent

    NetworkInsightsAccessScopeIdList.member = Shapes::ShapeRef.new(shape: NetworkInsightsAccessScopeId, location_name: "item")

    NetworkInsightsAccessScopeList.member = Shapes::ShapeRef.new(shape: NetworkInsightsAccessScope, location_name: "item")

    NetworkInsightsAnalysis.add_member(:network_insights_analysis_id, Shapes::ShapeRef.new(shape: NetworkInsightsAnalysisId, location_name: "networkInsightsAnalysisId"))
    NetworkInsightsAnalysis.add_member(:network_insights_analysis_arn, Shapes::ShapeRef.new(shape: ResourceArn, location_name: "networkInsightsAnalysisArn"))
    NetworkInsightsAnalysis.add_member(:network_insights_path_id, Shapes::ShapeRef.new(shape: NetworkInsightsPathId, location_name: "networkInsightsPathId"))
    NetworkInsightsAnalysis.add_member(:additional_accounts, Shapes::ShapeRef.new(shape: ValueStringList, location_name: "additionalAccountSet"))
    NetworkInsightsAnalysis.add_member(:filter_in_arns, Shapes::ShapeRef.new(shape: ArnList, location_name: "filterInArnSet"))
    NetworkInsightsAnalysis.add_member(:start_date, Shapes::ShapeRef.new(shape: MillisecondDateTime, location_name: "startDate"))
    NetworkInsightsAnalysis.add_member(:status, Shapes::ShapeRef.new(shape: AnalysisStatus, location_name: "status"))
    NetworkInsightsAnalysis.add_member(:status_message, Shapes::ShapeRef.new(shape: String, location_name: "statusMessage"))
    NetworkInsightsAnalysis.add_member(:warning_message, Shapes::ShapeRef.new(shape: String, location_name: "warningMessage"))
    NetworkInsightsAnalysis.add_member(:network_path_found, Shapes::ShapeRef.new(shape: Boolean, location_name: "networkPathFound"))
    NetworkInsightsAnalysis.add_member(:forward_path_components, Shapes::ShapeRef.new(shape: PathComponentList, location_name: "forwardPathComponentSet"))
    NetworkInsightsAnalysis.add_member(:return_path_components, Shapes::ShapeRef.new(shape: PathComponentList, location_name: "returnPathComponentSet"))
    NetworkInsightsAnalysis.add_member(:explanations, Shapes::ShapeRef.new(shape: ExplanationList, location_name: "explanationSet"))
    NetworkInsightsAnalysis.add_member(:alternate_path_hints, Shapes::ShapeRef.new(shape: AlternatePathHintList, location_name: "alternatePathHintSet"))
    NetworkInsightsAnalysis.add_member(:suggested_accounts, Shapes::ShapeRef.new(shape: ValueStringList, location_name: "suggestedAccountSet"))
    NetworkInsightsAnalysis.add_member(:tags, Shapes::ShapeRef.new(shape: TagList, location_name: "tagSet"))
    NetworkInsightsAnalysis.struct_class = Types::NetworkInsightsAnalysis

    NetworkInsightsAnalysisIdList.member = Shapes::ShapeRef.new(shape: NetworkInsightsAnalysisId, location_name: "item")

    NetworkInsightsAnalysisList.member = Shapes::ShapeRef.new(shape: NetworkInsightsAnalysis, location_name: "item")

    NetworkInsightsPath.add_member(:network_insights_path_id, Shapes::ShapeRef.new(shape: NetworkInsightsPathId, location_name: "networkInsightsPathId"))
    NetworkInsightsPath.add_member(:network_insights_path_arn, Shapes::ShapeRef.new(shape: ResourceArn, location_name: "networkInsightsPathArn"))
    NetworkInsightsPath.add_member(:created_date, Shapes::ShapeRef.new(shape: MillisecondDateTime, location_name: "createdDate"))
    NetworkInsightsPath.add_member(:source, Shapes::ShapeRef.new(shape: String, location_name: "source"))
    NetworkInsightsPath.add_member(:destination, Shapes::ShapeRef.new(shape: String, location_name: "destination"))
    NetworkInsightsPath.add_member(:source_arn, Shapes::ShapeRef.new(shape: ResourceArn, location_name: "sourceArn"))
    NetworkInsightsPath.add_member(:destination_arn, Shapes::ShapeRef.new(shape: ResourceArn, location_name: "destinationArn"))
    NetworkInsightsPath.add_member(:source_ip, Shapes::ShapeRef.new(shape: IpAddress, location_name: "sourceIp"))
    NetworkInsightsPath.add_member(:destination_ip, Shapes::ShapeRef.new(shape: IpAddress, location_name: "destinationIp"))
    NetworkInsightsPath.add_member(:protocol, Shapes::ShapeRef.new(shape: Protocol, location_name: "protocol"))
    NetworkInsightsPath.add_member(:destination_port, Shapes::ShapeRef.new(shape: Integer, location_name: "destinationPort"))
    NetworkInsightsPath.add_member(:tags, Shapes::ShapeRef.new(shape: TagList, location_name: "tagSet"))
    NetworkInsightsPath.add_member(:filter_at_source, Shapes::ShapeRef.new(shape: PathFilter, location_name: "filterAtSource"))
    NetworkInsightsPath.add_member(:filter_at_destination, Shapes::ShapeRef.new(shape: PathFilter, location_name: "filterAtDestination"))
    NetworkInsightsPath.struct_class = Types::NetworkInsightsPath

    NetworkInsightsPathIdList.member = Shapes::ShapeRef.new(shape: NetworkInsightsPathId, location_name: "item")

    NetworkInsightsPathList.member = Shapes::ShapeRef.new(shape: NetworkInsightsPath, location_name: "item")

    NetworkInterface.add_member(:association, Shapes::ShapeRef.new(shape: NetworkInterfaceAssociation, location_name: "association"))
    NetworkInterface.add_member(:attachment, Shapes::ShapeRef.new(shape: NetworkInterfaceAttachment, location_name: "attachment"))
    NetworkInterface.add_member(:availability_zone, Shapes::ShapeRef.new(shape: String, location_name: "availabilityZone"))
    NetworkInterface.add_member(:connection_tracking_configuration, Shapes::ShapeRef.new(shape: ConnectionTrackingConfiguration, location_name: "connectionTrackingConfiguration"))
    NetworkInterface.add_member(:description, Shapes::ShapeRef.new(shape: String, location_name: "description"))
    NetworkInterface.add_member(:groups, Shapes::ShapeRef.new(shape: GroupIdentifierList, location_name: "groupSet"))
    NetworkInterface.add_member(:interface_type, Shapes::ShapeRef.new(shape: NetworkInterfaceType, location_name: "interfaceType"))
    NetworkInterface.add_member(:ipv_6_addresses, Shapes::ShapeRef.new(shape: NetworkInterfaceIpv6AddressesList, location_name: "ipv6AddressesSet"))
    NetworkInterface.add_member(:mac_address, Shapes::ShapeRef.new(shape: String, location_name: "macAddress"))
    NetworkInterface.add_member(:network_interface_id, Shapes::ShapeRef.new(shape: String, location_name: "networkInterfaceId"))
    NetworkInterface.add_member(:outpost_arn, Shapes::ShapeRef.new(shape: String, location_name: "outpostArn"))
    NetworkInterface.add_member(:owner_id, Shapes::ShapeRef.new(shape: String, location_name: "ownerId"))
    NetworkInterface.add_member(:private_dns_name, Shapes::ShapeRef.new(shape: String, location_name: "privateDnsName"))
    NetworkInterface.add_member(:private_ip_address, Shapes::ShapeRef.new(shape: String, location_name: "privateIpAddress"))
    NetworkInterface.add_member(:private_ip_addresses, Shapes::ShapeRef.new(shape: NetworkInterfacePrivateIpAddressList, location_name: "privateIpAddressesSet"))
    NetworkInterface.add_member(:ipv_4_prefixes, Shapes::ShapeRef.new(shape: Ipv4PrefixesList, location_name: "ipv4PrefixSet"))
    NetworkInterface.add_member(:ipv_6_prefixes, Shapes::ShapeRef.new(shape: Ipv6PrefixesList, location_name: "ipv6PrefixSet"))
    NetworkInterface.add_member(:requester_id, Shapes::ShapeRef.new(shape: String, location_name: "requesterId"))
    NetworkInterface.add_member(:requester_managed, Shapes::ShapeRef.new(shape: Boolean, location_name: "requesterManaged"))
    NetworkInterface.add_member(:source_dest_check, Shapes::ShapeRef.new(shape: Boolean, location_name: "sourceDestCheck"))
    NetworkInterface.add_member(:status, Shapes::ShapeRef.new(shape: NetworkInterfaceStatus, location_name: "status"))
    NetworkInterface.add_member(:subnet_id, Shapes::ShapeRef.new(shape: String, location_name: "subnetId"))
    NetworkInterface.add_member(:tag_set, Shapes::ShapeRef.new(shape: TagList, location_name: "tagSet"))
    NetworkInterface.add_member(:vpc_id, Shapes::ShapeRef.new(shape: String, location_name: "vpcId"))
    NetworkInterface.add_member(:deny_all_igw_traffic, Shapes::ShapeRef.new(shape: Boolean, location_name: "denyAllIgwTraffic"))
    NetworkInterface.add_member(:ipv_6_native, Shapes::ShapeRef.new(shape: Boolean, location_name: "ipv6Native"))
    NetworkInterface.add_member(:ipv_6_address, Shapes::ShapeRef.new(shape: String, location_name: "ipv6Address"))
    NetworkInterface.add_member(:operator, Shapes::ShapeRef.new(shape: OperatorResponse, location_name: "operator"))
    NetworkInterface.struct_class = Types::NetworkInterface

    NetworkInterfaceAssociation.add_member(:allocation_id, Shapes::ShapeRef.new(shape: String, location_name: "allocationId"))
    NetworkInterfaceAssociation.add_member(:association_id, Shapes::ShapeRef.new(shape: String, location_name: "associationId"))
    NetworkInterfaceAssociation.add_member(:ip_owner_id, Shapes::ShapeRef.new(shape: String, location_name: "ipOwnerId"))
    NetworkInterfaceAssociation.add_member(:public_dns_name, Shapes::ShapeRef.new(shape: String, location_name: "publicDnsName"))
    NetworkInterfaceAssociation.add_member(:public_ip, Shapes::ShapeRef.new(shape: String, location_name: "publicIp"))
    NetworkInterfaceAssociation.add_member(:customer_owned_ip, Shapes::ShapeRef.new(shape: String, location_name: "customerOwnedIp"))
    NetworkInterfaceAssociation.add_member(:carrier_ip, Shapes::ShapeRef.new(shape: String, location_name: "carrierIp"))
    NetworkInterfaceAssociation.struct_class = Types::NetworkInterfaceAssociation

    NetworkInterfaceAttachment.add_member(:attach_time, Shapes::ShapeRef.new(shape: DateTime, location_name: "attachTime"))
    NetworkInterfaceAttachment.add_member(:attachment_id, Shapes::ShapeRef.new(shape: String, location_name: "attachmentId"))
    NetworkInterfaceAttachment.add_member(:delete_on_termination, Shapes::ShapeRef.new(shape: Boolean, location_name: "deleteOnTermination"))
    NetworkInterfaceAttachment.add_member(:device_index, Shapes::ShapeRef.new(shape: Integer, location_name: "deviceIndex"))
    NetworkInterfaceAttachment.add_member(:network_card_index, Shapes::ShapeRef.new(shape: Integer, location_name: "networkCardIndex"))
    NetworkInterfaceAttachment.add_member(:instance_id, Shapes::ShapeRef.new(shape: String, location_name: "instanceId"))
    NetworkInterfaceAttachment.add_member(:instance_owner_id, Shapes::ShapeRef.new(shape: String, location_name: "instanceOwnerId"))
    NetworkInterfaceAttachment.add_member(:status, Shapes::ShapeRef.new(shape: AttachmentStatus, location_name: "status"))
    NetworkInterfaceAttachment.add_member(:ena_srd_specification, Shapes::ShapeRef.new(shape: AttachmentEnaSrdSpecification, location_name: "enaSrdSpecification"))
    NetworkInterfaceAttachment.struct_class = Types::NetworkInterfaceAttachment

    NetworkInterfaceAttachmentChanges.add_member(:attachment_id, Shapes::ShapeRef.new(shape: NetworkInterfaceAttachmentId, location_name: "attachmentId"))
    NetworkInterfaceAttachmentChanges.add_member(:delete_on_termination, Shapes::ShapeRef.new(shape: Boolean, location_name: "deleteOnTermination"))
    NetworkInterfaceAttachmentChanges.struct_class = Types::NetworkInterfaceAttachmentChanges

    NetworkInterfaceCount.add_member(:min, Shapes::ShapeRef.new(shape: Integer, location_name: "min"))
    NetworkInterfaceCount.add_member(:max, Shapes::ShapeRef.new(shape: Integer, location_name: "max"))
    NetworkInterfaceCount.struct_class = Types::NetworkInterfaceCount

    NetworkInterfaceCountRequest.add_member(:min, Shapes::ShapeRef.new(shape: Integer, location_name: "Min"))
    NetworkInterfaceCountRequest.add_member(:max, Shapes::ShapeRef.new(shape: Integer, location_name: "Max"))
    NetworkInterfaceCountRequest.struct_class = Types::NetworkInterfaceCountRequest

    NetworkInterfaceIdList.member = Shapes::ShapeRef.new(shape: NetworkInterfaceId, location_name: "item")

    NetworkInterfaceIdSet.member = Shapes::ShapeRef.new(shape: String, location_name: "item")

    NetworkInterfaceIpv6Address.add_member(:ipv_6_address, Shapes::ShapeRef.new(shape: String, location_name: "ipv6Address"))
    NetworkInterfaceIpv6Address.add_member(:is_primary_ipv_6, Shapes::ShapeRef.new(shape: Boolean, location_name: "isPrimaryIpv6"))
    NetworkInterfaceIpv6Address.struct_class = Types::NetworkInterfaceIpv6Address

    NetworkInterfaceIpv6AddressesList.member = Shapes::ShapeRef.new(shape: NetworkInterfaceIpv6Address, location_name: "item")

    NetworkInterfaceList.member = Shapes::ShapeRef.new(shape: NetworkInterface, location_name: "item")

    NetworkInterfacePermission.add_member(:network_interface_permission_id, Shapes::ShapeRef.new(shape: String, location_name: "networkInterfacePermissionId"))
    NetworkInterfacePermission.add_member(:network_interface_id, Shapes::ShapeRef.new(shape: String, location_name: "networkInterfaceId"))
    NetworkInterfacePermission.add_member(:aws_account_id, Shapes::ShapeRef.new(shape: String, location_name: "awsAccountId"))
    NetworkInterfacePermission.add_member(:aws_service, Shapes::ShapeRef.new(shape: String, location_name: "awsService"))
    NetworkInterfacePermission.add_member(:permission, Shapes::ShapeRef.new(shape: InterfacePermissionType, location_name: "permission"))
    NetworkInterfacePermission.add_member(:permission_state, Shapes::ShapeRef.new(shape: NetworkInterfacePermissionState, location_name: "permissionState"))
    NetworkInterfacePermission.struct_class = Types::NetworkInterfacePermission

    NetworkInterfacePermissionIdList.member = Shapes::ShapeRef.new(shape: NetworkInterfacePermissionId)

    NetworkInterfacePermissionList.member = Shapes::ShapeRef.new(shape: NetworkInterfacePermission, location_name: "item")

    NetworkInterfacePermissionState.add_member(:state, Shapes::ShapeRef.new(shape: NetworkInterfacePermissionStateCode, location_name: "state"))
    NetworkInterfacePermissionState.add_member(:status_message, Shapes::ShapeRef.new(shape: String, location_name: "statusMessage"))
    NetworkInterfacePermissionState.struct_class = Types::NetworkInterfacePermissionState

    NetworkInterfacePrivateIpAddress.add_member(:association, Shapes::ShapeRef.new(shape: NetworkInterfaceAssociation, location_name: "association"))
    NetworkInterfacePrivateIpAddress.add_member(:primary, Shapes::ShapeRef.new(shape: Boolean, location_name: "primary"))
    NetworkInterfacePrivateIpAddress.add_member(:private_dns_name, Shapes::ShapeRef.new(shape: String, location_name: "privateDnsName"))
    NetworkInterfacePrivateIpAddress.add_member(:private_ip_address, Shapes::ShapeRef.new(shape: String, location_name: "privateIpAddress"))
    NetworkInterfacePrivateIpAddress.struct_class = Types::NetworkInterfacePrivateIpAddress

    NetworkInterfacePrivateIpAddressList.member = Shapes::ShapeRef.new(shape: NetworkInterfacePrivateIpAddress, location_name: "item")

    NetworkNodesList.member = Shapes::ShapeRef.new(shape: String, location_name: "item")

    NeuronDeviceCoreInfo.add_member(:count, Shapes::ShapeRef.new(shape: NeuronDeviceCoreCount, location_name: "count"))
    NeuronDeviceCoreInfo.add_member(:version, Shapes::ShapeRef.new(shape: NeuronDeviceCoreVersion, location_name: "version"))
    NeuronDeviceCoreInfo.struct_class = Types::NeuronDeviceCoreInfo

    NeuronDeviceInfo.add_member(:count, Shapes::ShapeRef.new(shape: NeuronDeviceCount, location_name: "count"))
    NeuronDeviceInfo.add_member(:name, Shapes::ShapeRef.new(shape: NeuronDeviceName, location_name: "name"))
    NeuronDeviceInfo.add_member(:core_info, Shapes::ShapeRef.new(shape: NeuronDeviceCoreInfo, location_name: "coreInfo"))
    NeuronDeviceInfo.add_member(:memory_info, Shapes::ShapeRef.new(shape: NeuronDeviceMemoryInfo, location_name: "memoryInfo"))
    NeuronDeviceInfo.struct_class = Types::NeuronDeviceInfo

    NeuronDeviceInfoList.member = Shapes::ShapeRef.new(shape: NeuronDeviceInfo, location_name: "item")

    NeuronDeviceMemoryInfo.add_member(:size_in_mi_b, Shapes::ShapeRef.new(shape: NeuronDeviceMemorySize, location_name: "sizeInMiB"))
    NeuronDeviceMemoryInfo.struct_class = Types::NeuronDeviceMemoryInfo

    NeuronInfo.add_member(:neuron_devices, Shapes::ShapeRef.new(shape: NeuronDeviceInfoList, location_name: "neuronDevices"))
    NeuronInfo.add_member(:total_neuron_device_memory_in_mi_b, Shapes::ShapeRef.new(shape: TotalNeuronMemory, location_name: "totalNeuronDeviceMemoryInMiB"))
    NeuronInfo.struct_class = Types::NeuronInfo

    NewDhcpConfiguration.add_member(:key, Shapes::ShapeRef.new(shape: String, location_name: "Key"))
    NewDhcpConfiguration.add_member(:values, Shapes::ShapeRef.new(shape: ValueStringList, location_name: "Value"))
    NewDhcpConfiguration.struct_class = Types::NewDhcpConfiguration

    NewDhcpConfigurationList.member = Shapes::ShapeRef.new(shape: NewDhcpConfiguration, location_name: "item")

    NitroTpmInfo.add_member(:supported_versions, Shapes::ShapeRef.new(shape: NitroTpmSupportedVersionsList, location_name: "supportedVersions"))
    NitroTpmInfo.struct_class = Types::NitroTpmInfo

    NitroTpmSupportedVersionsList.member = Shapes::ShapeRef.new(shape: NitroTpmSupportedVersionType, location_name: "item")

    OccurrenceDayRequestSet.member = Shapes::ShapeRef.new(shape: Integer, location_name: "OccurenceDay")

    OccurrenceDaySet.member = Shapes::ShapeRef.new(shape: Integer, location_name: "item")

    OidcOptions.add_member(:issuer, Shapes::ShapeRef.new(shape: String, location_name: "issuer"))
    OidcOptions.add_member(:authorization_endpoint, Shapes::ShapeRef.new(shape: String, location_name: "authorizationEndpoint"))
    OidcOptions.add_member(:token_endpoint, Shapes::ShapeRef.new(shape: String, location_name: "tokenEndpoint"))
    OidcOptions.add_member(:user_info_endpoint, Shapes::ShapeRef.new(shape: String, location_name: "userInfoEndpoint"))
    OidcOptions.add_member(:client_id, Shapes::ShapeRef.new(shape: String, location_name: "clientId"))
    OidcOptions.add_member(:client_secret, Shapes::ShapeRef.new(shape: ClientSecretType, location_name: "clientSecret"))
    OidcOptions.add_member(:scope, Shapes::ShapeRef.new(shape: String, location_name: "scope"))
    OidcOptions.struct_class = Types::OidcOptions

    OnDemandOptions.add_member(:allocation_strategy, Shapes::ShapeRef.new(shape: FleetOnDemandAllocationStrategy, location_name: "allocationStrategy"))
    OnDemandOptions.add_member(:capacity_reservation_options, Shapes::ShapeRef.new(shape: CapacityReservationOptions, location_name: "capacityReservationOptions"))
    OnDemandOptions.add_member(:single_instance_type, Shapes::ShapeRef.new(shape: Boolean, location_name: "singleInstanceType"))
    OnDemandOptions.add_member(:single_availability_zone, Shapes::ShapeRef.new(shape: Boolean, location_name: "singleAvailabilityZone"))
    OnDemandOptions.add_member(:min_target_capacity, Shapes::ShapeRef.new(shape: Integer, location_name: "minTargetCapacity"))
    OnDemandOptions.add_member(:max_total_price, Shapes::ShapeRef.new(shape: String, location_name: "maxTotalPrice"))
    OnDemandOptions.struct_class = Types::OnDemandOptions

    OnDemandOptionsRequest.add_member(:allocation_strategy, Shapes::ShapeRef.new(shape: FleetOnDemandAllocationStrategy, location_name: "AllocationStrategy"))
    OnDemandOptionsRequest.add_member(:capacity_reservation_options, Shapes::ShapeRef.new(shape: CapacityReservationOptionsRequest, location_name: "CapacityReservationOptions"))
    OnDemandOptionsRequest.add_member(:single_instance_type, Shapes::ShapeRef.new(shape: Boolean, location_name: "SingleInstanceType"))
    OnDemandOptionsRequest.add_member(:single_availability_zone, Shapes::ShapeRef.new(shape: Boolean, location_name: "SingleAvailabilityZone"))
    OnDemandOptionsRequest.add_member(:min_target_capacity, Shapes::ShapeRef.new(shape: Integer, location_name: "MinTargetCapacity"))
    OnDemandOptionsRequest.add_member(:max_total_price, Shapes::ShapeRef.new(shape: String, location_name: "MaxTotalPrice"))
    OnDemandOptionsRequest.struct_class = Types::OnDemandOptionsRequest

    OperatorRequest.add_member(:principal, Shapes::ShapeRef.new(shape: String, location_name: "Principal"))
    OperatorRequest.struct_class = Types::OperatorRequest

    OperatorResponse.add_member(:managed, Shapes::ShapeRef.new(shape: Boolean, location_name: "managed"))
    OperatorResponse.add_member(:principal, Shapes::ShapeRef.new(shape: String, location_name: "principal"))
    OperatorResponse.struct_class = Types::OperatorResponse

    OrganizationArnStringList.member = Shapes::ShapeRef.new(shape: String, location_name: "OrganizationArn")

    OrganizationalUnitArnStringList.member = Shapes::ShapeRef.new(shape: String, location_name: "OrganizationalUnitArn")

    OwnerStringList.member = Shapes::ShapeRef.new(shape: String, location_name: "Owner")

    PacketHeaderStatement.add_member(:source_addresses, Shapes::ShapeRef.new(shape: ValueStringList, location_name: "sourceAddressSet"))
    PacketHeaderStatement.add_member(:destination_addresses, Shapes::ShapeRef.new(shape: ValueStringList, location_name: "destinationAddressSet"))
    PacketHeaderStatement.add_member(:source_ports, Shapes::ShapeRef.new(shape: ValueStringList, location_name: "sourcePortSet"))
    PacketHeaderStatement.add_member(:destination_ports, Shapes::ShapeRef.new(shape: ValueStringList, location_name: "destinationPortSet"))
    PacketHeaderStatement.add_member(:source_prefix_lists, Shapes::ShapeRef.new(shape: ValueStringList, location_name: "sourcePrefixListSet"))
    PacketHeaderStatement.add_member(:destination_prefix_lists, Shapes::ShapeRef.new(shape: ValueStringList, location_name: "destinationPrefixListSet"))
    PacketHeaderStatement.add_member(:protocols, Shapes::ShapeRef.new(shape: ProtocolList, location_name: "protocolSet"))
    PacketHeaderStatement.struct_class = Types::PacketHeaderStatement

    PacketHeaderStatementRequest.add_member(:source_addresses, Shapes::ShapeRef.new(shape: ValueStringList, location_name: "SourceAddress"))
    PacketHeaderStatementRequest.add_member(:destination_addresses, Shapes::ShapeRef.new(shape: ValueStringList, location_name: "DestinationAddress"))
    PacketHeaderStatementRequest.add_member(:source_ports, Shapes::ShapeRef.new(shape: ValueStringList, location_name: "SourcePort"))
    PacketHeaderStatementRequest.add_member(:destination_ports, Shapes::ShapeRef.new(shape: ValueStringList, location_name: "DestinationPort"))
    PacketHeaderStatementRequest.add_member(:source_prefix_lists, Shapes::ShapeRef.new(shape: ValueStringList, location_name: "SourcePrefixList"))
    PacketHeaderStatementRequest.add_member(:destination_prefix_lists, Shapes::ShapeRef.new(shape: ValueStringList, location_name: "DestinationPrefixList"))
    PacketHeaderStatementRequest.add_member(:protocols, Shapes::ShapeRef.new(shape: ProtocolList, location_name: "Protocol"))
    PacketHeaderStatementRequest.struct_class = Types::PacketHeaderStatementRequest

    PathComponent.add_member(:sequence_number, Shapes::ShapeRef.new(shape: Integer, location_name: "sequenceNumber"))
    PathComponent.add_member(:acl_rule, Shapes::ShapeRef.new(shape: AnalysisAclRule, location_name: "aclRule"))
    PathComponent.add_member(:attached_to, Shapes::ShapeRef.new(shape: AnalysisComponent, location_name: "attachedTo"))
    PathComponent.add_member(:component, Shapes::ShapeRef.new(shape: AnalysisComponent, location_name: "component"))
    PathComponent.add_member(:destination_vpc, Shapes::ShapeRef.new(shape: AnalysisComponent, location_name: "destinationVpc"))
    PathComponent.add_member(:outbound_header, Shapes::ShapeRef.new(shape: AnalysisPacketHeader, location_name: "outboundHeader"))
    PathComponent.add_member(:inbound_header, Shapes::ShapeRef.new(shape: AnalysisPacketHeader, location_name: "inboundHeader"))
    PathComponent.add_member(:route_table_route, Shapes::ShapeRef.new(shape: AnalysisRouteTableRoute, location_name: "routeTableRoute"))
    PathComponent.add_member(:security_group_rule, Shapes::ShapeRef.new(shape: AnalysisSecurityGroupRule, location_name: "securityGroupRule"))
    PathComponent.add_member(:source_vpc, Shapes::ShapeRef.new(shape: AnalysisComponent, location_name: "sourceVpc"))
    PathComponent.add_member(:subnet, Shapes::ShapeRef.new(shape: AnalysisComponent, location_name: "subnet"))
    PathComponent.add_member(:vpc, Shapes::ShapeRef.new(shape: AnalysisComponent, location_name: "vpc"))
    PathComponent.add_member(:additional_details, Shapes::ShapeRef.new(shape: AdditionalDetailList, location_name: "additionalDetailSet"))
    PathComponent.add_member(:transit_gateway, Shapes::ShapeRef.new(shape: AnalysisComponent, location_name: "transitGateway"))
    PathComponent.add_member(:transit_gateway_route_table_route, Shapes::ShapeRef.new(shape: TransitGatewayRouteTableRoute, location_name: "transitGatewayRouteTableRoute"))
    PathComponent.add_member(:explanations, Shapes::ShapeRef.new(shape: ExplanationList, location_name: "explanationSet"))
    PathComponent.add_member(:elastic_load_balancer_listener, Shapes::ShapeRef.new(shape: AnalysisComponent, location_name: "elasticLoadBalancerListener"))
    PathComponent.add_member(:firewall_stateless_rule, Shapes::ShapeRef.new(shape: FirewallStatelessRule, location_name: "firewallStatelessRule"))
    PathComponent.add_member(:firewall_stateful_rule, Shapes::ShapeRef.new(shape: FirewallStatefulRule, location_name: "firewallStatefulRule"))
    PathComponent.add_member(:service_name, Shapes::ShapeRef.new(shape: String, location_name: "serviceName"))
    PathComponent.struct_class = Types::PathComponent

    PathComponentList.member = Shapes::ShapeRef.new(shape: PathComponent, location_name: "item")

    PathFilter.add_member(:source_address, Shapes::ShapeRef.new(shape: IpAddress, location_name: "sourceAddress"))
    PathFilter.add_member(:source_port_range, Shapes::ShapeRef.new(shape: FilterPortRange, location_name: "sourcePortRange"))
    PathFilter.add_member(:destination_address, Shapes::ShapeRef.new(shape: IpAddress, location_name: "destinationAddress"))
    PathFilter.add_member(:destination_port_range, Shapes::ShapeRef.new(shape: FilterPortRange, location_name: "destinationPortRange"))
    PathFilter.struct_class = Types::PathFilter

    PathRequestFilter.add_member(:source_address, Shapes::ShapeRef.new(shape: IpAddress, location_name: "SourceAddress"))
    PathRequestFilter.add_member(:source_port_range, Shapes::ShapeRef.new(shape: RequestFilterPortRange, location_name: "SourcePortRange"))
    PathRequestFilter.add_member(:destination_address, Shapes::ShapeRef.new(shape: IpAddress, location_name: "DestinationAddress"))
    PathRequestFilter.add_member(:destination_port_range, Shapes::ShapeRef.new(shape: RequestFilterPortRange, location_name: "DestinationPortRange"))
    PathRequestFilter.struct_class = Types::PathRequestFilter

    PathStatement.add_member(:packet_header_statement, Shapes::ShapeRef.new(shape: PacketHeaderStatement, location_name: "packetHeaderStatement"))
    PathStatement.add_member(:resource_statement, Shapes::ShapeRef.new(shape: ResourceStatement, location_name: "resourceStatement"))
    PathStatement.struct_class = Types::PathStatement

    PathStatementRequest.add_member(:packet_header_statement, Shapes::ShapeRef.new(shape: PacketHeaderStatementRequest, location_name: "PacketHeaderStatement"))
    PathStatementRequest.add_member(:resource_statement, Shapes::ShapeRef.new(shape: ResourceStatementRequest, location_name: "ResourceStatement"))
    PathStatementRequest.struct_class = Types::PathStatementRequest

    PciId.add_member(:device_id, Shapes::ShapeRef.new(shape: String, location_name: "DeviceId"))
    PciId.add_member(:vendor_id, Shapes::ShapeRef.new(shape: String, location_name: "VendorId"))
    PciId.add_member(:subsystem_id, Shapes::ShapeRef.new(shape: String, location_name: "SubsystemId"))
    PciId.add_member(:subsystem_vendor_id, Shapes::ShapeRef.new(shape: String, location_name: "SubsystemVendorId"))
    PciId.struct_class = Types::PciId

    PeeringAttachmentStatus.add_member(:code, Shapes::ShapeRef.new(shape: String, location_name: "code"))
    PeeringAttachmentStatus.add_member(:message, Shapes::ShapeRef.new(shape: String, location_name: "message"))
    PeeringAttachmentStatus.struct_class = Types::PeeringAttachmentStatus

    PeeringConnectionOptions.add_member(:allow_dns_resolution_from_remote_vpc, Shapes::ShapeRef.new(shape: Boolean, location_name: "allowDnsResolutionFromRemoteVpc"))
    PeeringConnectionOptions.add_member(:allow_egress_from_local_classic_link_to_remote_vpc, Shapes::ShapeRef.new(shape: Boolean, location_name: "allowEgressFromLocalClassicLinkToRemoteVpc"))
    PeeringConnectionOptions.add_member(:allow_egress_from_local_vpc_to_remote_classic_link, Shapes::ShapeRef.new(shape: Boolean, location_name: "allowEgressFromLocalVpcToRemoteClassicLink"))
    PeeringConnectionOptions.struct_class = Types::PeeringConnectionOptions

    PeeringConnectionOptionsRequest.add_member(:allow_dns_resolution_from_remote_vpc, Shapes::ShapeRef.new(shape: Boolean, location_name: "AllowDnsResolutionFromRemoteVpc"))
    PeeringConnectionOptionsRequest.add_member(:allow_egress_from_local_classic_link_to_remote_vpc, Shapes::ShapeRef.new(shape: Boolean, location_name: "AllowEgressFromLocalClassicLinkToRemoteVpc"))
    PeeringConnectionOptionsRequest.add_member(:allow_egress_from_local_vpc_to_remote_classic_link, Shapes::ShapeRef.new(shape: Boolean, location_name: "AllowEgressFromLocalVpcToRemoteClassicLink"))
    PeeringConnectionOptionsRequest.struct_class = Types::PeeringConnectionOptionsRequest

    PeeringTgwInfo.add_member(:transit_gateway_id, Shapes::ShapeRef.new(shape: String, location_name: "transitGatewayId"))
    PeeringTgwInfo.add_member(:core_network_id, Shapes::ShapeRef.new(shape: String, location_name: "coreNetworkId"))
    PeeringTgwInfo.add_member(:owner_id, Shapes::ShapeRef.new(shape: String, location_name: "ownerId"))
    PeeringTgwInfo.add_member(:region, Shapes::ShapeRef.new(shape: String, location_name: "region"))
    PeeringTgwInfo.struct_class = Types::PeeringTgwInfo

    PerformanceFactorReference.add_member(:instance_family, Shapes::ShapeRef.new(shape: String, location_name: "instanceFamily"))
    PerformanceFactorReference.struct_class = Types::PerformanceFactorReference

    PerformanceFactorReferenceRequest.add_member(:instance_family, Shapes::ShapeRef.new(shape: String, location_name: "InstanceFamily"))
    PerformanceFactorReferenceRequest.struct_class = Types::PerformanceFactorReferenceRequest

    PerformanceFactorReferenceSet.member = Shapes::ShapeRef.new(shape: PerformanceFactorReference, location_name: "item")

    PerformanceFactorReferenceSetRequest.member = Shapes::ShapeRef.new(shape: PerformanceFactorReferenceRequest, location_name: "item")

    Phase1DHGroupNumbersList.member = Shapes::ShapeRef.new(shape: Phase1DHGroupNumbersListValue, location_name: "item")

    Phase1DHGroupNumbersListValue.add_member(:value, Shapes::ShapeRef.new(shape: Integer, location_name: "value"))
    Phase1DHGroupNumbersListValue.struct_class = Types::Phase1DHGroupNumbersListValue

    Phase1DHGroupNumbersRequestList.member = Shapes::ShapeRef.new(shape: Phase1DHGroupNumbersRequestListValue, location_name: "item")

    Phase1DHGroupNumbersRequestListValue.add_member(:value, Shapes::ShapeRef.new(shape: Integer, location_name: "Value"))
    Phase1DHGroupNumbersRequestListValue.struct_class = Types::Phase1DHGroupNumbersRequestListValue

    Phase1EncryptionAlgorithmsList.member = Shapes::ShapeRef.new(shape: Phase1EncryptionAlgorithmsListValue, location_name: "item")

    Phase1EncryptionAlgorithmsListValue.add_member(:value, Shapes::ShapeRef.new(shape: String, location_name: "value"))
    Phase1EncryptionAlgorithmsListValue.struct_class = Types::Phase1EncryptionAlgorithmsListValue

    Phase1EncryptionAlgorithmsRequestList.member = Shapes::ShapeRef.new(shape: Phase1EncryptionAlgorithmsRequestListValue, location_name: "item")

    Phase1EncryptionAlgorithmsRequestListValue.add_member(:value, Shapes::ShapeRef.new(shape: String, location_name: "Value"))
    Phase1EncryptionAlgorithmsRequestListValue.struct_class = Types::Phase1EncryptionAlgorithmsRequestListValue

    Phase1IntegrityAlgorithmsList.member = Shapes::ShapeRef.new(shape: Phase1IntegrityAlgorithmsListValue, location_name: "item")

    Phase1IntegrityAlgorithmsListValue.add_member(:value, Shapes::ShapeRef.new(shape: String, location_name: "value"))
    Phase1IntegrityAlgorithmsListValue.struct_class = Types::Phase1IntegrityAlgorithmsListValue

    Phase1IntegrityAlgorithmsRequestList.member = Shapes::ShapeRef.new(shape: Phase1IntegrityAlgorithmsRequestListValue, location_name: "item")

    Phase1IntegrityAlgorithmsRequestListValue.add_member(:value, Shapes::ShapeRef.new(shape: String, location_name: "Value"))
    Phase1IntegrityAlgorithmsRequestListValue.struct_class = Types::Phase1IntegrityAlgorithmsRequestListValue

    Phase2DHGroupNumbersList.member = Shapes::ShapeRef.new(shape: Phase2DHGroupNumbersListValue, location_name: "item")

    Phase2DHGroupNumbersListValue.add_member(:value, Shapes::ShapeRef.new(shape: Integer, location_name: "value"))
    Phase2DHGroupNumbersListValue.struct_class = Types::Phase2DHGroupNumbersListValue

    Phase2DHGroupNumbersRequestList.member = Shapes::ShapeRef.new(shape: Phase2DHGroupNumbersRequestListValue, location_name: "item")

    Phase2DHGroupNumbersRequestListValue.add_member(:value, Shapes::ShapeRef.new(shape: Integer, location_name: "Value"))
    Phase2DHGroupNumbersRequestListValue.struct_class = Types::Phase2DHGroupNumbersRequestListValue

    Phase2EncryptionAlgorithmsList.member = Shapes::ShapeRef.new(shape: Phase2EncryptionAlgorithmsListValue, location_name: "item")

    Phase2EncryptionAlgorithmsListValue.add_member(:value, Shapes::ShapeRef.new(shape: String, location_name: "value"))
    Phase2EncryptionAlgorithmsListValue.struct_class = Types::Phase2EncryptionAlgorithmsListValue

    Phase2EncryptionAlgorithmsRequestList.member = Shapes::ShapeRef.new(shape: Phase2EncryptionAlgorithmsRequestListValue, location_name: "item")

    Phase2EncryptionAlgorithmsRequestListValue.add_member(:value, Shapes::ShapeRef.new(shape: String, location_name: "Value"))
    Phase2EncryptionAlgorithmsRequestListValue.struct_class = Types::Phase2EncryptionAlgorithmsRequestListValue

    Phase2IntegrityAlgorithmsList.member = Shapes::ShapeRef.new(shape: Phase2IntegrityAlgorithmsListValue, location_name: "item")

    Phase2IntegrityAlgorithmsListValue.add_member(:value, Shapes::ShapeRef.new(shape: String, location_name: "value"))
    Phase2IntegrityAlgorithmsListValue.struct_class = Types::Phase2IntegrityAlgorithmsListValue

    Phase2IntegrityAlgorithmsRequestList.member = Shapes::ShapeRef.new(shape: Phase2IntegrityAlgorithmsRequestListValue, location_name: "item")

    Phase2IntegrityAlgorithmsRequestListValue.add_member(:value, Shapes::ShapeRef.new(shape: String, location_name: "Value"))
    Phase2IntegrityAlgorithmsRequestListValue.struct_class = Types::Phase2IntegrityAlgorithmsRequestListValue

    Placement.add_member(:affinity, Shapes::ShapeRef.new(shape: String, location_name: "affinity"))
    Placement.add_member(:group_name, Shapes::ShapeRef.new(shape: PlacementGroupName, location_name: "groupName"))
    Placement.add_member(:partition_number, Shapes::ShapeRef.new(shape: Integer, location_name: "partitionNumber"))
    Placement.add_member(:host_id, Shapes::ShapeRef.new(shape: String, location_name: "hostId"))
    Placement.add_member(:tenancy, Shapes::ShapeRef.new(shape: Tenancy, location_name: "tenancy"))
    Placement.add_member(:spread_domain, Shapes::ShapeRef.new(shape: String, location_name: "spreadDomain"))
    Placement.add_member(:host_resource_group_arn, Shapes::ShapeRef.new(shape: String, location_name: "hostResourceGroupArn"))
    Placement.add_member(:group_id, Shapes::ShapeRef.new(shape: PlacementGroupId, location_name: "groupId"))
    Placement.add_member(:availability_zone, Shapes::ShapeRef.new(shape: String, location_name: "availabilityZone"))
    Placement.struct_class = Types::Placement

    PlacementGroup.add_member(:group_name, Shapes::ShapeRef.new(shape: String, location_name: "groupName"))
    PlacementGroup.add_member(:state, Shapes::ShapeRef.new(shape: PlacementGroupState, location_name: "state"))
    PlacementGroup.add_member(:strategy, Shapes::ShapeRef.new(shape: PlacementStrategy, location_name: "strategy"))
    PlacementGroup.add_member(:partition_count, Shapes::ShapeRef.new(shape: Integer, location_name: "partitionCount"))
    PlacementGroup.add_member(:group_id, Shapes::ShapeRef.new(shape: String, location_name: "groupId"))
    PlacementGroup.add_member(:tags, Shapes::ShapeRef.new(shape: TagList, location_name: "tagSet"))
    PlacementGroup.add_member(:group_arn, Shapes::ShapeRef.new(shape: String, location_name: "groupArn"))
    PlacementGroup.add_member(:spread_level, Shapes::ShapeRef.new(shape: SpreadLevel, location_name: "spreadLevel"))
    PlacementGroup.struct_class = Types::PlacementGroup

    PlacementGroupIdStringList.member = Shapes::ShapeRef.new(shape: PlacementGroupId, location_name: "GroupId")

    PlacementGroupInfo.add_member(:supported_strategies, Shapes::ShapeRef.new(shape: PlacementGroupStrategyList, location_name: "supportedStrategies"))
    PlacementGroupInfo.struct_class = Types::PlacementGroupInfo

    PlacementGroupList.member = Shapes::ShapeRef.new(shape: PlacementGroup, location_name: "item")

    PlacementGroupStrategyList.member = Shapes::ShapeRef.new(shape: PlacementGroupStrategy, location_name: "item")

    PlacementGroupStringList.member = Shapes::ShapeRef.new(shape: PlacementGroupName)

    PlacementResponse.add_member(:group_name, Shapes::ShapeRef.new(shape: PlacementGroupName, location_name: "groupName"))
    PlacementResponse.struct_class = Types::PlacementResponse

    PoolCidrBlock.add_member(:cidr, Shapes::ShapeRef.new(shape: String, location_name: "poolCidrBlock"))
    PoolCidrBlock.struct_class = Types::PoolCidrBlock

    PoolCidrBlocksSet.member = Shapes::ShapeRef.new(shape: PoolCidrBlock, location_name: "item")

    PortRange.add_member(:from, Shapes::ShapeRef.new(shape: Integer, location_name: "from"))
    PortRange.add_member(:to, Shapes::ShapeRef.new(shape: Integer, location_name: "to"))
    PortRange.struct_class = Types::PortRange

    PortRangeList.member = Shapes::ShapeRef.new(shape: PortRange, location_name: "item")

    PrefixList.add_member(:cidrs, Shapes::ShapeRef.new(shape: ValueStringList, location_name: "cidrSet"))
    PrefixList.add_member(:prefix_list_id, Shapes::ShapeRef.new(shape: String, location_name: "prefixListId"))
    PrefixList.add_member(:prefix_list_name, Shapes::ShapeRef.new(shape: String, location_name: "prefixListName"))
    PrefixList.struct_class = Types::PrefixList

    PrefixListAssociation.add_member(:resource_id, Shapes::ShapeRef.new(shape: String, location_name: "resourceId"))
    PrefixListAssociation.add_member(:resource_owner, Shapes::ShapeRef.new(shape: String, location_name: "resourceOwner"))
    PrefixListAssociation.struct_class = Types::PrefixListAssociation

    PrefixListAssociationSet.member = Shapes::ShapeRef.new(shape: PrefixListAssociation, location_name: "item")

    PrefixListEntry.add_member(:cidr, Shapes::ShapeRef.new(shape: String, location_name: "cidr"))
    PrefixListEntry.add_member(:description, Shapes::ShapeRef.new(shape: String, location_name: "description"))
    PrefixListEntry.struct_class = Types::PrefixListEntry

    PrefixListEntrySet.member = Shapes::ShapeRef.new(shape: PrefixListEntry, location_name: "item")

    PrefixListId.add_member(:description, Shapes::ShapeRef.new(shape: String, location_name: "description"))
    PrefixListId.add_member(:prefix_list_id, Shapes::ShapeRef.new(shape: String, location_name: "prefixListId"))
    PrefixListId.struct_class = Types::PrefixListId

    PrefixListIdList.member = Shapes::ShapeRef.new(shape: PrefixListId, location_name: "item")

    PrefixListIdSet.member = Shapes::ShapeRef.new(shape: String, location_name: "item")

    PrefixListResourceIdStringList.member = Shapes::ShapeRef.new(shape: PrefixListResourceId, location_name: "item")

    PrefixListSet.member = Shapes::ShapeRef.new(shape: PrefixList, location_name: "item")

    PriceSchedule.add_member(:active, Shapes::ShapeRef.new(shape: Boolean, location_name: "active"))
    PriceSchedule.add_member(:currency_code, Shapes::ShapeRef.new(shape: CurrencyCodeValues, location_name: "currencyCode"))
    PriceSchedule.add_member(:price, Shapes::ShapeRef.new(shape: Double, location_name: "price"))
    PriceSchedule.add_member(:term, Shapes::ShapeRef.new(shape: Long, location_name: "term"))
    PriceSchedule.struct_class = Types::PriceSchedule

    PriceScheduleList.member = Shapes::ShapeRef.new(shape: PriceSchedule, location_name: "item")

    PriceScheduleSpecification.add_member(:term, Shapes::ShapeRef.new(shape: Long, location_name: "term"))
    PriceScheduleSpecification.add_member(:price, Shapes::ShapeRef.new(shape: Double, location_name: "price"))
    PriceScheduleSpecification.add_member(:currency_code, Shapes::ShapeRef.new(shape: CurrencyCodeValues, location_name: "currencyCode"))
    PriceScheduleSpecification.struct_class = Types::PriceScheduleSpecification

    PriceScheduleSpecificationList.member = Shapes::ShapeRef.new(shape: PriceScheduleSpecification, location_name: "item")

    PricingDetail.add_member(:count, Shapes::ShapeRef.new(shape: Integer, location_name: "count"))
    PricingDetail.add_member(:price, Shapes::ShapeRef.new(shape: Double, location_name: "price"))
    PricingDetail.struct_class = Types::PricingDetail

    PricingDetailsList.member = Shapes::ShapeRef.new(shape: PricingDetail, location_name: "item")

    PrincipalIdFormat.add_member(:arn, Shapes::ShapeRef.new(shape: String, location_name: "arn"))
    PrincipalIdFormat.add_member(:statuses, Shapes::ShapeRef.new(shape: IdFormatList, location_name: "statusSet"))
    PrincipalIdFormat.struct_class = Types::PrincipalIdFormat

    PrincipalIdFormatList.member = Shapes::ShapeRef.new(shape: PrincipalIdFormat, location_name: "item")

    PrivateDnsDetails.add_member(:private_dns_name, Shapes::ShapeRef.new(shape: String, location_name: "privateDnsName"))
    PrivateDnsDetails.struct_class = Types::PrivateDnsDetails

    PrivateDnsDetailsSet.member = Shapes::ShapeRef.new(shape: PrivateDnsDetails, location_name: "item")

    PrivateDnsNameConfiguration.add_member(:state, Shapes::ShapeRef.new(shape: DnsNameState, location_name: "state"))
    PrivateDnsNameConfiguration.add_member(:type, Shapes::ShapeRef.new(shape: String, location_name: "type"))
    PrivateDnsNameConfiguration.add_member(:value, Shapes::ShapeRef.new(shape: String, location_name: "value"))
    PrivateDnsNameConfiguration.add_member(:name, Shapes::ShapeRef.new(shape: String, location_name: "name"))
    PrivateDnsNameConfiguration.struct_class = Types::PrivateDnsNameConfiguration

    PrivateDnsNameOptionsOnLaunch.add_member(:hostname_type, Shapes::ShapeRef.new(shape: HostnameType, location_name: "hostnameType"))
    PrivateDnsNameOptionsOnLaunch.add_member(:enable_resource_name_dns_a_record, Shapes::ShapeRef.new(shape: Boolean, location_name: "enableResourceNameDnsARecord"))
    PrivateDnsNameOptionsOnLaunch.add_member(:enable_resource_name_dns_aaaa_record, Shapes::ShapeRef.new(shape: Boolean, location_name: "enableResourceNameDnsAAAARecord"))
    PrivateDnsNameOptionsOnLaunch.struct_class = Types::PrivateDnsNameOptionsOnLaunch

    PrivateDnsNameOptionsRequest.add_member(:hostname_type, Shapes::ShapeRef.new(shape: HostnameType, location_name: "HostnameType"))
    PrivateDnsNameOptionsRequest.add_member(:enable_resource_name_dns_a_record, Shapes::ShapeRef.new(shape: Boolean, location_name: "EnableResourceNameDnsARecord"))
    PrivateDnsNameOptionsRequest.add_member(:enable_resource_name_dns_aaaa_record, Shapes::ShapeRef.new(shape: Boolean, location_name: "EnableResourceNameDnsAAAARecord"))
    PrivateDnsNameOptionsRequest.struct_class = Types::PrivateDnsNameOptionsRequest

    PrivateDnsNameOptionsResponse.add_member(:hostname_type, Shapes::ShapeRef.new(shape: HostnameType, location_name: "hostnameType"))
    PrivateDnsNameOptionsResponse.add_member(:enable_resource_name_dns_a_record, Shapes::ShapeRef.new(shape: Boolean, location_name: "enableResourceNameDnsARecord"))
    PrivateDnsNameOptionsResponse.add_member(:enable_resource_name_dns_aaaa_record, Shapes::ShapeRef.new(shape: Boolean, location_name: "enableResourceNameDnsAAAARecord"))
    PrivateDnsNameOptionsResponse.struct_class = Types::PrivateDnsNameOptionsResponse

    PrivateIpAddressConfigSet.member = Shapes::ShapeRef.new(shape: ScheduledInstancesPrivateIpAddressConfig, location_name: "PrivateIpAddressConfigSet")

    PrivateIpAddressSpecification.add_member(:primary, Shapes::ShapeRef.new(shape: Boolean, location_name: "primary"))
    PrivateIpAddressSpecification.add_member(:private_ip_address, Shapes::ShapeRef.new(shape: String, location_name: "privateIpAddress"))
    PrivateIpAddressSpecification.struct_class = Types::PrivateIpAddressSpecification

    PrivateIpAddressSpecificationList.member = Shapes::ShapeRef.new(shape: PrivateIpAddressSpecification, location_name: "item")

    PrivateIpAddressStringList.member = Shapes::ShapeRef.new(shape: String, location_name: "PrivateIpAddress")

    ProcessorInfo.add_member(:supported_architectures, Shapes::ShapeRef.new(shape: ArchitectureTypeList, location_name: "supportedArchitectures"))
    ProcessorInfo.add_member(:sustained_clock_speed_in_ghz, Shapes::ShapeRef.new(shape: ProcessorSustainedClockSpeed, location_name: "sustainedClockSpeedInGhz"))
    ProcessorInfo.add_member(:supported_features, Shapes::ShapeRef.new(shape: SupportedAdditionalProcessorFeatureList, location_name: "supportedFeatures"))
    ProcessorInfo.add_member(:manufacturer, Shapes::ShapeRef.new(shape: CpuManufacturerName, location_name: "manufacturer"))
    ProcessorInfo.struct_class = Types::ProcessorInfo

    ProductCode.add_member(:product_code_id, Shapes::ShapeRef.new(shape: String, location_name: "productCode"))
    ProductCode.add_member(:product_code_type, Shapes::ShapeRef.new(shape: ProductCodeValues, location_name: "type"))
    ProductCode.struct_class = Types::ProductCode

    ProductCodeList.member = Shapes::ShapeRef.new(shape: ProductCode, location_name: "item")

    ProductCodeStringList.member = Shapes::ShapeRef.new(shape: String, location_name: "ProductCode")

    ProductDescriptionList.member = Shapes::ShapeRef.new(shape: String)

    PropagatingVgw.add_member(:gateway_id, Shapes::ShapeRef.new(shape: String, location_name: "gatewayId"))
    PropagatingVgw.struct_class = Types::PropagatingVgw

    PropagatingVgwList.member = Shapes::ShapeRef.new(shape: PropagatingVgw, location_name: "item")

    ProtocolIntList.member = Shapes::ShapeRef.new(shape: ProtocolInt, location_name: "item")

    ProtocolList.member = Shapes::ShapeRef.new(shape: Protocol, location_name: "item")

    ProvisionByoipCidrRequest.add_member(:cidr, Shapes::ShapeRef.new(shape: String, required: true, location_name: "Cidr"))
    ProvisionByoipCidrRequest.add_member(:cidr_authorization_context, Shapes::ShapeRef.new(shape: CidrAuthorizationContext, location_name: "CidrAuthorizationContext"))
    ProvisionByoipCidrRequest.add_member(:publicly_advertisable, Shapes::ShapeRef.new(shape: Boolean, location_name: "PubliclyAdvertisable"))
    ProvisionByoipCidrRequest.add_member(:description, Shapes::ShapeRef.new(shape: String, location_name: "Description"))
    ProvisionByoipCidrRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    ProvisionByoipCidrRequest.add_member(:pool_tag_specifications, Shapes::ShapeRef.new(shape: TagSpecificationList, location_name: "PoolTagSpecification"))
    ProvisionByoipCidrRequest.add_member(:multi_region, Shapes::ShapeRef.new(shape: Boolean, location_name: "MultiRegion"))
    ProvisionByoipCidrRequest.add_member(:network_border_group, Shapes::ShapeRef.new(shape: String, location_name: "NetworkBorderGroup"))
    ProvisionByoipCidrRequest.struct_class = Types::ProvisionByoipCidrRequest

    ProvisionByoipCidrResult.add_member(:byoip_cidr, Shapes::ShapeRef.new(shape: ByoipCidr, location_name: "byoipCidr"))
    ProvisionByoipCidrResult.struct_class = Types::ProvisionByoipCidrResult

    ProvisionIpamByoasnRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    ProvisionIpamByoasnRequest.add_member(:ipam_id, Shapes::ShapeRef.new(shape: IpamId, required: true, location_name: "IpamId"))
    ProvisionIpamByoasnRequest.add_member(:asn, Shapes::ShapeRef.new(shape: String, required: true, location_name: "Asn"))
    ProvisionIpamByoasnRequest.add_member(:asn_authorization_context, Shapes::ShapeRef.new(shape: AsnAuthorizationContext, required: true, location_name: "AsnAuthorizationContext"))
    ProvisionIpamByoasnRequest.struct_class = Types::ProvisionIpamByoasnRequest

    ProvisionIpamByoasnResult.add_member(:byoasn, Shapes::ShapeRef.new(shape: Byoasn, location_name: "byoasn"))
    ProvisionIpamByoasnResult.struct_class = Types::ProvisionIpamByoasnResult

    ProvisionIpamPoolCidrRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    ProvisionIpamPoolCidrRequest.add_member(:ipam_pool_id, Shapes::ShapeRef.new(shape: IpamPoolId, required: true, location_name: "IpamPoolId"))
    ProvisionIpamPoolCidrRequest.add_member(:cidr, Shapes::ShapeRef.new(shape: String, location_name: "Cidr"))
    ProvisionIpamPoolCidrRequest.add_member(:cidr_authorization_context, Shapes::ShapeRef.new(shape: IpamCidrAuthorizationContext, location_name: "CidrAuthorizationContext"))
    ProvisionIpamPoolCidrRequest.add_member(:netmask_length, Shapes::ShapeRef.new(shape: Integer, location_name: "NetmaskLength"))
    ProvisionIpamPoolCidrRequest.add_member(:client_token, Shapes::ShapeRef.new(shape: String, location_name: "ClientToken", metadata: {"idempotencyToken"=>true}))
    ProvisionIpamPoolCidrRequest.add_member(:verification_method, Shapes::ShapeRef.new(shape: VerificationMethod, location_name: "VerificationMethod"))
    ProvisionIpamPoolCidrRequest.add_member(:ipam_external_resource_verification_token_id, Shapes::ShapeRef.new(shape: IpamExternalResourceVerificationTokenId, location_name: "IpamExternalResourceVerificationTokenId"))
    ProvisionIpamPoolCidrRequest.struct_class = Types::ProvisionIpamPoolCidrRequest

    ProvisionIpamPoolCidrResult.add_member(:ipam_pool_cidr, Shapes::ShapeRef.new(shape: IpamPoolCidr, location_name: "ipamPoolCidr"))
    ProvisionIpamPoolCidrResult.struct_class = Types::ProvisionIpamPoolCidrResult

    ProvisionPublicIpv4PoolCidrRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    ProvisionPublicIpv4PoolCidrRequest.add_member(:ipam_pool_id, Shapes::ShapeRef.new(shape: IpamPoolId, required: true, location_name: "IpamPoolId"))
    ProvisionPublicIpv4PoolCidrRequest.add_member(:pool_id, Shapes::ShapeRef.new(shape: Ipv4PoolEc2Id, required: true, location_name: "PoolId"))
    ProvisionPublicIpv4PoolCidrRequest.add_member(:netmask_length, Shapes::ShapeRef.new(shape: Integer, required: true, location_name: "NetmaskLength"))
    ProvisionPublicIpv4PoolCidrRequest.add_member(:network_border_group, Shapes::ShapeRef.new(shape: String, location_name: "NetworkBorderGroup"))
    ProvisionPublicIpv4PoolCidrRequest.struct_class = Types::ProvisionPublicIpv4PoolCidrRequest

    ProvisionPublicIpv4PoolCidrResult.add_member(:pool_id, Shapes::ShapeRef.new(shape: Ipv4PoolEc2Id, location_name: "poolId"))
    ProvisionPublicIpv4PoolCidrResult.add_member(:pool_address_range, Shapes::ShapeRef.new(shape: PublicIpv4PoolRange, location_name: "poolAddressRange"))
    ProvisionPublicIpv4PoolCidrResult.struct_class = Types::ProvisionPublicIpv4PoolCidrResult

    ProvisionedBandwidth.add_member(:provision_time, Shapes::ShapeRef.new(shape: DateTime, location_name: "provisionTime"))
    ProvisionedBandwidth.add_member(:provisioned, Shapes::ShapeRef.new(shape: String, location_name: "provisioned"))
    ProvisionedBandwidth.add_member(:request_time, Shapes::ShapeRef.new(shape: DateTime, location_name: "requestTime"))
    ProvisionedBandwidth.add_member(:requested, Shapes::ShapeRef.new(shape: String, location_name: "requested"))
    ProvisionedBandwidth.add_member(:status, Shapes::ShapeRef.new(shape: String, location_name: "status"))
    ProvisionedBandwidth.struct_class = Types::ProvisionedBandwidth

    PtrUpdateStatus.add_member(:value, Shapes::ShapeRef.new(shape: String, location_name: "value"))
    PtrUpdateStatus.add_member(:status, Shapes::ShapeRef.new(shape: String, location_name: "status"))
    PtrUpdateStatus.add_member(:reason, Shapes::ShapeRef.new(shape: String, location_name: "reason"))
    PtrUpdateStatus.struct_class = Types::PtrUpdateStatus

    PublicIpStringList.member = Shapes::ShapeRef.new(shape: String, location_name: "PublicIp")

    PublicIpv4Pool.add_member(:pool_id, Shapes::ShapeRef.new(shape: String, location_name: "poolId"))
    PublicIpv4Pool.add_member(:description, Shapes::ShapeRef.new(shape: String, location_name: "description"))
    PublicIpv4Pool.add_member(:pool_address_ranges, Shapes::ShapeRef.new(shape: PublicIpv4PoolRangeSet, location_name: "poolAddressRangeSet"))
    PublicIpv4Pool.add_member(:total_address_count, Shapes::ShapeRef.new(shape: Integer, location_name: "totalAddressCount"))
    PublicIpv4Pool.add_member(:total_available_address_count, Shapes::ShapeRef.new(shape: Integer, location_name: "totalAvailableAddressCount"))
    PublicIpv4Pool.add_member(:network_border_group, Shapes::ShapeRef.new(shape: String, location_name: "networkBorderGroup"))
    PublicIpv4Pool.add_member(:tags, Shapes::ShapeRef.new(shape: TagList, location_name: "tagSet"))
    PublicIpv4Pool.struct_class = Types::PublicIpv4Pool

    PublicIpv4PoolIdStringList.member = Shapes::ShapeRef.new(shape: Ipv4PoolEc2Id, location_name: "item")

    PublicIpv4PoolRange.add_member(:first_address, Shapes::ShapeRef.new(shape: String, location_name: "firstAddress"))
    PublicIpv4PoolRange.add_member(:last_address, Shapes::ShapeRef.new(shape: String, location_name: "lastAddress"))
    PublicIpv4PoolRange.add_member(:address_count, Shapes::ShapeRef.new(shape: Integer, location_name: "addressCount"))
    PublicIpv4PoolRange.add_member(:available_address_count, Shapes::ShapeRef.new(shape: Integer, location_name: "availableAddressCount"))
    PublicIpv4PoolRange.struct_class = Types::PublicIpv4PoolRange

    PublicIpv4PoolRangeSet.member = Shapes::ShapeRef.new(shape: PublicIpv4PoolRange, location_name: "item")

    PublicIpv4PoolSet.member = Shapes::ShapeRef.new(shape: PublicIpv4Pool, location_name: "item")

    Purchase.add_member(:currency_code, Shapes::ShapeRef.new(shape: CurrencyCodeValues, location_name: "currencyCode"))
    Purchase.add_member(:duration, Shapes::ShapeRef.new(shape: Integer, location_name: "duration"))
    Purchase.add_member(:host_id_set, Shapes::ShapeRef.new(shape: ResponseHostIdSet, location_name: "hostIdSet"))
    Purchase.add_member(:host_reservation_id, Shapes::ShapeRef.new(shape: HostReservationId, location_name: "hostReservationId"))
    Purchase.add_member(:hourly_price, Shapes::ShapeRef.new(shape: String, location_name: "hourlyPrice"))
    Purchase.add_member(:instance_family, Shapes::ShapeRef.new(shape: String, location_name: "instanceFamily"))
    Purchase.add_member(:payment_option, Shapes::ShapeRef.new(shape: PaymentOption, location_name: "paymentOption"))
    Purchase.add_member(:upfront_price, Shapes::ShapeRef.new(shape: String, location_name: "upfrontPrice"))
    Purchase.struct_class = Types::Purchase

    PurchaseCapacityBlockExtensionRequest.add_member(:capacity_block_extension_offering_id, Shapes::ShapeRef.new(shape: OfferingId, required: true, location_name: "CapacityBlockExtensionOfferingId"))
    PurchaseCapacityBlockExtensionRequest.add_member(:capacity_reservation_id, Shapes::ShapeRef.new(shape: CapacityReservationId, required: true, location_name: "CapacityReservationId"))
    PurchaseCapacityBlockExtensionRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    PurchaseCapacityBlockExtensionRequest.struct_class = Types::PurchaseCapacityBlockExtensionRequest

    PurchaseCapacityBlockExtensionResult.add_member(:capacity_block_extensions, Shapes::ShapeRef.new(shape: CapacityBlockExtensionSet, location_name: "capacityBlockExtensionSet"))
    PurchaseCapacityBlockExtensionResult.struct_class = Types::PurchaseCapacityBlockExtensionResult

    PurchaseCapacityBlockRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    PurchaseCapacityBlockRequest.add_member(:tag_specifications, Shapes::ShapeRef.new(shape: TagSpecificationList, location_name: "TagSpecification"))
    PurchaseCapacityBlockRequest.add_member(:capacity_block_offering_id, Shapes::ShapeRef.new(shape: OfferingId, required: true, location_name: "CapacityBlockOfferingId"))
    PurchaseCapacityBlockRequest.add_member(:instance_platform, Shapes::ShapeRef.new(shape: CapacityReservationInstancePlatform, required: true, location_name: "InstancePlatform"))
    PurchaseCapacityBlockRequest.struct_class = Types::PurchaseCapacityBlockRequest

    PurchaseCapacityBlockResult.add_member(:capacity_reservation, Shapes::ShapeRef.new(shape: CapacityReservation, location_name: "capacityReservation"))
    PurchaseCapacityBlockResult.struct_class = Types::PurchaseCapacityBlockResult

    PurchaseHostReservationRequest.add_member(:client_token, Shapes::ShapeRef.new(shape: String, location_name: "ClientToken"))
    PurchaseHostReservationRequest.add_member(:currency_code, Shapes::ShapeRef.new(shape: CurrencyCodeValues, location_name: "CurrencyCode"))
    PurchaseHostReservationRequest.add_member(:host_id_set, Shapes::ShapeRef.new(shape: RequestHostIdSet, required: true, location_name: "HostIdSet"))
    PurchaseHostReservationRequest.add_member(:limit_price, Shapes::ShapeRef.new(shape: String, location_name: "LimitPrice"))
    PurchaseHostReservationRequest.add_member(:offering_id, Shapes::ShapeRef.new(shape: OfferingId, required: true, location_name: "OfferingId"))
    PurchaseHostReservationRequest.add_member(:tag_specifications, Shapes::ShapeRef.new(shape: TagSpecificationList, location_name: "TagSpecification"))
    PurchaseHostReservationRequest.struct_class = Types::PurchaseHostReservationRequest

    PurchaseHostReservationResult.add_member(:client_token, Shapes::ShapeRef.new(shape: String, location_name: "clientToken"))
    PurchaseHostReservationResult.add_member(:currency_code, Shapes::ShapeRef.new(shape: CurrencyCodeValues, location_name: "currencyCode"))
    PurchaseHostReservationResult.add_member(:purchase, Shapes::ShapeRef.new(shape: PurchaseSet, location_name: "purchase"))
    PurchaseHostReservationResult.add_member(:total_hourly_price, Shapes::ShapeRef.new(shape: String, location_name: "totalHourlyPrice"))
    PurchaseHostReservationResult.add_member(:total_upfront_price, Shapes::ShapeRef.new(shape: String, location_name: "totalUpfrontPrice"))
    PurchaseHostReservationResult.struct_class = Types::PurchaseHostReservationResult

    PurchaseRequest.add_member(:instance_count, Shapes::ShapeRef.new(shape: Integer, required: true, location_name: "InstanceCount"))
    PurchaseRequest.add_member(:purchase_token, Shapes::ShapeRef.new(shape: String, required: true, location_name: "PurchaseToken"))
    PurchaseRequest.struct_class = Types::PurchaseRequest

    PurchaseRequestSet.member = Shapes::ShapeRef.new(shape: PurchaseRequest, location_name: "PurchaseRequest")

    PurchaseReservedInstancesOfferingRequest.add_member(:instance_count, Shapes::ShapeRef.new(shape: Integer, required: true, location_name: "InstanceCount"))
    PurchaseReservedInstancesOfferingRequest.add_member(:reserved_instances_offering_id, Shapes::ShapeRef.new(shape: ReservedInstancesOfferingId, required: true, location_name: "ReservedInstancesOfferingId"))
    PurchaseReservedInstancesOfferingRequest.add_member(:purchase_time, Shapes::ShapeRef.new(shape: DateTime, location_name: "PurchaseTime"))
    PurchaseReservedInstancesOfferingRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "dryRun"))
    PurchaseReservedInstancesOfferingRequest.add_member(:limit_price, Shapes::ShapeRef.new(shape: ReservedInstanceLimitPrice, location_name: "limitPrice"))
    PurchaseReservedInstancesOfferingRequest.struct_class = Types::PurchaseReservedInstancesOfferingRequest

    PurchaseReservedInstancesOfferingResult.add_member(:reserved_instances_id, Shapes::ShapeRef.new(shape: String, location_name: "reservedInstancesId"))
    PurchaseReservedInstancesOfferingResult.struct_class = Types::PurchaseReservedInstancesOfferingResult

    PurchaseScheduledInstancesRequest.add_member(:client_token, Shapes::ShapeRef.new(shape: String, location_name: "ClientToken", metadata: {"idempotencyToken"=>true}))
    PurchaseScheduledInstancesRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    PurchaseScheduledInstancesRequest.add_member(:purchase_requests, Shapes::ShapeRef.new(shape: PurchaseRequestSet, required: true, location_name: "PurchaseRequest"))
    PurchaseScheduledInstancesRequest.struct_class = Types::PurchaseScheduledInstancesRequest

    PurchaseScheduledInstancesResult.add_member(:scheduled_instance_set, Shapes::ShapeRef.new(shape: PurchasedScheduledInstanceSet, location_name: "scheduledInstanceSet"))
    PurchaseScheduledInstancesResult.struct_class = Types::PurchaseScheduledInstancesResult

    PurchaseSet.member = Shapes::ShapeRef.new(shape: Purchase, location_name: "item")

    PurchasedScheduledInstanceSet.member = Shapes::ShapeRef.new(shape: ScheduledInstance, location_name: "item")

    ReasonCodesList.member = Shapes::ShapeRef.new(shape: ReportInstanceReasonCodes, location_name: "item")

    RebootInstancesRequest.add_member(:instance_ids, Shapes::ShapeRef.new(shape: InstanceIdStringList, required: true, location_name: "InstanceId"))
    RebootInstancesRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "dryRun"))
    RebootInstancesRequest.struct_class = Types::RebootInstancesRequest

    RecurringCharge.add_member(:amount, Shapes::ShapeRef.new(shape: Double, location_name: "amount"))
    RecurringCharge.add_member(:frequency, Shapes::ShapeRef.new(shape: RecurringChargeFrequency, location_name: "frequency"))
    RecurringCharge.struct_class = Types::RecurringCharge

    RecurringChargesList.member = Shapes::ShapeRef.new(shape: RecurringCharge, location_name: "item")

    ReferencedSecurityGroup.add_member(:group_id, Shapes::ShapeRef.new(shape: String, location_name: "groupId"))
    ReferencedSecurityGroup.add_member(:peering_status, Shapes::ShapeRef.new(shape: String, location_name: "peeringStatus"))
    ReferencedSecurityGroup.add_member(:user_id, Shapes::ShapeRef.new(shape: String, location_name: "userId"))
    ReferencedSecurityGroup.add_member(:vpc_id, Shapes::ShapeRef.new(shape: String, location_name: "vpcId"))
    ReferencedSecurityGroup.add_member(:vpc_peering_connection_id, Shapes::ShapeRef.new(shape: String, location_name: "vpcPeeringConnectionId"))
    ReferencedSecurityGroup.struct_class = Types::ReferencedSecurityGroup

    Region.add_member(:opt_in_status, Shapes::ShapeRef.new(shape: String, location_name: "optInStatus"))
    Region.add_member(:region_name, Shapes::ShapeRef.new(shape: String, location_name: "regionName"))
    Region.add_member(:endpoint, Shapes::ShapeRef.new(shape: String, location_name: "regionEndpoint"))
    Region.struct_class = Types::Region

    RegionList.member = Shapes::ShapeRef.new(shape: Region, location_name: "item")

    RegionNameStringList.member = Shapes::ShapeRef.new(shape: String, location_name: "RegionName")

    RegionNames.member = Shapes::ShapeRef.new(shape: String)

    RegionalSummary.add_member(:region_name, Shapes::ShapeRef.new(shape: String, location_name: "regionName"))
    RegionalSummary.add_member(:number_of_matched_accounts, Shapes::ShapeRef.new(shape: Integer, location_name: "numberOfMatchedAccounts"))
    RegionalSummary.add_member(:number_of_unmatched_accounts, Shapes::ShapeRef.new(shape: Integer, location_name: "numberOfUnmatchedAccounts"))
    RegionalSummary.struct_class = Types::RegionalSummary

    RegionalSummaryList.member = Shapes::ShapeRef.new(shape: RegionalSummary, location_name: "item")

    RegisterImageRequest.add_member(:image_location, Shapes::ShapeRef.new(shape: String, location_name: "ImageLocation"))
    RegisterImageRequest.add_member(:billing_products, Shapes::ShapeRef.new(shape: BillingProductList, location_name: "BillingProduct"))
    RegisterImageRequest.add_member(:boot_mode, Shapes::ShapeRef.new(shape: BootModeValues, location_name: "BootMode"))
    RegisterImageRequest.add_member(:tpm_support, Shapes::ShapeRef.new(shape: TpmSupportValues, location_name: "TpmSupport"))
    RegisterImageRequest.add_member(:uefi_data, Shapes::ShapeRef.new(shape: StringType, location_name: "UefiData"))
    RegisterImageRequest.add_member(:imds_support, Shapes::ShapeRef.new(shape: ImdsSupportValues, location_name: "ImdsSupport"))
    RegisterImageRequest.add_member(:tag_specifications, Shapes::ShapeRef.new(shape: TagSpecificationList, location_name: "TagSpecification"))
    RegisterImageRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "dryRun"))
    RegisterImageRequest.add_member(:name, Shapes::ShapeRef.new(shape: String, required: true, location_name: "name"))
    RegisterImageRequest.add_member(:description, Shapes::ShapeRef.new(shape: String, location_name: "description"))
    RegisterImageRequest.add_member(:architecture, Shapes::ShapeRef.new(shape: ArchitectureValues, location_name: "architecture"))
    RegisterImageRequest.add_member(:kernel_id, Shapes::ShapeRef.new(shape: KernelId, location_name: "kernelId"))
    RegisterImageRequest.add_member(:ramdisk_id, Shapes::ShapeRef.new(shape: RamdiskId, location_name: "ramdiskId"))
    RegisterImageRequest.add_member(:root_device_name, Shapes::ShapeRef.new(shape: String, location_name: "rootDeviceName"))
    RegisterImageRequest.add_member(:block_device_mappings, Shapes::ShapeRef.new(shape: BlockDeviceMappingRequestList, location_name: "BlockDeviceMapping"))
    RegisterImageRequest.add_member(:virtualization_type, Shapes::ShapeRef.new(shape: String, location_name: "virtualizationType"))
    RegisterImageRequest.add_member(:sriov_net_support, Shapes::ShapeRef.new(shape: String, location_name: "sriovNetSupport"))
    RegisterImageRequest.add_member(:ena_support, Shapes::ShapeRef.new(shape: Boolean, location_name: "enaSupport"))
    RegisterImageRequest.struct_class = Types::RegisterImageRequest

    RegisterImageResult.add_member(:image_id, Shapes::ShapeRef.new(shape: String, location_name: "imageId"))
    RegisterImageResult.struct_class = Types::RegisterImageResult

    RegisterInstanceEventNotificationAttributesRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    RegisterInstanceEventNotificationAttributesRequest.add_member(:instance_tag_attribute, Shapes::ShapeRef.new(shape: RegisterInstanceTagAttributeRequest, required: true, location_name: "InstanceTagAttribute"))
    RegisterInstanceEventNotificationAttributesRequest.struct_class = Types::RegisterInstanceEventNotificationAttributesRequest

    RegisterInstanceEventNotificationAttributesResult.add_member(:instance_tag_attribute, Shapes::ShapeRef.new(shape: InstanceTagNotificationAttribute, location_name: "instanceTagAttribute"))
    RegisterInstanceEventNotificationAttributesResult.struct_class = Types::RegisterInstanceEventNotificationAttributesResult

    RegisterInstanceTagAttributeRequest.add_member(:include_all_tags_of_instance, Shapes::ShapeRef.new(shape: Boolean, location_name: "IncludeAllTagsOfInstance"))
    RegisterInstanceTagAttributeRequest.add_member(:instance_tag_keys, Shapes::ShapeRef.new(shape: InstanceTagKeySet, location_name: "InstanceTagKey"))
    RegisterInstanceTagAttributeRequest.struct_class = Types::RegisterInstanceTagAttributeRequest

    RegisterTransitGatewayMulticastGroupMembersRequest.add_member(:transit_gateway_multicast_domain_id, Shapes::ShapeRef.new(shape: TransitGatewayMulticastDomainId, required: true, location_name: "TransitGatewayMulticastDomainId"))
    RegisterTransitGatewayMulticastGroupMembersRequest.add_member(:group_ip_address, Shapes::ShapeRef.new(shape: String, location_name: "GroupIpAddress"))
    RegisterTransitGatewayMulticastGroupMembersRequest.add_member(:network_interface_ids, Shapes::ShapeRef.new(shape: TransitGatewayNetworkInterfaceIdList, required: true, location_name: "NetworkInterfaceIds"))
    RegisterTransitGatewayMulticastGroupMembersRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    RegisterTransitGatewayMulticastGroupMembersRequest.struct_class = Types::RegisterTransitGatewayMulticastGroupMembersRequest

    RegisterTransitGatewayMulticastGroupMembersResult.add_member(:registered_multicast_group_members, Shapes::ShapeRef.new(shape: TransitGatewayMulticastRegisteredGroupMembers, location_name: "registeredMulticastGroupMembers"))
    RegisterTransitGatewayMulticastGroupMembersResult.struct_class = Types::RegisterTransitGatewayMulticastGroupMembersResult

    RegisterTransitGatewayMulticastGroupSourcesRequest.add_member(:transit_gateway_multicast_domain_id, Shapes::ShapeRef.new(shape: TransitGatewayMulticastDomainId, required: true, location_name: "TransitGatewayMulticastDomainId"))
    RegisterTransitGatewayMulticastGroupSourcesRequest.add_member(:group_ip_address, Shapes::ShapeRef.new(shape: String, location_name: "GroupIpAddress"))
    RegisterTransitGatewayMulticastGroupSourcesRequest.add_member(:network_interface_ids, Shapes::ShapeRef.new(shape: TransitGatewayNetworkInterfaceIdList, required: true, location_name: "NetworkInterfaceIds"))
    RegisterTransitGatewayMulticastGroupSourcesRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    RegisterTransitGatewayMulticastGroupSourcesRequest.struct_class = Types::RegisterTransitGatewayMulticastGroupSourcesRequest

    RegisterTransitGatewayMulticastGroupSourcesResult.add_member(:registered_multicast_group_sources, Shapes::ShapeRef.new(shape: TransitGatewayMulticastRegisteredGroupSources, location_name: "registeredMulticastGroupSources"))
    RegisterTransitGatewayMulticastGroupSourcesResult.struct_class = Types::RegisterTransitGatewayMulticastGroupSourcesResult

    RejectCapacityReservationBillingOwnershipRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    RejectCapacityReservationBillingOwnershipRequest.add_member(:capacity_reservation_id, Shapes::ShapeRef.new(shape: CapacityReservationId, required: true, location_name: "CapacityReservationId"))
    RejectCapacityReservationBillingOwnershipRequest.struct_class = Types::RejectCapacityReservationBillingOwnershipRequest

    RejectCapacityReservationBillingOwnershipResult.add_member(:return, Shapes::ShapeRef.new(shape: Boolean, location_name: "return"))
    RejectCapacityReservationBillingOwnershipResult.struct_class = Types::RejectCapacityReservationBillingOwnershipResult

    RejectTransitGatewayMulticastDomainAssociationsRequest.add_member(:transit_gateway_multicast_domain_id, Shapes::ShapeRef.new(shape: TransitGatewayMulticastDomainId, location_name: "TransitGatewayMulticastDomainId"))
    RejectTransitGatewayMulticastDomainAssociationsRequest.add_member(:transit_gateway_attachment_id, Shapes::ShapeRef.new(shape: TransitGatewayAttachmentId, location_name: "TransitGatewayAttachmentId"))
    RejectTransitGatewayMulticastDomainAssociationsRequest.add_member(:subnet_ids, Shapes::ShapeRef.new(shape: ValueStringList, location_name: "SubnetIds"))
    RejectTransitGatewayMulticastDomainAssociationsRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    RejectTransitGatewayMulticastDomainAssociationsRequest.struct_class = Types::RejectTransitGatewayMulticastDomainAssociationsRequest

    RejectTransitGatewayMulticastDomainAssociationsResult.add_member(:associations, Shapes::ShapeRef.new(shape: TransitGatewayMulticastDomainAssociations, location_name: "associations"))
    RejectTransitGatewayMulticastDomainAssociationsResult.struct_class = Types::RejectTransitGatewayMulticastDomainAssociationsResult

    RejectTransitGatewayPeeringAttachmentRequest.add_member(:transit_gateway_attachment_id, Shapes::ShapeRef.new(shape: TransitGatewayAttachmentId, required: true, location_name: "TransitGatewayAttachmentId"))
    RejectTransitGatewayPeeringAttachmentRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    RejectTransitGatewayPeeringAttachmentRequest.struct_class = Types::RejectTransitGatewayPeeringAttachmentRequest

    RejectTransitGatewayPeeringAttachmentResult.add_member(:transit_gateway_peering_attachment, Shapes::ShapeRef.new(shape: TransitGatewayPeeringAttachment, location_name: "transitGatewayPeeringAttachment"))
    RejectTransitGatewayPeeringAttachmentResult.struct_class = Types::RejectTransitGatewayPeeringAttachmentResult

    RejectTransitGatewayVpcAttachmentRequest.add_member(:transit_gateway_attachment_id, Shapes::ShapeRef.new(shape: TransitGatewayAttachmentId, required: true, location_name: "TransitGatewayAttachmentId"))
    RejectTransitGatewayVpcAttachmentRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    RejectTransitGatewayVpcAttachmentRequest.struct_class = Types::RejectTransitGatewayVpcAttachmentRequest

    RejectTransitGatewayVpcAttachmentResult.add_member(:transit_gateway_vpc_attachment, Shapes::ShapeRef.new(shape: TransitGatewayVpcAttachment, location_name: "transitGatewayVpcAttachment"))
    RejectTransitGatewayVpcAttachmentResult.struct_class = Types::RejectTransitGatewayVpcAttachmentResult

    RejectVpcEndpointConnectionsRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    RejectVpcEndpointConnectionsRequest.add_member(:service_id, Shapes::ShapeRef.new(shape: VpcEndpointServiceId, required: true, location_name: "ServiceId"))
    RejectVpcEndpointConnectionsRequest.add_member(:vpc_endpoint_ids, Shapes::ShapeRef.new(shape: VpcEndpointIdList, required: true, location_name: "VpcEndpointId"))
    RejectVpcEndpointConnectionsRequest.struct_class = Types::RejectVpcEndpointConnectionsRequest

    RejectVpcEndpointConnectionsResult.add_member(:unsuccessful, Shapes::ShapeRef.new(shape: UnsuccessfulItemSet, location_name: "unsuccessful"))
    RejectVpcEndpointConnectionsResult.struct_class = Types::RejectVpcEndpointConnectionsResult

    RejectVpcPeeringConnectionRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "dryRun"))
    RejectVpcPeeringConnectionRequest.add_member(:vpc_peering_connection_id, Shapes::ShapeRef.new(shape: VpcPeeringConnectionId, required: true, location_name: "vpcPeeringConnectionId"))
    RejectVpcPeeringConnectionRequest.struct_class = Types::RejectVpcPeeringConnectionRequest

    RejectVpcPeeringConnectionResult.add_member(:return, Shapes::ShapeRef.new(shape: Boolean, location_name: "return"))
    RejectVpcPeeringConnectionResult.struct_class = Types::RejectVpcPeeringConnectionResult

    ReleaseAddressRequest.add_member(:allocation_id, Shapes::ShapeRef.new(shape: AllocationId, location_name: "AllocationId"))
    ReleaseAddressRequest.add_member(:public_ip, Shapes::ShapeRef.new(shape: String, location_name: "PublicIp"))
    ReleaseAddressRequest.add_member(:network_border_group, Shapes::ShapeRef.new(shape: String, location_name: "NetworkBorderGroup"))
    ReleaseAddressRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "dryRun"))
    ReleaseAddressRequest.struct_class = Types::ReleaseAddressRequest

    ReleaseHostsRequest.add_member(:host_ids, Shapes::ShapeRef.new(shape: RequestHostIdList, required: true, location_name: "hostId"))
    ReleaseHostsRequest.struct_class = Types::ReleaseHostsRequest

    ReleaseHostsResult.add_member(:successful, Shapes::ShapeRef.new(shape: ResponseHostIdList, location_name: "successful"))
    ReleaseHostsResult.add_member(:unsuccessful, Shapes::ShapeRef.new(shape: UnsuccessfulItemList, location_name: "unsuccessful"))
    ReleaseHostsResult.struct_class = Types::ReleaseHostsResult

    ReleaseIpamPoolAllocationRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    ReleaseIpamPoolAllocationRequest.add_member(:ipam_pool_id, Shapes::ShapeRef.new(shape: IpamPoolId, required: true, location_name: "IpamPoolId"))
    ReleaseIpamPoolAllocationRequest.add_member(:cidr, Shapes::ShapeRef.new(shape: String, required: true, location_name: "Cidr"))
    ReleaseIpamPoolAllocationRequest.add_member(:ipam_pool_allocation_id, Shapes::ShapeRef.new(shape: IpamPoolAllocationId, required: true, location_name: "IpamPoolAllocationId"))
    ReleaseIpamPoolAllocationRequest.struct_class = Types::ReleaseIpamPoolAllocationRequest

    ReleaseIpamPoolAllocationResult.add_member(:success, Shapes::ShapeRef.new(shape: Boolean, location_name: "success"))
    ReleaseIpamPoolAllocationResult.struct_class = Types::ReleaseIpamPoolAllocationResult

    RemoveIpamOperatingRegion.add_member(:region_name, Shapes::ShapeRef.new(shape: String, location_name: "RegionName"))
    RemoveIpamOperatingRegion.struct_class = Types::RemoveIpamOperatingRegion

    RemoveIpamOperatingRegionSet.member = Shapes::ShapeRef.new(shape: RemoveIpamOperatingRegion)

    RemoveIpamOrganizationalUnitExclusion.add_member(:organizations_entity_path, Shapes::ShapeRef.new(shape: String, location_name: "OrganizationsEntityPath"))
    RemoveIpamOrganizationalUnitExclusion.struct_class = Types::RemoveIpamOrganizationalUnitExclusion

    RemoveIpamOrganizationalUnitExclusionSet.member = Shapes::ShapeRef.new(shape: RemoveIpamOrganizationalUnitExclusion)

    RemovePrefixListEntries.member = Shapes::ShapeRef.new(shape: RemovePrefixListEntry)

    RemovePrefixListEntry.add_member(:cidr, Shapes::ShapeRef.new(shape: String, required: true, location_name: "Cidr"))
    RemovePrefixListEntry.struct_class = Types::RemovePrefixListEntry

    ReplaceIamInstanceProfileAssociationRequest.add_member(:iam_instance_profile, Shapes::ShapeRef.new(shape: IamInstanceProfileSpecification, required: true, location_name: "IamInstanceProfile"))
    ReplaceIamInstanceProfileAssociationRequest.add_member(:association_id, Shapes::ShapeRef.new(shape: IamInstanceProfileAssociationId, required: true, location_name: "AssociationId"))
    ReplaceIamInstanceProfileAssociationRequest.struct_class = Types::ReplaceIamInstanceProfileAssociationRequest

    ReplaceIamInstanceProfileAssociationResult.add_member(:iam_instance_profile_association, Shapes::ShapeRef.new(shape: IamInstanceProfileAssociation, location_name: "iamInstanceProfileAssociation"))
    ReplaceIamInstanceProfileAssociationResult.struct_class = Types::ReplaceIamInstanceProfileAssociationResult

    ReplaceImageCriteriaInAllowedImagesSettingsRequest.add_member(:image_criteria, Shapes::ShapeRef.new(shape: ImageCriterionRequestList, location_name: "ImageCriterion"))
    ReplaceImageCriteriaInAllowedImagesSettingsRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    ReplaceImageCriteriaInAllowedImagesSettingsRequest.struct_class = Types::ReplaceImageCriteriaInAllowedImagesSettingsRequest

    ReplaceImageCriteriaInAllowedImagesSettingsResult.add_member(:return_value, Shapes::ShapeRef.new(shape: Boolean, location_name: "return"))
    ReplaceImageCriteriaInAllowedImagesSettingsResult.struct_class = Types::ReplaceImageCriteriaInAllowedImagesSettingsResult

    ReplaceNetworkAclAssociationRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "dryRun"))
    ReplaceNetworkAclAssociationRequest.add_member(:association_id, Shapes::ShapeRef.new(shape: NetworkAclAssociationId, required: true, location_name: "associationId"))
    ReplaceNetworkAclAssociationRequest.add_member(:network_acl_id, Shapes::ShapeRef.new(shape: NetworkAclId, required: true, location_name: "networkAclId"))
    ReplaceNetworkAclAssociationRequest.struct_class = Types::ReplaceNetworkAclAssociationRequest

    ReplaceNetworkAclAssociationResult.add_member(:new_association_id, Shapes::ShapeRef.new(shape: String, location_name: "newAssociationId"))
    ReplaceNetworkAclAssociationResult.struct_class = Types::ReplaceNetworkAclAssociationResult

    ReplaceNetworkAclEntryRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "dryRun"))
    ReplaceNetworkAclEntryRequest.add_member(:network_acl_id, Shapes::ShapeRef.new(shape: NetworkAclId, required: true, location_name: "networkAclId"))
    ReplaceNetworkAclEntryRequest.add_member(:rule_number, Shapes::ShapeRef.new(shape: Integer, required: true, location_name: "ruleNumber"))
    ReplaceNetworkAclEntryRequest.add_member(:protocol, Shapes::ShapeRef.new(shape: String, required: true, location_name: "protocol"))
    ReplaceNetworkAclEntryRequest.add_member(:rule_action, Shapes::ShapeRef.new(shape: RuleAction, required: true, location_name: "ruleAction"))
    ReplaceNetworkAclEntryRequest.add_member(:egress, Shapes::ShapeRef.new(shape: Boolean, required: true, location_name: "egress"))
    ReplaceNetworkAclEntryRequest.add_member(:cidr_block, Shapes::ShapeRef.new(shape: String, location_name: "cidrBlock"))
    ReplaceNetworkAclEntryRequest.add_member(:ipv_6_cidr_block, Shapes::ShapeRef.new(shape: String, location_name: "ipv6CidrBlock"))
    ReplaceNetworkAclEntryRequest.add_member(:icmp_type_code, Shapes::ShapeRef.new(shape: IcmpTypeCode, location_name: "Icmp"))
    ReplaceNetworkAclEntryRequest.add_member(:port_range, Shapes::ShapeRef.new(shape: PortRange, location_name: "portRange"))
    ReplaceNetworkAclEntryRequest.struct_class = Types::ReplaceNetworkAclEntryRequest

    ReplaceRootVolumeTask.add_member(:replace_root_volume_task_id, Shapes::ShapeRef.new(shape: ReplaceRootVolumeTaskId, location_name: "replaceRootVolumeTaskId"))
    ReplaceRootVolumeTask.add_member(:instance_id, Shapes::ShapeRef.new(shape: String, location_name: "instanceId"))
    ReplaceRootVolumeTask.add_member(:task_state, Shapes::ShapeRef.new(shape: ReplaceRootVolumeTaskState, location_name: "taskState"))
    ReplaceRootVolumeTask.add_member(:start_time, Shapes::ShapeRef.new(shape: String, location_name: "startTime"))
    ReplaceRootVolumeTask.add_member(:complete_time, Shapes::ShapeRef.new(shape: String, location_name: "completeTime"))
    ReplaceRootVolumeTask.add_member(:tags, Shapes::ShapeRef.new(shape: TagList, location_name: "tagSet"))
    ReplaceRootVolumeTask.add_member(:image_id, Shapes::ShapeRef.new(shape: ImageId, location_name: "imageId"))
    ReplaceRootVolumeTask.add_member(:snapshot_id, Shapes::ShapeRef.new(shape: SnapshotId, location_name: "snapshotId"))
    ReplaceRootVolumeTask.add_member(:delete_replaced_root_volume, Shapes::ShapeRef.new(shape: Boolean, location_name: "deleteReplacedRootVolume"))
    ReplaceRootVolumeTask.struct_class = Types::ReplaceRootVolumeTask

    ReplaceRootVolumeTaskIds.member = Shapes::ShapeRef.new(shape: ReplaceRootVolumeTaskId, location_name: "ReplaceRootVolumeTaskId")

    ReplaceRootVolumeTasks.member = Shapes::ShapeRef.new(shape: ReplaceRootVolumeTask, location_name: "item")

    ReplaceRouteRequest.add_member(:destination_prefix_list_id, Shapes::ShapeRef.new(shape: PrefixListResourceId, location_name: "DestinationPrefixListId"))
    ReplaceRouteRequest.add_member(:vpc_endpoint_id, Shapes::ShapeRef.new(shape: VpcEndpointId, location_name: "VpcEndpointId"))
    ReplaceRouteRequest.add_member(:local_target, Shapes::ShapeRef.new(shape: Boolean, location_name: "LocalTarget"))
    ReplaceRouteRequest.add_member(:transit_gateway_id, Shapes::ShapeRef.new(shape: TransitGatewayId, location_name: "TransitGatewayId"))
    ReplaceRouteRequest.add_member(:local_gateway_id, Shapes::ShapeRef.new(shape: LocalGatewayId, location_name: "LocalGatewayId"))
    ReplaceRouteRequest.add_member(:carrier_gateway_id, Shapes::ShapeRef.new(shape: CarrierGatewayId, location_name: "CarrierGatewayId"))
    ReplaceRouteRequest.add_member(:core_network_arn, Shapes::ShapeRef.new(shape: CoreNetworkArn, location_name: "CoreNetworkArn"))
    ReplaceRouteRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "dryRun"))
    ReplaceRouteRequest.add_member(:route_table_id, Shapes::ShapeRef.new(shape: RouteTableId, required: true, location_name: "routeTableId"))
    ReplaceRouteRequest.add_member(:destination_cidr_block, Shapes::ShapeRef.new(shape: String, location_name: "destinationCidrBlock"))
    ReplaceRouteRequest.add_member(:gateway_id, Shapes::ShapeRef.new(shape: RouteGatewayId, location_name: "gatewayId"))
    ReplaceRouteRequest.add_member(:destination_ipv_6_cidr_block, Shapes::ShapeRef.new(shape: String, location_name: "destinationIpv6CidrBlock"))
    ReplaceRouteRequest.add_member(:egress_only_internet_gateway_id, Shapes::ShapeRef.new(shape: EgressOnlyInternetGatewayId, location_name: "egressOnlyInternetGatewayId"))
    ReplaceRouteRequest.add_member(:instance_id, Shapes::ShapeRef.new(shape: InstanceId, location_name: "instanceId"))
    ReplaceRouteRequest.add_member(:network_interface_id, Shapes::ShapeRef.new(shape: NetworkInterfaceId, location_name: "networkInterfaceId"))
    ReplaceRouteRequest.add_member(:vpc_peering_connection_id, Shapes::ShapeRef.new(shape: VpcPeeringConnectionId, location_name: "vpcPeeringConnectionId"))
    ReplaceRouteRequest.add_member(:nat_gateway_id, Shapes::ShapeRef.new(shape: NatGatewayId, location_name: "natGatewayId"))
    ReplaceRouteRequest.struct_class = Types::ReplaceRouteRequest

    ReplaceRouteTableAssociationRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "dryRun"))
    ReplaceRouteTableAssociationRequest.add_member(:association_id, Shapes::ShapeRef.new(shape: RouteTableAssociationId, required: true, location_name: "associationId"))
    ReplaceRouteTableAssociationRequest.add_member(:route_table_id, Shapes::ShapeRef.new(shape: RouteTableId, required: true, location_name: "routeTableId"))
    ReplaceRouteTableAssociationRequest.struct_class = Types::ReplaceRouteTableAssociationRequest

    ReplaceRouteTableAssociationResult.add_member(:new_association_id, Shapes::ShapeRef.new(shape: String, location_name: "newAssociationId"))
    ReplaceRouteTableAssociationResult.add_member(:association_state, Shapes::ShapeRef.new(shape: RouteTableAssociationState, location_name: "associationState"))
    ReplaceRouteTableAssociationResult.struct_class = Types::ReplaceRouteTableAssociationResult

    ReplaceTransitGatewayRouteRequest.add_member(:destination_cidr_block, Shapes::ShapeRef.new(shape: String, required: true, location_name: "DestinationCidrBlock"))
    ReplaceTransitGatewayRouteRequest.add_member(:transit_gateway_route_table_id, Shapes::ShapeRef.new(shape: TransitGatewayRouteTableId, required: true, location_name: "TransitGatewayRouteTableId"))
    ReplaceTransitGatewayRouteRequest.add_member(:transit_gateway_attachment_id, Shapes::ShapeRef.new(shape: TransitGatewayAttachmentId, location_name: "TransitGatewayAttachmentId"))
    ReplaceTransitGatewayRouteRequest.add_member(:blackhole, Shapes::ShapeRef.new(shape: Boolean, location_name: "Blackhole"))
    ReplaceTransitGatewayRouteRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    ReplaceTransitGatewayRouteRequest.struct_class = Types::ReplaceTransitGatewayRouteRequest

    ReplaceTransitGatewayRouteResult.add_member(:route, Shapes::ShapeRef.new(shape: TransitGatewayRoute, location_name: "route"))
    ReplaceTransitGatewayRouteResult.struct_class = Types::ReplaceTransitGatewayRouteResult

    ReplaceVpnTunnelRequest.add_member(:vpn_connection_id, Shapes::ShapeRef.new(shape: VpnConnectionId, required: true, location_name: "VpnConnectionId"))
    ReplaceVpnTunnelRequest.add_member(:vpn_tunnel_outside_ip_address, Shapes::ShapeRef.new(shape: String, required: true, location_name: "VpnTunnelOutsideIpAddress"))
    ReplaceVpnTunnelRequest.add_member(:apply_pending_maintenance, Shapes::ShapeRef.new(shape: Boolean, location_name: "ApplyPendingMaintenance"))
    ReplaceVpnTunnelRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    ReplaceVpnTunnelRequest.struct_class = Types::ReplaceVpnTunnelRequest

    ReplaceVpnTunnelResult.add_member(:return, Shapes::ShapeRef.new(shape: Boolean, location_name: "return"))
    ReplaceVpnTunnelResult.struct_class = Types::ReplaceVpnTunnelResult

    ReportInstanceStatusRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "dryRun"))
    ReportInstanceStatusRequest.add_member(:instances, Shapes::ShapeRef.new(shape: InstanceIdStringList, required: true, location_name: "instanceId"))
    ReportInstanceStatusRequest.add_member(:status, Shapes::ShapeRef.new(shape: ReportStatusType, required: true, location_name: "status"))
    ReportInstanceStatusRequest.add_member(:start_time, Shapes::ShapeRef.new(shape: DateTime, location_name: "startTime"))
    ReportInstanceStatusRequest.add_member(:end_time, Shapes::ShapeRef.new(shape: DateTime, location_name: "endTime"))
    ReportInstanceStatusRequest.add_member(:reason_codes, Shapes::ShapeRef.new(shape: ReasonCodesList, required: true, location_name: "reasonCode"))
    ReportInstanceStatusRequest.add_member(:description, Shapes::ShapeRef.new(shape: ReportInstanceStatusRequestDescription, deprecated: true, location_name: "description", metadata: {"deprecatedMessage"=>"This member has been deprecated"}))
    ReportInstanceStatusRequest.struct_class = Types::ReportInstanceStatusRequest

    RequestFilterPortRange.add_member(:from_port, Shapes::ShapeRef.new(shape: Port, location_name: "FromPort"))
    RequestFilterPortRange.add_member(:to_port, Shapes::ShapeRef.new(shape: Port, location_name: "ToPort"))
    RequestFilterPortRange.struct_class = Types::RequestFilterPortRange

    RequestHostIdList.member = Shapes::ShapeRef.new(shape: DedicatedHostId, location_name: "item")

    RequestHostIdSet.member = Shapes::ShapeRef.new(shape: DedicatedHostId, location_name: "item")

    RequestInstanceTypeList.member = Shapes::ShapeRef.new(shape: InstanceType)

    RequestIpamResourceTag.add_member(:key, Shapes::ShapeRef.new(shape: String, location_name: "Key"))
    RequestIpamResourceTag.add_member(:value, Shapes::ShapeRef.new(shape: String, location_name: "Value"))
    RequestIpamResourceTag.struct_class = Types::RequestIpamResourceTag

    RequestIpamResourceTagList.member = Shapes::ShapeRef.new(shape: RequestIpamResourceTag, location_name: "item")

    RequestLaunchTemplateData.add_member(:kernel_id, Shapes::ShapeRef.new(shape: KernelId, location_name: "KernelId"))
    RequestLaunchTemplateData.add_member(:ebs_optimized, Shapes::ShapeRef.new(shape: Boolean, location_name: "EbsOptimized"))
    RequestLaunchTemplateData.add_member(:iam_instance_profile, Shapes::ShapeRef.new(shape: LaunchTemplateIamInstanceProfileSpecificationRequest, location_name: "IamInstanceProfile"))
    RequestLaunchTemplateData.add_member(:block_device_mappings, Shapes::ShapeRef.new(shape: LaunchTemplateBlockDeviceMappingRequestList, location_name: "BlockDeviceMapping"))
    RequestLaunchTemplateData.add_member(:network_interfaces, Shapes::ShapeRef.new(shape: LaunchTemplateInstanceNetworkInterfaceSpecificationRequestList, location_name: "NetworkInterface"))
    RequestLaunchTemplateData.add_member(:image_id, Shapes::ShapeRef.new(shape: ImageId, location_name: "ImageId"))
    RequestLaunchTemplateData.add_member(:instance_type, Shapes::ShapeRef.new(shape: InstanceType, location_name: "InstanceType"))
    RequestLaunchTemplateData.add_member(:key_name, Shapes::ShapeRef.new(shape: KeyPairName, location_name: "KeyName"))
    RequestLaunchTemplateData.add_member(:monitoring, Shapes::ShapeRef.new(shape: LaunchTemplatesMonitoringRequest, location_name: "Monitoring"))
    RequestLaunchTemplateData.add_member(:placement, Shapes::ShapeRef.new(shape: LaunchTemplatePlacementRequest, location_name: "Placement"))
    RequestLaunchTemplateData.add_member(:ram_disk_id, Shapes::ShapeRef.new(shape: RamdiskId, location_name: "RamDiskId"))
    RequestLaunchTemplateData.add_member(:disable_api_termination, Shapes::ShapeRef.new(shape: Boolean, location_name: "DisableApiTermination"))
    RequestLaunchTemplateData.add_member(:instance_initiated_shutdown_behavior, Shapes::ShapeRef.new(shape: ShutdownBehavior, location_name: "InstanceInitiatedShutdownBehavior"))
    RequestLaunchTemplateData.add_member(:user_data, Shapes::ShapeRef.new(shape: SensitiveUserData, location_name: "UserData"))
    RequestLaunchTemplateData.add_member(:tag_specifications, Shapes::ShapeRef.new(shape: LaunchTemplateTagSpecificationRequestList, location_name: "TagSpecification"))
    RequestLaunchTemplateData.add_member(:elastic_gpu_specifications, Shapes::ShapeRef.new(shape: ElasticGpuSpecificationList, location_name: "ElasticGpuSpecification"))
    RequestLaunchTemplateData.add_member(:elastic_inference_accelerators, Shapes::ShapeRef.new(shape: LaunchTemplateElasticInferenceAcceleratorList, location_name: "ElasticInferenceAccelerator"))
    RequestLaunchTemplateData.add_member(:security_group_ids, Shapes::ShapeRef.new(shape: SecurityGroupIdStringList, location_name: "SecurityGroupId"))
    RequestLaunchTemplateData.add_member(:security_groups, Shapes::ShapeRef.new(shape: SecurityGroupStringList, location_name: "SecurityGroup"))
    RequestLaunchTemplateData.add_member(:instance_market_options, Shapes::ShapeRef.new(shape: LaunchTemplateInstanceMarketOptionsRequest, location_name: "InstanceMarketOptions"))
    RequestLaunchTemplateData.add_member(:credit_specification, Shapes::ShapeRef.new(shape: CreditSpecificationRequest, location_name: "CreditSpecification"))
    RequestLaunchTemplateData.add_member(:cpu_options, Shapes::ShapeRef.new(shape: LaunchTemplateCpuOptionsRequest, location_name: "CpuOptions"))
    RequestLaunchTemplateData.add_member(:capacity_reservation_specification, Shapes::ShapeRef.new(shape: LaunchTemplateCapacityReservationSpecificationRequest, location_name: "CapacityReservationSpecification"))
    RequestLaunchTemplateData.add_member(:license_specifications, Shapes::ShapeRef.new(shape: LaunchTemplateLicenseSpecificationListRequest, location_name: "LicenseSpecification"))
    RequestLaunchTemplateData.add_member(:hibernation_options, Shapes::ShapeRef.new(shape: LaunchTemplateHibernationOptionsRequest, location_name: "HibernationOptions"))
    RequestLaunchTemplateData.add_member(:metadata_options, Shapes::ShapeRef.new(shape: LaunchTemplateInstanceMetadataOptionsRequest, location_name: "MetadataOptions"))
    RequestLaunchTemplateData.add_member(:enclave_options, Shapes::ShapeRef.new(shape: LaunchTemplateEnclaveOptionsRequest, location_name: "EnclaveOptions"))
    RequestLaunchTemplateData.add_member(:instance_requirements, Shapes::ShapeRef.new(shape: InstanceRequirementsRequest, location_name: "InstanceRequirements"))
    RequestLaunchTemplateData.add_member(:private_dns_name_options, Shapes::ShapeRef.new(shape: LaunchTemplatePrivateDnsNameOptionsRequest, location_name: "PrivateDnsNameOptions"))
    RequestLaunchTemplateData.add_member(:maintenance_options, Shapes::ShapeRef.new(shape: LaunchTemplateInstanceMaintenanceOptionsRequest, location_name: "MaintenanceOptions"))
    RequestLaunchTemplateData.add_member(:disable_api_stop, Shapes::ShapeRef.new(shape: Boolean, location_name: "DisableApiStop"))
    RequestLaunchTemplateData.add_member(:operator, Shapes::ShapeRef.new(shape: OperatorRequest, location_name: "Operator"))
    RequestLaunchTemplateData.add_member(:network_performance_options, Shapes::ShapeRef.new(shape: LaunchTemplateNetworkPerformanceOptionsRequest, location_name: "NetworkPerformanceOptions"))
    RequestLaunchTemplateData.struct_class = Types::RequestLaunchTemplateData

    RequestSpotFleetRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "dryRun"))
    RequestSpotFleetRequest.add_member(:spot_fleet_request_config, Shapes::ShapeRef.new(shape: SpotFleetRequestConfigData, required: true, location_name: "spotFleetRequestConfig"))
    RequestSpotFleetRequest.struct_class = Types::RequestSpotFleetRequest

    RequestSpotFleetResponse.add_member(:spot_fleet_request_id, Shapes::ShapeRef.new(shape: String, location_name: "spotFleetRequestId"))
    RequestSpotFleetResponse.struct_class = Types::RequestSpotFleetResponse

    RequestSpotInstancesRequest.add_member(:launch_specification, Shapes::ShapeRef.new(shape: RequestSpotLaunchSpecification, location_name: "LaunchSpecification"))
    RequestSpotInstancesRequest.add_member(:tag_specifications, Shapes::ShapeRef.new(shape: TagSpecificationList, location_name: "TagSpecification"))
    RequestSpotInstancesRequest.add_member(:instance_interruption_behavior, Shapes::ShapeRef.new(shape: InstanceInterruptionBehavior, location_name: "InstanceInterruptionBehavior"))
    RequestSpotInstancesRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "dryRun"))
    RequestSpotInstancesRequest.add_member(:spot_price, Shapes::ShapeRef.new(shape: String, location_name: "spotPrice"))
    RequestSpotInstancesRequest.add_member(:client_token, Shapes::ShapeRef.new(shape: String, location_name: "clientToken"))
    RequestSpotInstancesRequest.add_member(:instance_count, Shapes::ShapeRef.new(shape: Integer, location_name: "instanceCount"))
    RequestSpotInstancesRequest.add_member(:type, Shapes::ShapeRef.new(shape: SpotInstanceType, location_name: "type"))
    RequestSpotInstancesRequest.add_member(:valid_from, Shapes::ShapeRef.new(shape: DateTime, location_name: "validFrom"))
    RequestSpotInstancesRequest.add_member(:valid_until, Shapes::ShapeRef.new(shape: DateTime, location_name: "validUntil"))
    RequestSpotInstancesRequest.add_member(:launch_group, Shapes::ShapeRef.new(shape: String, location_name: "launchGroup"))
    RequestSpotInstancesRequest.add_member(:availability_zone_group, Shapes::ShapeRef.new(shape: String, location_name: "availabilityZoneGroup"))
    RequestSpotInstancesRequest.add_member(:block_duration_minutes, Shapes::ShapeRef.new(shape: Integer, location_name: "blockDurationMinutes"))
    RequestSpotInstancesRequest.struct_class = Types::RequestSpotInstancesRequest

    RequestSpotInstancesResult.add_member(:spot_instance_requests, Shapes::ShapeRef.new(shape: SpotInstanceRequestList, location_name: "spotInstanceRequestSet"))
    RequestSpotInstancesResult.struct_class = Types::RequestSpotInstancesResult

    RequestSpotLaunchSpecification.add_member(:security_group_ids, Shapes::ShapeRef.new(shape: RequestSpotLaunchSpecificationSecurityGroupIdList, location_name: "SecurityGroupId"))
    RequestSpotLaunchSpecification.add_member(:security_groups, Shapes::ShapeRef.new(shape: RequestSpotLaunchSpecificationSecurityGroupList, location_name: "SecurityGroup"))
    RequestSpotLaunchSpecification.add_member(:addressing_type, Shapes::ShapeRef.new(shape: String, location_name: "addressingType"))
    RequestSpotLaunchSpecification.add_member(:block_device_mappings, Shapes::ShapeRef.new(shape: BlockDeviceMappingList, location_name: "blockDeviceMapping"))
    RequestSpotLaunchSpecification.add_member(:ebs_optimized, Shapes::ShapeRef.new(shape: Boolean, location_name: "ebsOptimized"))
    RequestSpotLaunchSpecification.add_member(:iam_instance_profile, Shapes::ShapeRef.new(shape: IamInstanceProfileSpecification, location_name: "iamInstanceProfile"))
    RequestSpotLaunchSpecification.add_member(:image_id, Shapes::ShapeRef.new(shape: ImageId, location_name: "imageId"))
    RequestSpotLaunchSpecification.add_member(:instance_type, Shapes::ShapeRef.new(shape: InstanceType, location_name: "instanceType"))
    RequestSpotLaunchSpecification.add_member(:kernel_id, Shapes::ShapeRef.new(shape: KernelId, location_name: "kernelId"))
    RequestSpotLaunchSpecification.add_member(:key_name, Shapes::ShapeRef.new(shape: KeyPairNameWithResolver, location_name: "keyName"))
    RequestSpotLaunchSpecification.add_member(:monitoring, Shapes::ShapeRef.new(shape: RunInstancesMonitoringEnabled, location_name: "monitoring"))
    RequestSpotLaunchSpecification.add_member(:network_interfaces, Shapes::ShapeRef.new(shape: InstanceNetworkInterfaceSpecificationList, location_name: "NetworkInterface"))
    RequestSpotLaunchSpecification.add_member(:placement, Shapes::ShapeRef.new(shape: SpotPlacement, location_name: "placement"))
    RequestSpotLaunchSpecification.add_member(:ramdisk_id, Shapes::ShapeRef.new(shape: RamdiskId, location_name: "ramdiskId"))
    RequestSpotLaunchSpecification.add_member(:subnet_id, Shapes::ShapeRef.new(shape: SubnetId, location_name: "subnetId"))
    RequestSpotLaunchSpecification.add_member(:user_data, Shapes::ShapeRef.new(shape: SensitiveUserData, location_name: "userData"))
    RequestSpotLaunchSpecification.struct_class = Types::RequestSpotLaunchSpecification

    RequestSpotLaunchSpecificationSecurityGroupIdList.member = Shapes::ShapeRef.new(shape: SecurityGroupId, location_name: "item")

    RequestSpotLaunchSpecificationSecurityGroupList.member = Shapes::ShapeRef.new(shape: String, location_name: "item")

    Reservation.add_member(:reservation_id, Shapes::ShapeRef.new(shape: String, location_name: "reservationId"))
    Reservation.add_member(:owner_id, Shapes::ShapeRef.new(shape: String, location_name: "ownerId"))
    Reservation.add_member(:requester_id, Shapes::ShapeRef.new(shape: String, location_name: "requesterId"))
    Reservation.add_member(:groups, Shapes::ShapeRef.new(shape: GroupIdentifierList, location_name: "groupSet"))
    Reservation.add_member(:instances, Shapes::ShapeRef.new(shape: InstanceList, location_name: "instancesSet"))
    Reservation.struct_class = Types::Reservation

    ReservationFleetInstanceSpecification.add_member(:instance_type, Shapes::ShapeRef.new(shape: InstanceType, location_name: "InstanceType"))
    ReservationFleetInstanceSpecification.add_member(:instance_platform, Shapes::ShapeRef.new(shape: CapacityReservationInstancePlatform, location_name: "InstancePlatform"))
    ReservationFleetInstanceSpecification.add_member(:weight, Shapes::ShapeRef.new(shape: DoubleWithConstraints, location_name: "Weight"))
    ReservationFleetInstanceSpecification.add_member(:availability_zone, Shapes::ShapeRef.new(shape: String, location_name: "AvailabilityZone"))
    ReservationFleetInstanceSpecification.add_member(:availability_zone_id, Shapes::ShapeRef.new(shape: String, location_name: "AvailabilityZoneId"))
    ReservationFleetInstanceSpecification.add_member(:ebs_optimized, Shapes::ShapeRef.new(shape: Boolean, location_name: "EbsOptimized"))
    ReservationFleetInstanceSpecification.add_member(:priority, Shapes::ShapeRef.new(shape: IntegerWithConstraints, location_name: "Priority"))
    ReservationFleetInstanceSpecification.struct_class = Types::ReservationFleetInstanceSpecification

    ReservationFleetInstanceSpecificationList.member = Shapes::ShapeRef.new(shape: ReservationFleetInstanceSpecification)

    ReservationList.member = Shapes::ShapeRef.new(shape: Reservation, location_name: "item")

    ReservationValue.add_member(:hourly_price, Shapes::ShapeRef.new(shape: String, location_name: "hourlyPrice"))
    ReservationValue.add_member(:remaining_total_value, Shapes::ShapeRef.new(shape: String, location_name: "remainingTotalValue"))
    ReservationValue.add_member(:remaining_upfront_value, Shapes::ShapeRef.new(shape: String, location_name: "remainingUpfrontValue"))
    ReservationValue.struct_class = Types::ReservationValue

    ReservedInstanceIdSet.member = Shapes::ShapeRef.new(shape: ReservationId, location_name: "ReservedInstanceId")

    ReservedInstanceLimitPrice.add_member(:amount, Shapes::ShapeRef.new(shape: Double, location_name: "amount"))
    ReservedInstanceLimitPrice.add_member(:currency_code, Shapes::ShapeRef.new(shape: CurrencyCodeValues, location_name: "currencyCode"))
    ReservedInstanceLimitPrice.struct_class = Types::ReservedInstanceLimitPrice

    ReservedInstanceReservationValue.add_member(:reservation_value, Shapes::ShapeRef.new(shape: ReservationValue, location_name: "reservationValue"))
    ReservedInstanceReservationValue.add_member(:reserved_instance_id, Shapes::ShapeRef.new(shape: String, location_name: "reservedInstanceId"))
    ReservedInstanceReservationValue.struct_class = Types::ReservedInstanceReservationValue

    ReservedInstanceReservationValueSet.member = Shapes::ShapeRef.new(shape: ReservedInstanceReservationValue, location_name: "item")

    ReservedInstances.add_member(:currency_code, Shapes::ShapeRef.new(shape: CurrencyCodeValues, location_name: "currencyCode"))
    ReservedInstances.add_member(:instance_tenancy, Shapes::ShapeRef.new(shape: Tenancy, location_name: "instanceTenancy"))
    ReservedInstances.add_member(:offering_class, Shapes::ShapeRef.new(shape: OfferingClassType, location_name: "offeringClass"))
    ReservedInstances.add_member(:offering_type, Shapes::ShapeRef.new(shape: OfferingTypeValues, location_name: "offeringType"))
    ReservedInstances.add_member(:recurring_charges, Shapes::ShapeRef.new(shape: RecurringChargesList, location_name: "recurringCharges"))
    ReservedInstances.add_member(:scope, Shapes::ShapeRef.new(shape: scope, location_name: "scope"))
    ReservedInstances.add_member(:tags, Shapes::ShapeRef.new(shape: TagList, location_name: "tagSet"))
    ReservedInstances.add_member(:reserved_instances_id, Shapes::ShapeRef.new(shape: String, location_name: "reservedInstancesId"))
    ReservedInstances.add_member(:instance_type, Shapes::ShapeRef.new(shape: InstanceType, location_name: "instanceType"))
    ReservedInstances.add_member(:availability_zone, Shapes::ShapeRef.new(shape: String, location_name: "availabilityZone"))
    ReservedInstances.add_member(:start, Shapes::ShapeRef.new(shape: DateTime, location_name: "start"))
    ReservedInstances.add_member(:end, Shapes::ShapeRef.new(shape: DateTime, location_name: "end"))
    ReservedInstances.add_member(:duration, Shapes::ShapeRef.new(shape: Long, location_name: "duration"))
    ReservedInstances.add_member(:usage_price, Shapes::ShapeRef.new(shape: Float, location_name: "usagePrice"))
    ReservedInstances.add_member(:fixed_price, Shapes::ShapeRef.new(shape: Float, location_name: "fixedPrice"))
    ReservedInstances.add_member(:instance_count, Shapes::ShapeRef.new(shape: Integer, location_name: "instanceCount"))
    ReservedInstances.add_member(:product_description, Shapes::ShapeRef.new(shape: RIProductDescription, location_name: "productDescription"))
    ReservedInstances.add_member(:state, Shapes::ShapeRef.new(shape: ReservedInstanceState, location_name: "state"))
    ReservedInstances.struct_class = Types::ReservedInstances

    ReservedInstancesConfiguration.add_member(:availability_zone, Shapes::ShapeRef.new(shape: String, location_name: "availabilityZone"))
    ReservedInstancesConfiguration.add_member(:instance_count, Shapes::ShapeRef.new(shape: Integer, location_name: "instanceCount"))
    ReservedInstancesConfiguration.add_member(:instance_type, Shapes::ShapeRef.new(shape: InstanceType, location_name: "instanceType"))
    ReservedInstancesConfiguration.add_member(:platform, Shapes::ShapeRef.new(shape: String, location_name: "platform"))
    ReservedInstancesConfiguration.add_member(:scope, Shapes::ShapeRef.new(shape: scope, location_name: "scope"))
    ReservedInstancesConfiguration.struct_class = Types::ReservedInstancesConfiguration

    ReservedInstancesConfigurationList.member = Shapes::ShapeRef.new(shape: ReservedInstancesConfiguration, location_name: "item")

    ReservedInstancesId.add_member(:reserved_instances_id, Shapes::ShapeRef.new(shape: String, location_name: "reservedInstancesId"))
    ReservedInstancesId.struct_class = Types::ReservedInstancesId

    ReservedInstancesIdStringList.member = Shapes::ShapeRef.new(shape: ReservationId, location_name: "ReservedInstancesId")

    ReservedInstancesList.member = Shapes::ShapeRef.new(shape: ReservedInstances, location_name: "item")

    ReservedInstancesListing.add_member(:client_token, Shapes::ShapeRef.new(shape: String, location_name: "clientToken"))
    ReservedInstancesListing.add_member(:create_date, Shapes::ShapeRef.new(shape: DateTime, location_name: "createDate"))
    ReservedInstancesListing.add_member(:instance_counts, Shapes::ShapeRef.new(shape: InstanceCountList, location_name: "instanceCounts"))
    ReservedInstancesListing.add_member(:price_schedules, Shapes::ShapeRef.new(shape: PriceScheduleList, location_name: "priceSchedules"))
    ReservedInstancesListing.add_member(:reserved_instances_id, Shapes::ShapeRef.new(shape: String, location_name: "reservedInstancesId"))
    ReservedInstancesListing.add_member(:reserved_instances_listing_id, Shapes::ShapeRef.new(shape: String, location_name: "reservedInstancesListingId"))
    ReservedInstancesListing.add_member(:status, Shapes::ShapeRef.new(shape: ListingStatus, location_name: "status"))
    ReservedInstancesListing.add_member(:status_message, Shapes::ShapeRef.new(shape: String, location_name: "statusMessage"))
    ReservedInstancesListing.add_member(:tags, Shapes::ShapeRef.new(shape: TagList, location_name: "tagSet"))
    ReservedInstancesListing.add_member(:update_date, Shapes::ShapeRef.new(shape: DateTime, location_name: "updateDate"))
    ReservedInstancesListing.struct_class = Types::ReservedInstancesListing

    ReservedInstancesListingList.member = Shapes::ShapeRef.new(shape: ReservedInstancesListing, location_name: "item")

    ReservedInstancesModification.add_member(:client_token, Shapes::ShapeRef.new(shape: String, location_name: "clientToken"))
    ReservedInstancesModification.add_member(:create_date, Shapes::ShapeRef.new(shape: DateTime, location_name: "createDate"))
    ReservedInstancesModification.add_member(:effective_date, Shapes::ShapeRef.new(shape: DateTime, location_name: "effectiveDate"))
    ReservedInstancesModification.add_member(:modification_results, Shapes::ShapeRef.new(shape: ReservedInstancesModificationResultList, location_name: "modificationResultSet"))
    ReservedInstancesModification.add_member(:reserved_instances_ids, Shapes::ShapeRef.new(shape: ReservedIntancesIds, location_name: "reservedInstancesSet"))
    ReservedInstancesModification.add_member(:reserved_instances_modification_id, Shapes::ShapeRef.new(shape: String, location_name: "reservedInstancesModificationId"))
    ReservedInstancesModification.add_member(:status, Shapes::ShapeRef.new(shape: String, location_name: "status"))
    ReservedInstancesModification.add_member(:status_message, Shapes::ShapeRef.new(shape: String, location_name: "statusMessage"))
    ReservedInstancesModification.add_member(:update_date, Shapes::ShapeRef.new(shape: DateTime, location_name: "updateDate"))
    ReservedInstancesModification.struct_class = Types::ReservedInstancesModification

    ReservedInstancesModificationIdStringList.member = Shapes::ShapeRef.new(shape: ReservedInstancesModificationId, location_name: "ReservedInstancesModificationId")

    ReservedInstancesModificationList.member = Shapes::ShapeRef.new(shape: ReservedInstancesModification, location_name: "item")

    ReservedInstancesModificationResult.add_member(:reserved_instances_id, Shapes::ShapeRef.new(shape: String, location_name: "reservedInstancesId"))
    ReservedInstancesModificationResult.add_member(:target_configuration, Shapes::ShapeRef.new(shape: ReservedInstancesConfiguration, location_name: "targetConfiguration"))
    ReservedInstancesModificationResult.struct_class = Types::ReservedInstancesModificationResult

    ReservedInstancesModificationResultList.member = Shapes::ShapeRef.new(shape: ReservedInstancesModificationResult, location_name: "item")

    ReservedInstancesOffering.add_member(:currency_code, Shapes::ShapeRef.new(shape: CurrencyCodeValues, location_name: "currencyCode"))
    ReservedInstancesOffering.add_member(:instance_tenancy, Shapes::ShapeRef.new(shape: Tenancy, location_name: "instanceTenancy"))
    ReservedInstancesOffering.add_member(:marketplace, Shapes::ShapeRef.new(shape: Boolean, location_name: "marketplace"))
    ReservedInstancesOffering.add_member(:offering_class, Shapes::ShapeRef.new(shape: OfferingClassType, location_name: "offeringClass"))
    ReservedInstancesOffering.add_member(:offering_type, Shapes::ShapeRef.new(shape: OfferingTypeValues, location_name: "offeringType"))
    ReservedInstancesOffering.add_member(:pricing_details, Shapes::ShapeRef.new(shape: PricingDetailsList, location_name: "pricingDetailsSet"))
    ReservedInstancesOffering.add_member(:recurring_charges, Shapes::ShapeRef.new(shape: RecurringChargesList, location_name: "recurringCharges"))
    ReservedInstancesOffering.add_member(:scope, Shapes::ShapeRef.new(shape: scope, location_name: "scope"))
    ReservedInstancesOffering.add_member(:reserved_instances_offering_id, Shapes::ShapeRef.new(shape: String, location_name: "reservedInstancesOfferingId"))
    ReservedInstancesOffering.add_member(:instance_type, Shapes::ShapeRef.new(shape: InstanceType, location_name: "instanceType"))
    ReservedInstancesOffering.add_member(:availability_zone, Shapes::ShapeRef.new(shape: String, location_name: "availabilityZone"))
    ReservedInstancesOffering.add_member(:duration, Shapes::ShapeRef.new(shape: Long, location_name: "duration"))
    ReservedInstancesOffering.add_member(:usage_price, Shapes::ShapeRef.new(shape: Float, location_name: "usagePrice"))
    ReservedInstancesOffering.add_member(:fixed_price, Shapes::ShapeRef.new(shape: Float, location_name: "fixedPrice"))
    ReservedInstancesOffering.add_member(:product_description, Shapes::ShapeRef.new(shape: RIProductDescription, location_name: "productDescription"))
    ReservedInstancesOffering.struct_class = Types::ReservedInstancesOffering

    ReservedInstancesOfferingIdStringList.member = Shapes::ShapeRef.new(shape: ReservedInstancesOfferingId)

    ReservedInstancesOfferingList.member = Shapes::ShapeRef.new(shape: ReservedInstancesOffering, location_name: "item")

    ReservedIntancesIds.member = Shapes::ShapeRef.new(shape: ReservedInstancesId, location_name: "item")

    ResetAddressAttributeRequest.add_member(:allocation_id, Shapes::ShapeRef.new(shape: AllocationId, required: true, location_name: "AllocationId"))
    ResetAddressAttributeRequest.add_member(:attribute, Shapes::ShapeRef.new(shape: AddressAttributeName, required: true, location_name: "Attribute"))
    ResetAddressAttributeRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    ResetAddressAttributeRequest.struct_class = Types::ResetAddressAttributeRequest

    ResetAddressAttributeResult.add_member(:address, Shapes::ShapeRef.new(shape: AddressAttribute, location_name: "address"))
    ResetAddressAttributeResult.struct_class = Types::ResetAddressAttributeResult

    ResetEbsDefaultKmsKeyIdRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    ResetEbsDefaultKmsKeyIdRequest.struct_class = Types::ResetEbsDefaultKmsKeyIdRequest

    ResetEbsDefaultKmsKeyIdResult.add_member(:kms_key_id, Shapes::ShapeRef.new(shape: String, location_name: "kmsKeyId"))
    ResetEbsDefaultKmsKeyIdResult.struct_class = Types::ResetEbsDefaultKmsKeyIdResult

    ResetFpgaImageAttributeRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    ResetFpgaImageAttributeRequest.add_member(:fpga_image_id, Shapes::ShapeRef.new(shape: FpgaImageId, required: true, location_name: "FpgaImageId"))
    ResetFpgaImageAttributeRequest.add_member(:attribute, Shapes::ShapeRef.new(shape: ResetFpgaImageAttributeName, location_name: "Attribute"))
    ResetFpgaImageAttributeRequest.struct_class = Types::ResetFpgaImageAttributeRequest

    ResetFpgaImageAttributeResult.add_member(:return, Shapes::ShapeRef.new(shape: Boolean, location_name: "return"))
    ResetFpgaImageAttributeResult.struct_class = Types::ResetFpgaImageAttributeResult

    ResetImageAttributeRequest.add_member(:attribute, Shapes::ShapeRef.new(shape: ResetImageAttributeName, required: true, location_name: "Attribute"))
    ResetImageAttributeRequest.add_member(:image_id, Shapes::ShapeRef.new(shape: ImageId, required: true, location_name: "ImageId"))
    ResetImageAttributeRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "dryRun"))
    ResetImageAttributeRequest.struct_class = Types::ResetImageAttributeRequest

    ResetInstanceAttributeRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "dryRun"))
    ResetInstanceAttributeRequest.add_member(:instance_id, Shapes::ShapeRef.new(shape: InstanceId, required: true, location_name: "instanceId"))
    ResetInstanceAttributeRequest.add_member(:attribute, Shapes::ShapeRef.new(shape: InstanceAttributeName, required: true, location_name: "attribute"))
    ResetInstanceAttributeRequest.struct_class = Types::ResetInstanceAttributeRequest

    ResetNetworkInterfaceAttributeRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "dryRun"))
    ResetNetworkInterfaceAttributeRequest.add_member(:network_interface_id, Shapes::ShapeRef.new(shape: NetworkInterfaceId, required: true, location_name: "networkInterfaceId"))
    ResetNetworkInterfaceAttributeRequest.add_member(:source_dest_check, Shapes::ShapeRef.new(shape: String, location_name: "sourceDestCheck"))
    ResetNetworkInterfaceAttributeRequest.struct_class = Types::ResetNetworkInterfaceAttributeRequest

    ResetSnapshotAttributeRequest.add_member(:attribute, Shapes::ShapeRef.new(shape: SnapshotAttributeName, required: true, location_name: "Attribute"))
    ResetSnapshotAttributeRequest.add_member(:snapshot_id, Shapes::ShapeRef.new(shape: SnapshotId, required: true, location_name: "SnapshotId"))
    ResetSnapshotAttributeRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "dryRun"))
    ResetSnapshotAttributeRequest.struct_class = Types::ResetSnapshotAttributeRequest

    ResourceIdList.member = Shapes::ShapeRef.new(shape: TaggableResourceId)

    ResourceList.member = Shapes::ShapeRef.new(shape: String, location_name: "item")

    ResourceStatement.add_member(:resources, Shapes::ShapeRef.new(shape: ValueStringList, location_name: "resourceSet"))
    ResourceStatement.add_member(:resource_types, Shapes::ShapeRef.new(shape: ValueStringList, location_name: "resourceTypeSet"))
    ResourceStatement.struct_class = Types::ResourceStatement

    ResourceStatementRequest.add_member(:resources, Shapes::ShapeRef.new(shape: ValueStringList, location_name: "Resource"))
    ResourceStatementRequest.add_member(:resource_types, Shapes::ShapeRef.new(shape: ValueStringList, location_name: "ResourceType"))
    ResourceStatementRequest.struct_class = Types::ResourceStatementRequest

    ResponseError.add_member(:code, Shapes::ShapeRef.new(shape: LaunchTemplateErrorCode, location_name: "code"))
    ResponseError.add_member(:message, Shapes::ShapeRef.new(shape: String, location_name: "message"))
    ResponseError.struct_class = Types::ResponseError

    ResponseHostIdList.member = Shapes::ShapeRef.new(shape: String, location_name: "item")

    ResponseHostIdSet.member = Shapes::ShapeRef.new(shape: String, location_name: "item")

    ResponseLaunchTemplateData.add_member(:kernel_id, Shapes::ShapeRef.new(shape: String, location_name: "kernelId"))
    ResponseLaunchTemplateData.add_member(:ebs_optimized, Shapes::ShapeRef.new(shape: Boolean, location_name: "ebsOptimized"))
    ResponseLaunchTemplateData.add_member(:iam_instance_profile, Shapes::ShapeRef.new(shape: LaunchTemplateIamInstanceProfileSpecification, location_name: "iamInstanceProfile"))
    ResponseLaunchTemplateData.add_member(:block_device_mappings, Shapes::ShapeRef.new(shape: LaunchTemplateBlockDeviceMappingList, location_name: "blockDeviceMappingSet"))
    ResponseLaunchTemplateData.add_member(:network_interfaces, Shapes::ShapeRef.new(shape: LaunchTemplateInstanceNetworkInterfaceSpecificationList, location_name: "networkInterfaceSet"))
    ResponseLaunchTemplateData.add_member(:image_id, Shapes::ShapeRef.new(shape: String, location_name: "imageId"))
    ResponseLaunchTemplateData.add_member(:instance_type, Shapes::ShapeRef.new(shape: InstanceType, location_name: "instanceType"))
    ResponseLaunchTemplateData.add_member(:key_name, Shapes::ShapeRef.new(shape: String, location_name: "keyName"))
    ResponseLaunchTemplateData.add_member(:monitoring, Shapes::ShapeRef.new(shape: LaunchTemplatesMonitoring, location_name: "monitoring"))
    ResponseLaunchTemplateData.add_member(:placement, Shapes::ShapeRef.new(shape: LaunchTemplatePlacement, location_name: "placement"))
    ResponseLaunchTemplateData.add_member(:ram_disk_id, Shapes::ShapeRef.new(shape: String, location_name: "ramDiskId"))
    ResponseLaunchTemplateData.add_member(:disable_api_termination, Shapes::ShapeRef.new(shape: Boolean, location_name: "disableApiTermination"))
    ResponseLaunchTemplateData.add_member(:instance_initiated_shutdown_behavior, Shapes::ShapeRef.new(shape: ShutdownBehavior, location_name: "instanceInitiatedShutdownBehavior"))
    ResponseLaunchTemplateData.add_member(:user_data, Shapes::ShapeRef.new(shape: SensitiveUserData, location_name: "userData"))
    ResponseLaunchTemplateData.add_member(:tag_specifications, Shapes::ShapeRef.new(shape: LaunchTemplateTagSpecificationList, location_name: "tagSpecificationSet"))
    ResponseLaunchTemplateData.add_member(:elastic_gpu_specifications, Shapes::ShapeRef.new(shape: ElasticGpuSpecificationResponseList, location_name: "elasticGpuSpecificationSet"))
    ResponseLaunchTemplateData.add_member(:elastic_inference_accelerators, Shapes::ShapeRef.new(shape: LaunchTemplateElasticInferenceAcceleratorResponseList, location_name: "elasticInferenceAcceleratorSet"))
    ResponseLaunchTemplateData.add_member(:security_group_ids, Shapes::ShapeRef.new(shape: ValueStringList, location_name: "securityGroupIdSet"))
    ResponseLaunchTemplateData.add_member(:security_groups, Shapes::ShapeRef.new(shape: ValueStringList, location_name: "securityGroupSet"))
    ResponseLaunchTemplateData.add_member(:instance_market_options, Shapes::ShapeRef.new(shape: LaunchTemplateInstanceMarketOptions, location_name: "instanceMarketOptions"))
    ResponseLaunchTemplateData.add_member(:credit_specification, Shapes::ShapeRef.new(shape: CreditSpecification, location_name: "creditSpecification"))
    ResponseLaunchTemplateData.add_member(:cpu_options, Shapes::ShapeRef.new(shape: LaunchTemplateCpuOptions, location_name: "cpuOptions"))
    ResponseLaunchTemplateData.add_member(:capacity_reservation_specification, Shapes::ShapeRef.new(shape: LaunchTemplateCapacityReservationSpecificationResponse, location_name: "capacityReservationSpecification"))
    ResponseLaunchTemplateData.add_member(:license_specifications, Shapes::ShapeRef.new(shape: LaunchTemplateLicenseList, location_name: "licenseSet"))
    ResponseLaunchTemplateData.add_member(:hibernation_options, Shapes::ShapeRef.new(shape: LaunchTemplateHibernationOptions, location_name: "hibernationOptions"))
    ResponseLaunchTemplateData.add_member(:metadata_options, Shapes::ShapeRef.new(shape: LaunchTemplateInstanceMetadataOptions, location_name: "metadataOptions"))
    ResponseLaunchTemplateData.add_member(:enclave_options, Shapes::ShapeRef.new(shape: LaunchTemplateEnclaveOptions, location_name: "enclaveOptions"))
    ResponseLaunchTemplateData.add_member(:instance_requirements, Shapes::ShapeRef.new(shape: InstanceRequirements, location_name: "instanceRequirements"))
    ResponseLaunchTemplateData.add_member(:private_dns_name_options, Shapes::ShapeRef.new(shape: LaunchTemplatePrivateDnsNameOptions, location_name: "privateDnsNameOptions"))
    ResponseLaunchTemplateData.add_member(:maintenance_options, Shapes::ShapeRef.new(shape: LaunchTemplateInstanceMaintenanceOptions, location_name: "maintenanceOptions"))
    ResponseLaunchTemplateData.add_member(:disable_api_stop, Shapes::ShapeRef.new(shape: Boolean, location_name: "disableApiStop"))
    ResponseLaunchTemplateData.add_member(:operator, Shapes::ShapeRef.new(shape: OperatorResponse, location_name: "operator"))
    ResponseLaunchTemplateData.add_member(:network_performance_options, Shapes::ShapeRef.new(shape: LaunchTemplateNetworkPerformanceOptions, location_name: "networkPerformanceOptions"))
    ResponseLaunchTemplateData.struct_class = Types::ResponseLaunchTemplateData

    RestorableByStringList.member = Shapes::ShapeRef.new(shape: String)

    RestoreAddressToClassicRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "dryRun"))
    RestoreAddressToClassicRequest.add_member(:public_ip, Shapes::ShapeRef.new(shape: String, required: true, location_name: "publicIp"))
    RestoreAddressToClassicRequest.struct_class = Types::RestoreAddressToClassicRequest

    RestoreAddressToClassicResult.add_member(:public_ip, Shapes::ShapeRef.new(shape: String, location_name: "publicIp"))
    RestoreAddressToClassicResult.add_member(:status, Shapes::ShapeRef.new(shape: Status, location_name: "status"))
    RestoreAddressToClassicResult.struct_class = Types::RestoreAddressToClassicResult

    RestoreImageFromRecycleBinRequest.add_member(:image_id, Shapes::ShapeRef.new(shape: ImageId, required: true, location_name: "ImageId"))
    RestoreImageFromRecycleBinRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    RestoreImageFromRecycleBinRequest.struct_class = Types::RestoreImageFromRecycleBinRequest

    RestoreImageFromRecycleBinResult.add_member(:return, Shapes::ShapeRef.new(shape: Boolean, location_name: "return"))
    RestoreImageFromRecycleBinResult.struct_class = Types::RestoreImageFromRecycleBinResult

    RestoreManagedPrefixListVersionRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    RestoreManagedPrefixListVersionRequest.add_member(:prefix_list_id, Shapes::ShapeRef.new(shape: PrefixListResourceId, required: true, location_name: "PrefixListId"))
    RestoreManagedPrefixListVersionRequest.add_member(:previous_version, Shapes::ShapeRef.new(shape: Long, required: true, location_name: "PreviousVersion"))
    RestoreManagedPrefixListVersionRequest.add_member(:current_version, Shapes::ShapeRef.new(shape: Long, required: true, location_name: "CurrentVersion"))
    RestoreManagedPrefixListVersionRequest.struct_class = Types::RestoreManagedPrefixListVersionRequest

    RestoreManagedPrefixListVersionResult.add_member(:prefix_list, Shapes::ShapeRef.new(shape: ManagedPrefixList, location_name: "prefixList"))
    RestoreManagedPrefixListVersionResult.struct_class = Types::RestoreManagedPrefixListVersionResult

    RestoreSnapshotFromRecycleBinRequest.add_member(:snapshot_id, Shapes::ShapeRef.new(shape: SnapshotId, required: true, location_name: "SnapshotId"))
    RestoreSnapshotFromRecycleBinRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    RestoreSnapshotFromRecycleBinRequest.struct_class = Types::RestoreSnapshotFromRecycleBinRequest

    RestoreSnapshotFromRecycleBinResult.add_member(:snapshot_id, Shapes::ShapeRef.new(shape: String, location_name: "snapshotId"))
    RestoreSnapshotFromRecycleBinResult.add_member(:outpost_arn, Shapes::ShapeRef.new(shape: String, location_name: "outpostArn"))
    RestoreSnapshotFromRecycleBinResult.add_member(:description, Shapes::ShapeRef.new(shape: String, location_name: "description"))
    RestoreSnapshotFromRecycleBinResult.add_member(:encrypted, Shapes::ShapeRef.new(shape: Boolean, location_name: "encrypted"))
    RestoreSnapshotFromRecycleBinResult.add_member(:owner_id, Shapes::ShapeRef.new(shape: String, location_name: "ownerId"))
    RestoreSnapshotFromRecycleBinResult.add_member(:progress, Shapes::ShapeRef.new(shape: String, location_name: "progress"))
    RestoreSnapshotFromRecycleBinResult.add_member(:start_time, Shapes::ShapeRef.new(shape: MillisecondDateTime, location_name: "startTime"))
    RestoreSnapshotFromRecycleBinResult.add_member(:state, Shapes::ShapeRef.new(shape: SnapshotState, location_name: "status"))
    RestoreSnapshotFromRecycleBinResult.add_member(:volume_id, Shapes::ShapeRef.new(shape: String, location_name: "volumeId"))
    RestoreSnapshotFromRecycleBinResult.add_member(:volume_size, Shapes::ShapeRef.new(shape: Integer, location_name: "volumeSize"))
    RestoreSnapshotFromRecycleBinResult.add_member(:sse_type, Shapes::ShapeRef.new(shape: SSEType, location_name: "sseType"))
    RestoreSnapshotFromRecycleBinResult.struct_class = Types::RestoreSnapshotFromRecycleBinResult

    RestoreSnapshotTierRequest.add_member(:snapshot_id, Shapes::ShapeRef.new(shape: SnapshotId, required: true, location_name: "SnapshotId"))
    RestoreSnapshotTierRequest.add_member(:temporary_restore_days, Shapes::ShapeRef.new(shape: RestoreSnapshotTierRequestTemporaryRestoreDays, location_name: "TemporaryRestoreDays"))
    RestoreSnapshotTierRequest.add_member(:permanent_restore, Shapes::ShapeRef.new(shape: Boolean, location_name: "PermanentRestore"))
    RestoreSnapshotTierRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    RestoreSnapshotTierRequest.struct_class = Types::RestoreSnapshotTierRequest

    RestoreSnapshotTierResult.add_member(:snapshot_id, Shapes::ShapeRef.new(shape: String, location_name: "snapshotId"))
    RestoreSnapshotTierResult.add_member(:restore_start_time, Shapes::ShapeRef.new(shape: MillisecondDateTime, location_name: "restoreStartTime"))
    RestoreSnapshotTierResult.add_member(:restore_duration, Shapes::ShapeRef.new(shape: Integer, location_name: "restoreDuration"))
    RestoreSnapshotTierResult.add_member(:is_permanent_restore, Shapes::ShapeRef.new(shape: Boolean, location_name: "isPermanentRestore"))
    RestoreSnapshotTierResult.struct_class = Types::RestoreSnapshotTierResult

    RevokeClientVpnIngressRequest.add_member(:client_vpn_endpoint_id, Shapes::ShapeRef.new(shape: ClientVpnEndpointId, required: true, location_name: "ClientVpnEndpointId"))
    RevokeClientVpnIngressRequest.add_member(:target_network_cidr, Shapes::ShapeRef.new(shape: String, required: true, location_name: "TargetNetworkCidr"))
    RevokeClientVpnIngressRequest.add_member(:access_group_id, Shapes::ShapeRef.new(shape: String, location_name: "AccessGroupId"))
    RevokeClientVpnIngressRequest.add_member(:revoke_all_groups, Shapes::ShapeRef.new(shape: Boolean, location_name: "RevokeAllGroups"))
    RevokeClientVpnIngressRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    RevokeClientVpnIngressRequest.struct_class = Types::RevokeClientVpnIngressRequest

    RevokeClientVpnIngressResult.add_member(:status, Shapes::ShapeRef.new(shape: ClientVpnAuthorizationRuleStatus, location_name: "status"))
    RevokeClientVpnIngressResult.struct_class = Types::RevokeClientVpnIngressResult

    RevokeSecurityGroupEgressRequest.add_member(:security_group_rule_ids, Shapes::ShapeRef.new(shape: SecurityGroupRuleIdList, location_name: "SecurityGroupRuleId"))
    RevokeSecurityGroupEgressRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "dryRun"))
    RevokeSecurityGroupEgressRequest.add_member(:group_id, Shapes::ShapeRef.new(shape: SecurityGroupId, required: true, location_name: "groupId"))
    RevokeSecurityGroupEgressRequest.add_member(:source_security_group_name, Shapes::ShapeRef.new(shape: String, location_name: "sourceSecurityGroupName"))
    RevokeSecurityGroupEgressRequest.add_member(:source_security_group_owner_id, Shapes::ShapeRef.new(shape: String, location_name: "sourceSecurityGroupOwnerId"))
    RevokeSecurityGroupEgressRequest.add_member(:ip_protocol, Shapes::ShapeRef.new(shape: String, location_name: "ipProtocol"))
    RevokeSecurityGroupEgressRequest.add_member(:from_port, Shapes::ShapeRef.new(shape: Integer, location_name: "fromPort"))
    RevokeSecurityGroupEgressRequest.add_member(:to_port, Shapes::ShapeRef.new(shape: Integer, location_name: "toPort"))
    RevokeSecurityGroupEgressRequest.add_member(:cidr_ip, Shapes::ShapeRef.new(shape: String, location_name: "cidrIp"))
    RevokeSecurityGroupEgressRequest.add_member(:ip_permissions, Shapes::ShapeRef.new(shape: IpPermissionList, location_name: "ipPermissions"))
    RevokeSecurityGroupEgressRequest.struct_class = Types::RevokeSecurityGroupEgressRequest

    RevokeSecurityGroupEgressResult.add_member(:return, Shapes::ShapeRef.new(shape: Boolean, location_name: "return"))
    RevokeSecurityGroupEgressResult.add_member(:unknown_ip_permissions, Shapes::ShapeRef.new(shape: IpPermissionList, location_name: "unknownIpPermissionSet"))
    RevokeSecurityGroupEgressResult.add_member(:revoked_security_group_rules, Shapes::ShapeRef.new(shape: RevokedSecurityGroupRuleList, location_name: "revokedSecurityGroupRuleSet"))
    RevokeSecurityGroupEgressResult.struct_class = Types::RevokeSecurityGroupEgressResult

    RevokeSecurityGroupIngressRequest.add_member(:cidr_ip, Shapes::ShapeRef.new(shape: String, location_name: "CidrIp"))
    RevokeSecurityGroupIngressRequest.add_member(:from_port, Shapes::ShapeRef.new(shape: Integer, location_name: "FromPort"))
    RevokeSecurityGroupIngressRequest.add_member(:group_id, Shapes::ShapeRef.new(shape: SecurityGroupId, location_name: "GroupId"))
    RevokeSecurityGroupIngressRequest.add_member(:group_name, Shapes::ShapeRef.new(shape: SecurityGroupName, location_name: "GroupName"))
    RevokeSecurityGroupIngressRequest.add_member(:ip_permissions, Shapes::ShapeRef.new(shape: IpPermissionList, location_name: "IpPermissions"))
    RevokeSecurityGroupIngressRequest.add_member(:ip_protocol, Shapes::ShapeRef.new(shape: String, location_name: "IpProtocol"))
    RevokeSecurityGroupIngressRequest.add_member(:source_security_group_name, Shapes::ShapeRef.new(shape: String, location_name: "SourceSecurityGroupName"))
    RevokeSecurityGroupIngressRequest.add_member(:source_security_group_owner_id, Shapes::ShapeRef.new(shape: String, location_name: "SourceSecurityGroupOwnerId"))
    RevokeSecurityGroupIngressRequest.add_member(:to_port, Shapes::ShapeRef.new(shape: Integer, location_name: "ToPort"))
    RevokeSecurityGroupIngressRequest.add_member(:security_group_rule_ids, Shapes::ShapeRef.new(shape: SecurityGroupRuleIdList, location_name: "SecurityGroupRuleId"))
    RevokeSecurityGroupIngressRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "dryRun"))
    RevokeSecurityGroupIngressRequest.struct_class = Types::RevokeSecurityGroupIngressRequest

    RevokeSecurityGroupIngressResult.add_member(:return, Shapes::ShapeRef.new(shape: Boolean, location_name: "return"))
    RevokeSecurityGroupIngressResult.add_member(:unknown_ip_permissions, Shapes::ShapeRef.new(shape: IpPermissionList, location_name: "unknownIpPermissionSet"))
    RevokeSecurityGroupIngressResult.add_member(:revoked_security_group_rules, Shapes::ShapeRef.new(shape: RevokedSecurityGroupRuleList, location_name: "revokedSecurityGroupRuleSet"))
    RevokeSecurityGroupIngressResult.struct_class = Types::RevokeSecurityGroupIngressResult

    RevokedSecurityGroupRule.add_member(:security_group_rule_id, Shapes::ShapeRef.new(shape: SecurityGroupRuleId, location_name: "securityGroupRuleId"))
    RevokedSecurityGroupRule.add_member(:group_id, Shapes::ShapeRef.new(shape: SecurityGroupId, location_name: "groupId"))
    RevokedSecurityGroupRule.add_member(:is_egress, Shapes::ShapeRef.new(shape: Boolean, location_name: "isEgress"))
    RevokedSecurityGroupRule.add_member(:ip_protocol, Shapes::ShapeRef.new(shape: String, location_name: "ipProtocol"))
    RevokedSecurityGroupRule.add_member(:from_port, Shapes::ShapeRef.new(shape: Integer, location_name: "fromPort"))
    RevokedSecurityGroupRule.add_member(:to_port, Shapes::ShapeRef.new(shape: Integer, location_name: "toPort"))
    RevokedSecurityGroupRule.add_member(:cidr_ipv_4, Shapes::ShapeRef.new(shape: String, location_name: "cidrIpv4"))
    RevokedSecurityGroupRule.add_member(:cidr_ipv_6, Shapes::ShapeRef.new(shape: String, location_name: "cidrIpv6"))
    RevokedSecurityGroupRule.add_member(:prefix_list_id, Shapes::ShapeRef.new(shape: PrefixListResourceId, location_name: "prefixListId"))
    RevokedSecurityGroupRule.add_member(:referenced_group_id, Shapes::ShapeRef.new(shape: SecurityGroupId, location_name: "referencedGroupId"))
    RevokedSecurityGroupRule.add_member(:description, Shapes::ShapeRef.new(shape: String, location_name: "description"))
    RevokedSecurityGroupRule.struct_class = Types::RevokedSecurityGroupRule

    RevokedSecurityGroupRuleList.member = Shapes::ShapeRef.new(shape: RevokedSecurityGroupRule, location_name: "item")

    RootDeviceTypeList.member = Shapes::ShapeRef.new(shape: RootDeviceType, location_name: "item")

    Route.add_member(:destination_cidr_block, Shapes::ShapeRef.new(shape: String, location_name: "destinationCidrBlock"))
    Route.add_member(:destination_ipv_6_cidr_block, Shapes::ShapeRef.new(shape: String, location_name: "destinationIpv6CidrBlock"))
    Route.add_member(:destination_prefix_list_id, Shapes::ShapeRef.new(shape: String, location_name: "destinationPrefixListId"))
    Route.add_member(:egress_only_internet_gateway_id, Shapes::ShapeRef.new(shape: String, location_name: "egressOnlyInternetGatewayId"))
    Route.add_member(:gateway_id, Shapes::ShapeRef.new(shape: String, location_name: "gatewayId"))
    Route.add_member(:instance_id, Shapes::ShapeRef.new(shape: String, location_name: "instanceId"))
    Route.add_member(:instance_owner_id, Shapes::ShapeRef.new(shape: String, location_name: "instanceOwnerId"))
    Route.add_member(:nat_gateway_id, Shapes::ShapeRef.new(shape: String, location_name: "natGatewayId"))
    Route.add_member(:transit_gateway_id, Shapes::ShapeRef.new(shape: String, location_name: "transitGatewayId"))
    Route.add_member(:local_gateway_id, Shapes::ShapeRef.new(shape: String, location_name: "localGatewayId"))
    Route.add_member(:carrier_gateway_id, Shapes::ShapeRef.new(shape: CarrierGatewayId, location_name: "carrierGatewayId"))
    Route.add_member(:network_interface_id, Shapes::ShapeRef.new(shape: String, location_name: "networkInterfaceId"))
    Route.add_member(:origin, Shapes::ShapeRef.new(shape: RouteOrigin, location_name: "origin"))
    Route.add_member(:state, Shapes::ShapeRef.new(shape: RouteState, location_name: "state"))
    Route.add_member(:vpc_peering_connection_id, Shapes::ShapeRef.new(shape: String, location_name: "vpcPeeringConnectionId"))
    Route.add_member(:core_network_arn, Shapes::ShapeRef.new(shape: CoreNetworkArn, location_name: "coreNetworkArn"))
    Route.struct_class = Types::Route

    RouteList.member = Shapes::ShapeRef.new(shape: Route, location_name: "item")

    RouteTable.add_member(:associations, Shapes::ShapeRef.new(shape: RouteTableAssociationList, location_name: "associationSet"))
    RouteTable.add_member(:propagating_vgws, Shapes::ShapeRef.new(shape: PropagatingVgwList, location_name: "propagatingVgwSet"))
    RouteTable.add_member(:route_table_id, Shapes::ShapeRef.new(shape: String, location_name: "routeTableId"))
    RouteTable.add_member(:routes, Shapes::ShapeRef.new(shape: RouteList, location_name: "routeSet"))
    RouteTable.add_member(:tags, Shapes::ShapeRef.new(shape: TagList, location_name: "tagSet"))
    RouteTable.add_member(:vpc_id, Shapes::ShapeRef.new(shape: String, location_name: "vpcId"))
    RouteTable.add_member(:owner_id, Shapes::ShapeRef.new(shape: String, location_name: "ownerId"))
    RouteTable.struct_class = Types::RouteTable

    RouteTableAssociation.add_member(:main, Shapes::ShapeRef.new(shape: Boolean, location_name: "main"))
    RouteTableAssociation.add_member(:route_table_association_id, Shapes::ShapeRef.new(shape: String, location_name: "routeTableAssociationId"))
    RouteTableAssociation.add_member(:route_table_id, Shapes::ShapeRef.new(shape: String, location_name: "routeTableId"))
    RouteTableAssociation.add_member(:subnet_id, Shapes::ShapeRef.new(shape: String, location_name: "subnetId"))
    RouteTableAssociation.add_member(:gateway_id, Shapes::ShapeRef.new(shape: String, location_name: "gatewayId"))
    RouteTableAssociation.add_member(:association_state, Shapes::ShapeRef.new(shape: RouteTableAssociationState, location_name: "associationState"))
    RouteTableAssociation.struct_class = Types::RouteTableAssociation

    RouteTableAssociationList.member = Shapes::ShapeRef.new(shape: RouteTableAssociation, location_name: "item")

    RouteTableAssociationState.add_member(:state, Shapes::ShapeRef.new(shape: RouteTableAssociationStateCode, location_name: "state"))
    RouteTableAssociationState.add_member(:status_message, Shapes::ShapeRef.new(shape: String, location_name: "statusMessage"))
    RouteTableAssociationState.struct_class = Types::RouteTableAssociationState

    RouteTableIdStringList.member = Shapes::ShapeRef.new(shape: RouteTableId, location_name: "item")

    RouteTableList.member = Shapes::ShapeRef.new(shape: RouteTable, location_name: "item")

    RuleGroupRuleOptionsPair.add_member(:rule_group_arn, Shapes::ShapeRef.new(shape: ResourceArn, location_name: "ruleGroupArn"))
    RuleGroupRuleOptionsPair.add_member(:rule_options, Shapes::ShapeRef.new(shape: RuleOptionList, location_name: "ruleOptionSet"))
    RuleGroupRuleOptionsPair.struct_class = Types::RuleGroupRuleOptionsPair

    RuleGroupRuleOptionsPairList.member = Shapes::ShapeRef.new(shape: RuleGroupRuleOptionsPair, location_name: "item")

    RuleGroupTypePair.add_member(:rule_group_arn, Shapes::ShapeRef.new(shape: ResourceArn, location_name: "ruleGroupArn"))
    RuleGroupTypePair.add_member(:rule_group_type, Shapes::ShapeRef.new(shape: String, location_name: "ruleGroupType"))
    RuleGroupTypePair.struct_class = Types::RuleGroupTypePair

    RuleGroupTypePairList.member = Shapes::ShapeRef.new(shape: RuleGroupTypePair, location_name: "item")

    RuleOption.add_member(:keyword, Shapes::ShapeRef.new(shape: String, location_name: "keyword"))
    RuleOption.add_member(:settings, Shapes::ShapeRef.new(shape: StringList, location_name: "settingSet"))
    RuleOption.struct_class = Types::RuleOption

    RuleOptionList.member = Shapes::ShapeRef.new(shape: RuleOption, location_name: "item")

    RunInstancesMonitoringEnabled.add_member(:enabled, Shapes::ShapeRef.new(shape: Boolean, required: true, location_name: "enabled"))
    RunInstancesMonitoringEnabled.struct_class = Types::RunInstancesMonitoringEnabled

    RunInstancesRequest.add_member(:block_device_mappings, Shapes::ShapeRef.new(shape: BlockDeviceMappingRequestList, location_name: "BlockDeviceMapping"))
    RunInstancesRequest.add_member(:image_id, Shapes::ShapeRef.new(shape: ImageId, location_name: "ImageId"))
    RunInstancesRequest.add_member(:instance_type, Shapes::ShapeRef.new(shape: InstanceType, location_name: "InstanceType"))
    RunInstancesRequest.add_member(:ipv_6_address_count, Shapes::ShapeRef.new(shape: Integer, location_name: "Ipv6AddressCount"))
    RunInstancesRequest.add_member(:ipv_6_addresses, Shapes::ShapeRef.new(shape: InstanceIpv6AddressList, location_name: "Ipv6Address"))
    RunInstancesRequest.add_member(:kernel_id, Shapes::ShapeRef.new(shape: KernelId, location_name: "KernelId"))
    RunInstancesRequest.add_member(:key_name, Shapes::ShapeRef.new(shape: KeyPairName, location_name: "KeyName"))
    RunInstancesRequest.add_member(:max_count, Shapes::ShapeRef.new(shape: Integer, required: true, location_name: "MaxCount"))
    RunInstancesRequest.add_member(:min_count, Shapes::ShapeRef.new(shape: Integer, required: true, location_name: "MinCount"))
    RunInstancesRequest.add_member(:monitoring, Shapes::ShapeRef.new(shape: RunInstancesMonitoringEnabled, location_name: "Monitoring"))
    RunInstancesRequest.add_member(:placement, Shapes::ShapeRef.new(shape: Placement, location_name: "Placement"))
    RunInstancesRequest.add_member(:ramdisk_id, Shapes::ShapeRef.new(shape: RamdiskId, location_name: "RamdiskId"))
    RunInstancesRequest.add_member(:security_group_ids, Shapes::ShapeRef.new(shape: SecurityGroupIdStringList, location_name: "SecurityGroupId"))
    RunInstancesRequest.add_member(:security_groups, Shapes::ShapeRef.new(shape: SecurityGroupStringList, location_name: "SecurityGroup"))
    RunInstancesRequest.add_member(:subnet_id, Shapes::ShapeRef.new(shape: SubnetId, location_name: "SubnetId"))
    RunInstancesRequest.add_member(:user_data, Shapes::ShapeRef.new(shape: RunInstancesUserData, location_name: "UserData"))
    RunInstancesRequest.add_member(:elastic_gpu_specification, Shapes::ShapeRef.new(shape: ElasticGpuSpecifications, location_name: "ElasticGpuSpecification"))
    RunInstancesRequest.add_member(:elastic_inference_accelerators, Shapes::ShapeRef.new(shape: ElasticInferenceAccelerators, location_name: "ElasticInferenceAccelerator"))
    RunInstancesRequest.add_member(:tag_specifications, Shapes::ShapeRef.new(shape: TagSpecificationList, location_name: "TagSpecification"))
    RunInstancesRequest.add_member(:launch_template, Shapes::ShapeRef.new(shape: LaunchTemplateSpecification, location_name: "LaunchTemplate"))
    RunInstancesRequest.add_member(:instance_market_options, Shapes::ShapeRef.new(shape: InstanceMarketOptionsRequest, location_name: "InstanceMarketOptions"))
    RunInstancesRequest.add_member(:credit_specification, Shapes::ShapeRef.new(shape: CreditSpecificationRequest, location_name: "CreditSpecification"))
    RunInstancesRequest.add_member(:cpu_options, Shapes::ShapeRef.new(shape: CpuOptionsRequest, location_name: "CpuOptions"))
    RunInstancesRequest.add_member(:capacity_reservation_specification, Shapes::ShapeRef.new(shape: CapacityReservationSpecification, location_name: "CapacityReservationSpecification"))
    RunInstancesRequest.add_member(:hibernation_options, Shapes::ShapeRef.new(shape: HibernationOptionsRequest, location_name: "HibernationOptions"))
    RunInstancesRequest.add_member(:license_specifications, Shapes::ShapeRef.new(shape: LicenseSpecificationListRequest, location_name: "LicenseSpecification"))
    RunInstancesRequest.add_member(:metadata_options, Shapes::ShapeRef.new(shape: InstanceMetadataOptionsRequest, location_name: "MetadataOptions"))
    RunInstancesRequest.add_member(:enclave_options, Shapes::ShapeRef.new(shape: EnclaveOptionsRequest, location_name: "EnclaveOptions"))
    RunInstancesRequest.add_member(:private_dns_name_options, Shapes::ShapeRef.new(shape: PrivateDnsNameOptionsRequest, location_name: "PrivateDnsNameOptions"))
    RunInstancesRequest.add_member(:maintenance_options, Shapes::ShapeRef.new(shape: InstanceMaintenanceOptionsRequest, location_name: "MaintenanceOptions"))
    RunInstancesRequest.add_member(:disable_api_stop, Shapes::ShapeRef.new(shape: Boolean, location_name: "DisableApiStop"))
    RunInstancesRequest.add_member(:enable_primary_ipv_6, Shapes::ShapeRef.new(shape: Boolean, location_name: "EnablePrimaryIpv6"))
    RunInstancesRequest.add_member(:network_performance_options, Shapes::ShapeRef.new(shape: InstanceNetworkPerformanceOptionsRequest, location_name: "NetworkPerformanceOptions"))
    RunInstancesRequest.add_member(:operator, Shapes::ShapeRef.new(shape: OperatorRequest, location_name: "Operator"))
    RunInstancesRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "dryRun"))
    RunInstancesRequest.add_member(:disable_api_termination, Shapes::ShapeRef.new(shape: Boolean, location_name: "disableApiTermination"))
    RunInstancesRequest.add_member(:instance_initiated_shutdown_behavior, Shapes::ShapeRef.new(shape: ShutdownBehavior, location_name: "instanceInitiatedShutdownBehavior"))
    RunInstancesRequest.add_member(:private_ip_address, Shapes::ShapeRef.new(shape: String, location_name: "privateIpAddress"))
    RunInstancesRequest.add_member(:client_token, Shapes::ShapeRef.new(shape: String, location_name: "clientToken", metadata: {"idempotencyToken"=>true}))
    RunInstancesRequest.add_member(:additional_info, Shapes::ShapeRef.new(shape: String, location_name: "additionalInfo"))
    RunInstancesRequest.add_member(:network_interfaces, Shapes::ShapeRef.new(shape: InstanceNetworkInterfaceSpecificationList, location_name: "networkInterface"))
    RunInstancesRequest.add_member(:iam_instance_profile, Shapes::ShapeRef.new(shape: IamInstanceProfileSpecification, location_name: "iamInstanceProfile"))
    RunInstancesRequest.add_member(:ebs_optimized, Shapes::ShapeRef.new(shape: Boolean, location_name: "ebsOptimized"))
    RunInstancesRequest.struct_class = Types::RunInstancesRequest

    RunScheduledInstancesRequest.add_member(:client_token, Shapes::ShapeRef.new(shape: String, location_name: "ClientToken", metadata: {"idempotencyToken"=>true}))
    RunScheduledInstancesRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    RunScheduledInstancesRequest.add_member(:instance_count, Shapes::ShapeRef.new(shape: Integer, location_name: "InstanceCount"))
    RunScheduledInstancesRequest.add_member(:launch_specification, Shapes::ShapeRef.new(shape: ScheduledInstancesLaunchSpecification, required: true, location_name: "LaunchSpecification"))
    RunScheduledInstancesRequest.add_member(:scheduled_instance_id, Shapes::ShapeRef.new(shape: ScheduledInstanceId, required: true, location_name: "ScheduledInstanceId"))
    RunScheduledInstancesRequest.struct_class = Types::RunScheduledInstancesRequest

    RunScheduledInstancesResult.add_member(:instance_id_set, Shapes::ShapeRef.new(shape: InstanceIdSet, location_name: "instanceIdSet"))
    RunScheduledInstancesResult.struct_class = Types::RunScheduledInstancesResult

    S3ObjectTag.add_member(:key, Shapes::ShapeRef.new(shape: String, location_name: "Key"))
    S3ObjectTag.add_member(:value, Shapes::ShapeRef.new(shape: String, location_name: "Value"))
    S3ObjectTag.struct_class = Types::S3ObjectTag

    S3ObjectTagList.member = Shapes::ShapeRef.new(shape: S3ObjectTag, location_name: "item")

    S3Storage.add_member(:aws_access_key_id, Shapes::ShapeRef.new(shape: String, location_name: "AWSAccessKeyId"))
    S3Storage.add_member(:bucket, Shapes::ShapeRef.new(shape: String, location_name: "bucket"))
    S3Storage.add_member(:prefix, Shapes::ShapeRef.new(shape: String, location_name: "prefix"))
    S3Storage.add_member(:upload_policy, Shapes::ShapeRef.new(shape: Blob, location_name: "uploadPolicy"))
    S3Storage.add_member(:upload_policy_signature, Shapes::ShapeRef.new(shape: S3StorageUploadPolicySignature, location_name: "uploadPolicySignature"))
    S3Storage.struct_class = Types::S3Storage

    ScheduledInstance.add_member(:availability_zone, Shapes::ShapeRef.new(shape: String, location_name: "availabilityZone"))
    ScheduledInstance.add_member(:create_date, Shapes::ShapeRef.new(shape: DateTime, location_name: "createDate"))
    ScheduledInstance.add_member(:hourly_price, Shapes::ShapeRef.new(shape: String, location_name: "hourlyPrice"))
    ScheduledInstance.add_member(:instance_count, Shapes::ShapeRef.new(shape: Integer, location_name: "instanceCount"))
    ScheduledInstance.add_member(:instance_type, Shapes::ShapeRef.new(shape: String, location_name: "instanceType"))
    ScheduledInstance.add_member(:network_platform, Shapes::ShapeRef.new(shape: String, location_name: "networkPlatform"))
    ScheduledInstance.add_member(:next_slot_start_time, Shapes::ShapeRef.new(shape: DateTime, location_name: "nextSlotStartTime"))
    ScheduledInstance.add_member(:platform, Shapes::ShapeRef.new(shape: String, location_name: "platform"))
    ScheduledInstance.add_member(:previous_slot_end_time, Shapes::ShapeRef.new(shape: DateTime, location_name: "previousSlotEndTime"))
    ScheduledInstance.add_member(:recurrence, Shapes::ShapeRef.new(shape: ScheduledInstanceRecurrence, location_name: "recurrence"))
    ScheduledInstance.add_member(:scheduled_instance_id, Shapes::ShapeRef.new(shape: String, location_name: "scheduledInstanceId"))
    ScheduledInstance.add_member(:slot_duration_in_hours, Shapes::ShapeRef.new(shape: Integer, location_name: "slotDurationInHours"))
    ScheduledInstance.add_member(:term_end_date, Shapes::ShapeRef.new(shape: DateTime, location_name: "termEndDate"))
    ScheduledInstance.add_member(:term_start_date, Shapes::ShapeRef.new(shape: DateTime, location_name: "termStartDate"))
    ScheduledInstance.add_member(:total_scheduled_instance_hours, Shapes::ShapeRef.new(shape: Integer, location_name: "totalScheduledInstanceHours"))
    ScheduledInstance.struct_class = Types::ScheduledInstance

    ScheduledInstanceAvailability.add_member(:availability_zone, Shapes::ShapeRef.new(shape: String, location_name: "availabilityZone"))
    ScheduledInstanceAvailability.add_member(:available_instance_count, Shapes::ShapeRef.new(shape: Integer, location_name: "availableInstanceCount"))
    ScheduledInstanceAvailability.add_member(:first_slot_start_time, Shapes::ShapeRef.new(shape: DateTime, location_name: "firstSlotStartTime"))
    ScheduledInstanceAvailability.add_member(:hourly_price, Shapes::ShapeRef.new(shape: String, location_name: "hourlyPrice"))
    ScheduledInstanceAvailability.add_member(:instance_type, Shapes::ShapeRef.new(shape: String, location_name: "instanceType"))
    ScheduledInstanceAvailability.add_member(:max_term_duration_in_days, Shapes::ShapeRef.new(shape: Integer, location_name: "maxTermDurationInDays"))
    ScheduledInstanceAvailability.add_member(:min_term_duration_in_days, Shapes::ShapeRef.new(shape: Integer, location_name: "minTermDurationInDays"))
    ScheduledInstanceAvailability.add_member(:network_platform, Shapes::ShapeRef.new(shape: String, location_name: "networkPlatform"))
    ScheduledInstanceAvailability.add_member(:platform, Shapes::ShapeRef.new(shape: String, location_name: "platform"))
    ScheduledInstanceAvailability.add_member(:purchase_token, Shapes::ShapeRef.new(shape: String, location_name: "purchaseToken"))
    ScheduledInstanceAvailability.add_member(:recurrence, Shapes::ShapeRef.new(shape: ScheduledInstanceRecurrence, location_name: "recurrence"))
    ScheduledInstanceAvailability.add_member(:slot_duration_in_hours, Shapes::ShapeRef.new(shape: Integer, location_name: "slotDurationInHours"))
    ScheduledInstanceAvailability.add_member(:total_scheduled_instance_hours, Shapes::ShapeRef.new(shape: Integer, location_name: "totalScheduledInstanceHours"))
    ScheduledInstanceAvailability.struct_class = Types::ScheduledInstanceAvailability

    ScheduledInstanceAvailabilitySet.member = Shapes::ShapeRef.new(shape: ScheduledInstanceAvailability, location_name: "item")

    ScheduledInstanceIdRequestSet.member = Shapes::ShapeRef.new(shape: ScheduledInstanceId, location_name: "ScheduledInstanceId")

    ScheduledInstanceRecurrence.add_member(:frequency, Shapes::ShapeRef.new(shape: String, location_name: "frequency"))
    ScheduledInstanceRecurrence.add_member(:interval, Shapes::ShapeRef.new(shape: Integer, location_name: "interval"))
    ScheduledInstanceRecurrence.add_member(:occurrence_day_set, Shapes::ShapeRef.new(shape: OccurrenceDaySet, location_name: "occurrenceDaySet"))
    ScheduledInstanceRecurrence.add_member(:occurrence_relative_to_end, Shapes::ShapeRef.new(shape: Boolean, location_name: "occurrenceRelativeToEnd"))
    ScheduledInstanceRecurrence.add_member(:occurrence_unit, Shapes::ShapeRef.new(shape: String, location_name: "occurrenceUnit"))
    ScheduledInstanceRecurrence.struct_class = Types::ScheduledInstanceRecurrence

    ScheduledInstanceRecurrenceRequest.add_member(:frequency, Shapes::ShapeRef.new(shape: String, location_name: "Frequency"))
    ScheduledInstanceRecurrenceRequest.add_member(:interval, Shapes::ShapeRef.new(shape: Integer, location_name: "Interval"))
    ScheduledInstanceRecurrenceRequest.add_member(:occurrence_days, Shapes::ShapeRef.new(shape: OccurrenceDayRequestSet, location_name: "OccurrenceDay"))
    ScheduledInstanceRecurrenceRequest.add_member(:occurrence_relative_to_end, Shapes::ShapeRef.new(shape: Boolean, location_name: "OccurrenceRelativeToEnd"))
    ScheduledInstanceRecurrenceRequest.add_member(:occurrence_unit, Shapes::ShapeRef.new(shape: String, location_name: "OccurrenceUnit"))
    ScheduledInstanceRecurrenceRequest.struct_class = Types::ScheduledInstanceRecurrenceRequest

    ScheduledInstanceSet.member = Shapes::ShapeRef.new(shape: ScheduledInstance, location_name: "item")

    ScheduledInstancesBlockDeviceMapping.add_member(:device_name, Shapes::ShapeRef.new(shape: String, location_name: "DeviceName"))
    ScheduledInstancesBlockDeviceMapping.add_member(:ebs, Shapes::ShapeRef.new(shape: ScheduledInstancesEbs, location_name: "Ebs"))
    ScheduledInstancesBlockDeviceMapping.add_member(:no_device, Shapes::ShapeRef.new(shape: String, location_name: "NoDevice"))
    ScheduledInstancesBlockDeviceMapping.add_member(:virtual_name, Shapes::ShapeRef.new(shape: String, location_name: "VirtualName"))
    ScheduledInstancesBlockDeviceMapping.struct_class = Types::ScheduledInstancesBlockDeviceMapping

    ScheduledInstancesBlockDeviceMappingSet.member = Shapes::ShapeRef.new(shape: ScheduledInstancesBlockDeviceMapping, location_name: "BlockDeviceMapping")

    ScheduledInstancesEbs.add_member(:delete_on_termination, Shapes::ShapeRef.new(shape: Boolean, location_name: "DeleteOnTermination"))
    ScheduledInstancesEbs.add_member(:encrypted, Shapes::ShapeRef.new(shape: Boolean, location_name: "Encrypted"))
    ScheduledInstancesEbs.add_member(:iops, Shapes::ShapeRef.new(shape: Integer, location_name: "Iops"))
    ScheduledInstancesEbs.add_member(:snapshot_id, Shapes::ShapeRef.new(shape: SnapshotId, location_name: "SnapshotId"))
    ScheduledInstancesEbs.add_member(:volume_size, Shapes::ShapeRef.new(shape: Integer, location_name: "VolumeSize"))
    ScheduledInstancesEbs.add_member(:volume_type, Shapes::ShapeRef.new(shape: String, location_name: "VolumeType"))
    ScheduledInstancesEbs.struct_class = Types::ScheduledInstancesEbs

    ScheduledInstancesIamInstanceProfile.add_member(:arn, Shapes::ShapeRef.new(shape: String, location_name: "Arn"))
    ScheduledInstancesIamInstanceProfile.add_member(:name, Shapes::ShapeRef.new(shape: String, location_name: "Name"))
    ScheduledInstancesIamInstanceProfile.struct_class = Types::ScheduledInstancesIamInstanceProfile

    ScheduledInstancesIpv6Address.add_member(:ipv_6_address, Shapes::ShapeRef.new(shape: Ipv6Address, location_name: "Ipv6Address"))
    ScheduledInstancesIpv6Address.struct_class = Types::ScheduledInstancesIpv6Address

    ScheduledInstancesIpv6AddressList.member = Shapes::ShapeRef.new(shape: ScheduledInstancesIpv6Address, location_name: "Ipv6Address")

    ScheduledInstancesLaunchSpecification.add_member(:block_device_mappings, Shapes::ShapeRef.new(shape: ScheduledInstancesBlockDeviceMappingSet, location_name: "BlockDeviceMapping"))
    ScheduledInstancesLaunchSpecification.add_member(:ebs_optimized, Shapes::ShapeRef.new(shape: Boolean, location_name: "EbsOptimized"))
    ScheduledInstancesLaunchSpecification.add_member(:iam_instance_profile, Shapes::ShapeRef.new(shape: ScheduledInstancesIamInstanceProfile, location_name: "IamInstanceProfile"))
    ScheduledInstancesLaunchSpecification.add_member(:image_id, Shapes::ShapeRef.new(shape: ImageId, required: true, location_name: "ImageId"))
    ScheduledInstancesLaunchSpecification.add_member(:instance_type, Shapes::ShapeRef.new(shape: String, location_name: "InstanceType"))
    ScheduledInstancesLaunchSpecification.add_member(:kernel_id, Shapes::ShapeRef.new(shape: KernelId, location_name: "KernelId"))
    ScheduledInstancesLaunchSpecification.add_member(:key_name, Shapes::ShapeRef.new(shape: KeyPairName, location_name: "KeyName"))
    ScheduledInstancesLaunchSpecification.add_member(:monitoring, Shapes::ShapeRef.new(shape: ScheduledInstancesMonitoring, location_name: "Monitoring"))
    ScheduledInstancesLaunchSpecification.add_member(:network_interfaces, Shapes::ShapeRef.new(shape: ScheduledInstancesNetworkInterfaceSet, location_name: "NetworkInterface"))
    ScheduledInstancesLaunchSpecification.add_member(:placement, Shapes::ShapeRef.new(shape: ScheduledInstancesPlacement, location_name: "Placement"))
    ScheduledInstancesLaunchSpecification.add_member(:ramdisk_id, Shapes::ShapeRef.new(shape: RamdiskId, location_name: "RamdiskId"))
    ScheduledInstancesLaunchSpecification.add_member(:security_group_ids, Shapes::ShapeRef.new(shape: ScheduledInstancesSecurityGroupIdSet, location_name: "SecurityGroupId"))
    ScheduledInstancesLaunchSpecification.add_member(:subnet_id, Shapes::ShapeRef.new(shape: SubnetId, location_name: "SubnetId"))
    ScheduledInstancesLaunchSpecification.add_member(:user_data, Shapes::ShapeRef.new(shape: String, location_name: "UserData"))
    ScheduledInstancesLaunchSpecification.struct_class = Types::ScheduledInstancesLaunchSpecification

    ScheduledInstancesMonitoring.add_member(:enabled, Shapes::ShapeRef.new(shape: Boolean, location_name: "Enabled"))
    ScheduledInstancesMonitoring.struct_class = Types::ScheduledInstancesMonitoring

    ScheduledInstancesNetworkInterface.add_member(:associate_public_ip_address, Shapes::ShapeRef.new(shape: Boolean, location_name: "AssociatePublicIpAddress"))
    ScheduledInstancesNetworkInterface.add_member(:delete_on_termination, Shapes::ShapeRef.new(shape: Boolean, location_name: "DeleteOnTermination"))
    ScheduledInstancesNetworkInterface.add_member(:description, Shapes::ShapeRef.new(shape: String, location_name: "Description"))
    ScheduledInstancesNetworkInterface.add_member(:device_index, Shapes::ShapeRef.new(shape: Integer, location_name: "DeviceIndex"))
    ScheduledInstancesNetworkInterface.add_member(:groups, Shapes::ShapeRef.new(shape: ScheduledInstancesSecurityGroupIdSet, location_name: "Group"))
    ScheduledInstancesNetworkInterface.add_member(:ipv_6_address_count, Shapes::ShapeRef.new(shape: Integer, location_name: "Ipv6AddressCount"))
    ScheduledInstancesNetworkInterface.add_member(:ipv_6_addresses, Shapes::ShapeRef.new(shape: ScheduledInstancesIpv6AddressList, location_name: "Ipv6Address"))
    ScheduledInstancesNetworkInterface.add_member(:network_interface_id, Shapes::ShapeRef.new(shape: NetworkInterfaceId, location_name: "NetworkInterfaceId"))
    ScheduledInstancesNetworkInterface.add_member(:private_ip_address, Shapes::ShapeRef.new(shape: String, location_name: "PrivateIpAddress"))
    ScheduledInstancesNetworkInterface.add_member(:private_ip_address_configs, Shapes::ShapeRef.new(shape: PrivateIpAddressConfigSet, location_name: "PrivateIpAddressConfig"))
    ScheduledInstancesNetworkInterface.add_member(:secondary_private_ip_address_count, Shapes::ShapeRef.new(shape: Integer, location_name: "SecondaryPrivateIpAddressCount"))
    ScheduledInstancesNetworkInterface.add_member(:subnet_id, Shapes::ShapeRef.new(shape: SubnetId, location_name: "SubnetId"))
    ScheduledInstancesNetworkInterface.struct_class = Types::ScheduledInstancesNetworkInterface

    ScheduledInstancesNetworkInterfaceSet.member = Shapes::ShapeRef.new(shape: ScheduledInstancesNetworkInterface, location_name: "NetworkInterface")

    ScheduledInstancesPlacement.add_member(:availability_zone, Shapes::ShapeRef.new(shape: String, location_name: "AvailabilityZone"))
    ScheduledInstancesPlacement.add_member(:group_name, Shapes::ShapeRef.new(shape: PlacementGroupName, location_name: "GroupName"))
    ScheduledInstancesPlacement.struct_class = Types::ScheduledInstancesPlacement

    ScheduledInstancesPrivateIpAddressConfig.add_member(:primary, Shapes::ShapeRef.new(shape: Boolean, location_name: "Primary"))
    ScheduledInstancesPrivateIpAddressConfig.add_member(:private_ip_address, Shapes::ShapeRef.new(shape: String, location_name: "PrivateIpAddress"))
    ScheduledInstancesPrivateIpAddressConfig.struct_class = Types::ScheduledInstancesPrivateIpAddressConfig

    ScheduledInstancesSecurityGroupIdSet.member = Shapes::ShapeRef.new(shape: SecurityGroupId, location_name: "SecurityGroupId")

    SearchLocalGatewayRoutesRequest.add_member(:local_gateway_route_table_id, Shapes::ShapeRef.new(shape: LocalGatewayRoutetableId, required: true, location_name: "LocalGatewayRouteTableId"))
    SearchLocalGatewayRoutesRequest.add_member(:filters, Shapes::ShapeRef.new(shape: FilterList, location_name: "Filter"))
    SearchLocalGatewayRoutesRequest.add_member(:max_results, Shapes::ShapeRef.new(shape: MaxResults, location_name: "MaxResults"))
    SearchLocalGatewayRoutesRequest.add_member(:next_token, Shapes::ShapeRef.new(shape: String, location_name: "NextToken"))
    SearchLocalGatewayRoutesRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    SearchLocalGatewayRoutesRequest.struct_class = Types::SearchLocalGatewayRoutesRequest

    SearchLocalGatewayRoutesResult.add_member(:routes, Shapes::ShapeRef.new(shape: LocalGatewayRouteList, location_name: "routeSet"))
    SearchLocalGatewayRoutesResult.add_member(:next_token, Shapes::ShapeRef.new(shape: String, location_name: "nextToken"))
    SearchLocalGatewayRoutesResult.struct_class = Types::SearchLocalGatewayRoutesResult

    SearchTransitGatewayMulticastGroupsRequest.add_member(:transit_gateway_multicast_domain_id, Shapes::ShapeRef.new(shape: TransitGatewayMulticastDomainId, required: true, location_name: "TransitGatewayMulticastDomainId"))
    SearchTransitGatewayMulticastGroupsRequest.add_member(:filters, Shapes::ShapeRef.new(shape: FilterList, location_name: "Filter"))
    SearchTransitGatewayMulticastGroupsRequest.add_member(:max_results, Shapes::ShapeRef.new(shape: TransitGatewayMaxResults, location_name: "MaxResults"))
    SearchTransitGatewayMulticastGroupsRequest.add_member(:next_token, Shapes::ShapeRef.new(shape: String, location_name: "NextToken"))
    SearchTransitGatewayMulticastGroupsRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    SearchTransitGatewayMulticastGroupsRequest.struct_class = Types::SearchTransitGatewayMulticastGroupsRequest

    SearchTransitGatewayMulticastGroupsResult.add_member(:multicast_groups, Shapes::ShapeRef.new(shape: TransitGatewayMulticastGroupList, location_name: "multicastGroups"))
    SearchTransitGatewayMulticastGroupsResult.add_member(:next_token, Shapes::ShapeRef.new(shape: String, location_name: "nextToken"))
    SearchTransitGatewayMulticastGroupsResult.struct_class = Types::SearchTransitGatewayMulticastGroupsResult

    SearchTransitGatewayRoutesRequest.add_member(:transit_gateway_route_table_id, Shapes::ShapeRef.new(shape: TransitGatewayRouteTableId, required: true, location_name: "TransitGatewayRouteTableId"))
    SearchTransitGatewayRoutesRequest.add_member(:filters, Shapes::ShapeRef.new(shape: FilterList, required: true, location_name: "Filter"))
    SearchTransitGatewayRoutesRequest.add_member(:max_results, Shapes::ShapeRef.new(shape: TransitGatewayMaxResults, location_name: "MaxResults"))
    SearchTransitGatewayRoutesRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    SearchTransitGatewayRoutesRequest.struct_class = Types::SearchTransitGatewayRoutesRequest

    SearchTransitGatewayRoutesResult.add_member(:routes, Shapes::ShapeRef.new(shape: TransitGatewayRouteList, location_name: "routeSet"))
    SearchTransitGatewayRoutesResult.add_member(:additional_routes_available, Shapes::ShapeRef.new(shape: Boolean, location_name: "additionalRoutesAvailable"))
    SearchTransitGatewayRoutesResult.struct_class = Types::SearchTransitGatewayRoutesResult

    SecurityGroup.add_member(:group_id, Shapes::ShapeRef.new(shape: String, location_name: "groupId"))
    SecurityGroup.add_member(:ip_permissions_egress, Shapes::ShapeRef.new(shape: IpPermissionList, location_name: "ipPermissionsEgress"))
    SecurityGroup.add_member(:tags, Shapes::ShapeRef.new(shape: TagList, location_name: "tagSet"))
    SecurityGroup.add_member(:vpc_id, Shapes::ShapeRef.new(shape: String, location_name: "vpcId"))
    SecurityGroup.add_member(:security_group_arn, Shapes::ShapeRef.new(shape: String, location_name: "securityGroupArn"))
    SecurityGroup.add_member(:owner_id, Shapes::ShapeRef.new(shape: String, location_name: "ownerId"))
    SecurityGroup.add_member(:group_name, Shapes::ShapeRef.new(shape: String, location_name: "groupName"))
    SecurityGroup.add_member(:description, Shapes::ShapeRef.new(shape: String, location_name: "groupDescription"))
    SecurityGroup.add_member(:ip_permissions, Shapes::ShapeRef.new(shape: IpPermissionList, location_name: "ipPermissions"))
    SecurityGroup.struct_class = Types::SecurityGroup

    SecurityGroupForVpc.add_member(:description, Shapes::ShapeRef.new(shape: String, location_name: "description"))
    SecurityGroupForVpc.add_member(:group_name, Shapes::ShapeRef.new(shape: String, location_name: "groupName"))
    SecurityGroupForVpc.add_member(:owner_id, Shapes::ShapeRef.new(shape: String, location_name: "ownerId"))
    SecurityGroupForVpc.add_member(:group_id, Shapes::ShapeRef.new(shape: String, location_name: "groupId"))
    SecurityGroupForVpc.add_member(:tags, Shapes::ShapeRef.new(shape: TagList, location_name: "tagSet"))
    SecurityGroupForVpc.add_member(:primary_vpc_id, Shapes::ShapeRef.new(shape: String, location_name: "primaryVpcId"))
    SecurityGroupForVpc.struct_class = Types::SecurityGroupForVpc

    SecurityGroupForVpcList.member = Shapes::ShapeRef.new(shape: SecurityGroupForVpc, location_name: "item")

    SecurityGroupIdList.member = Shapes::ShapeRef.new(shape: SecurityGroupId, location_name: "item")

    SecurityGroupIdSet.member = Shapes::ShapeRef.new(shape: SecurityGroupId, location_name: "item")

    SecurityGroupIdStringList.member = Shapes::ShapeRef.new(shape: SecurityGroupId, location_name: "SecurityGroupId")

    SecurityGroupIdStringListRequest.member = Shapes::ShapeRef.new(shape: SecurityGroupId, location_name: "SecurityGroupId")

    SecurityGroupIdentifier.add_member(:group_id, Shapes::ShapeRef.new(shape: String, location_name: "groupId"))
    SecurityGroupIdentifier.add_member(:group_name, Shapes::ShapeRef.new(shape: String, location_name: "groupName"))
    SecurityGroupIdentifier.struct_class = Types::SecurityGroupIdentifier

    SecurityGroupList.member = Shapes::ShapeRef.new(shape: SecurityGroup, location_name: "item")

    SecurityGroupReference.add_member(:group_id, Shapes::ShapeRef.new(shape: String, location_name: "groupId"))
    SecurityGroupReference.add_member(:referencing_vpc_id, Shapes::ShapeRef.new(shape: String, location_name: "referencingVpcId"))
    SecurityGroupReference.add_member(:vpc_peering_connection_id, Shapes::ShapeRef.new(shape: String, location_name: "vpcPeeringConnectionId"))
    SecurityGroupReference.add_member(:transit_gateway_id, Shapes::ShapeRef.new(shape: String, location_name: "transitGatewayId"))
    SecurityGroupReference.struct_class = Types::SecurityGroupReference

    SecurityGroupReferences.member = Shapes::ShapeRef.new(shape: SecurityGroupReference, location_name: "item")

    SecurityGroupRule.add_member(:security_group_rule_id, Shapes::ShapeRef.new(shape: SecurityGroupRuleId, location_name: "securityGroupRuleId"))
    SecurityGroupRule.add_member(:group_id, Shapes::ShapeRef.new(shape: SecurityGroupId, location_name: "groupId"))
    SecurityGroupRule.add_member(:group_owner_id, Shapes::ShapeRef.new(shape: String, location_name: "groupOwnerId"))
    SecurityGroupRule.add_member(:is_egress, Shapes::ShapeRef.new(shape: Boolean, location_name: "isEgress"))
    SecurityGroupRule.add_member(:ip_protocol, Shapes::ShapeRef.new(shape: String, location_name: "ipProtocol"))
    SecurityGroupRule.add_member(:from_port, Shapes::ShapeRef.new(shape: Integer, location_name: "fromPort"))
    SecurityGroupRule.add_member(:to_port, Shapes::ShapeRef.new(shape: Integer, location_name: "toPort"))
    SecurityGroupRule.add_member(:cidr_ipv_4, Shapes::ShapeRef.new(shape: String, location_name: "cidrIpv4"))
    SecurityGroupRule.add_member(:cidr_ipv_6, Shapes::ShapeRef.new(shape: String, location_name: "cidrIpv6"))
    SecurityGroupRule.add_member(:prefix_list_id, Shapes::ShapeRef.new(shape: PrefixListResourceId, location_name: "prefixListId"))
    SecurityGroupRule.add_member(:referenced_group_info, Shapes::ShapeRef.new(shape: ReferencedSecurityGroup, location_name: "referencedGroupInfo"))
    SecurityGroupRule.add_member(:description, Shapes::ShapeRef.new(shape: String, location_name: "description"))
    SecurityGroupRule.add_member(:tags, Shapes::ShapeRef.new(shape: TagList, location_name: "tagSet"))
    SecurityGroupRule.add_member(:security_group_rule_arn, Shapes::ShapeRef.new(shape: String, location_name: "securityGroupRuleArn"))
    SecurityGroupRule.struct_class = Types::SecurityGroupRule

    SecurityGroupRuleDescription.add_member(:security_group_rule_id, Shapes::ShapeRef.new(shape: String, location_name: "SecurityGroupRuleId"))
    SecurityGroupRuleDescription.add_member(:description, Shapes::ShapeRef.new(shape: String, location_name: "Description"))
    SecurityGroupRuleDescription.struct_class = Types::SecurityGroupRuleDescription

    SecurityGroupRuleDescriptionList.member = Shapes::ShapeRef.new(shape: SecurityGroupRuleDescription, location_name: "item")

    SecurityGroupRuleIdList.member = Shapes::ShapeRef.new(shape: String, location_name: "item")

    SecurityGroupRuleList.member = Shapes::ShapeRef.new(shape: SecurityGroupRule, location_name: "item")

    SecurityGroupRuleRequest.add_member(:ip_protocol, Shapes::ShapeRef.new(shape: String, location_name: "IpProtocol"))
    SecurityGroupRuleRequest.add_member(:from_port, Shapes::ShapeRef.new(shape: Integer, location_name: "FromPort"))
    SecurityGroupRuleRequest.add_member(:to_port, Shapes::ShapeRef.new(shape: Integer, location_name: "ToPort"))
    SecurityGroupRuleRequest.add_member(:cidr_ipv_4, Shapes::ShapeRef.new(shape: String, location_name: "CidrIpv4"))
    SecurityGroupRuleRequest.add_member(:cidr_ipv_6, Shapes::ShapeRef.new(shape: String, location_name: "CidrIpv6"))
    SecurityGroupRuleRequest.add_member(:prefix_list_id, Shapes::ShapeRef.new(shape: PrefixListResourceId, location_name: "PrefixListId"))
    SecurityGroupRuleRequest.add_member(:referenced_group_id, Shapes::ShapeRef.new(shape: SecurityGroupId, location_name: "ReferencedGroupId"))
    SecurityGroupRuleRequest.add_member(:description, Shapes::ShapeRef.new(shape: String, location_name: "Description"))
    SecurityGroupRuleRequest.struct_class = Types::SecurityGroupRuleRequest

    SecurityGroupRuleUpdate.add_member(:security_group_rule_id, Shapes::ShapeRef.new(shape: SecurityGroupRuleId, required: true, location_name: "SecurityGroupRuleId"))
    SecurityGroupRuleUpdate.add_member(:security_group_rule, Shapes::ShapeRef.new(shape: SecurityGroupRuleRequest, location_name: "SecurityGroupRule"))
    SecurityGroupRuleUpdate.struct_class = Types::SecurityGroupRuleUpdate

    SecurityGroupRuleUpdateList.member = Shapes::ShapeRef.new(shape: SecurityGroupRuleUpdate, location_name: "item")

    SecurityGroupStringList.member = Shapes::ShapeRef.new(shape: SecurityGroupName, location_name: "SecurityGroup")

    SecurityGroupVpcAssociation.add_member(:group_id, Shapes::ShapeRef.new(shape: SecurityGroupId, location_name: "groupId"))
    SecurityGroupVpcAssociation.add_member(:vpc_id, Shapes::ShapeRef.new(shape: VpcId, location_name: "vpcId"))
    SecurityGroupVpcAssociation.add_member(:vpc_owner_id, Shapes::ShapeRef.new(shape: String, location_name: "vpcOwnerId"))
    SecurityGroupVpcAssociation.add_member(:state, Shapes::ShapeRef.new(shape: SecurityGroupVpcAssociationState, location_name: "state"))
    SecurityGroupVpcAssociation.add_member(:state_reason, Shapes::ShapeRef.new(shape: String, location_name: "stateReason"))
    SecurityGroupVpcAssociation.struct_class = Types::SecurityGroupVpcAssociation

    SecurityGroupVpcAssociationList.member = Shapes::ShapeRef.new(shape: SecurityGroupVpcAssociation, location_name: "item")

    SendDiagnosticInterruptRequest.add_member(:instance_id, Shapes::ShapeRef.new(shape: InstanceId, required: true, location_name: "InstanceId"))
    SendDiagnosticInterruptRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    SendDiagnosticInterruptRequest.struct_class = Types::SendDiagnosticInterruptRequest

    ServiceConfiguration.add_member(:service_type, Shapes::ShapeRef.new(shape: ServiceTypeDetailSet, location_name: "serviceType"))
    ServiceConfiguration.add_member(:service_id, Shapes::ShapeRef.new(shape: String, location_name: "serviceId"))
    ServiceConfiguration.add_member(:service_name, Shapes::ShapeRef.new(shape: String, location_name: "serviceName"))
    ServiceConfiguration.add_member(:service_state, Shapes::ShapeRef.new(shape: ServiceState, location_name: "serviceState"))
    ServiceConfiguration.add_member(:availability_zones, Shapes::ShapeRef.new(shape: ValueStringList, location_name: "availabilityZoneSet"))
    ServiceConfiguration.add_member(:acceptance_required, Shapes::ShapeRef.new(shape: Boolean, location_name: "acceptanceRequired"))
    ServiceConfiguration.add_member(:manages_vpc_endpoints, Shapes::ShapeRef.new(shape: Boolean, location_name: "managesVpcEndpoints"))
    ServiceConfiguration.add_member(:network_load_balancer_arns, Shapes::ShapeRef.new(shape: ValueStringList, location_name: "networkLoadBalancerArnSet"))
    ServiceConfiguration.add_member(:gateway_load_balancer_arns, Shapes::ShapeRef.new(shape: ValueStringList, location_name: "gatewayLoadBalancerArnSet"))
    ServiceConfiguration.add_member(:supported_ip_address_types, Shapes::ShapeRef.new(shape: SupportedIpAddressTypes, location_name: "supportedIpAddressTypeSet"))
    ServiceConfiguration.add_member(:base_endpoint_dns_names, Shapes::ShapeRef.new(shape: ValueStringList, location_name: "baseEndpointDnsNameSet"))
    ServiceConfiguration.add_member(:private_dns_name, Shapes::ShapeRef.new(shape: String, location_name: "privateDnsName"))
    ServiceConfiguration.add_member(:private_dns_name_configuration, Shapes::ShapeRef.new(shape: PrivateDnsNameConfiguration, location_name: "privateDnsNameConfiguration"))
    ServiceConfiguration.add_member(:payer_responsibility, Shapes::ShapeRef.new(shape: PayerResponsibility, location_name: "payerResponsibility"))
    ServiceConfiguration.add_member(:tags, Shapes::ShapeRef.new(shape: TagList, location_name: "tagSet"))
    ServiceConfiguration.add_member(:supported_regions, Shapes::ShapeRef.new(shape: SupportedRegionSet, location_name: "supportedRegionSet"))
    ServiceConfiguration.add_member(:remote_access_enabled, Shapes::ShapeRef.new(shape: Boolean, location_name: "remoteAccessEnabled"))
    ServiceConfiguration.struct_class = Types::ServiceConfiguration

    ServiceConfigurationSet.member = Shapes::ShapeRef.new(shape: ServiceConfiguration, location_name: "item")

    ServiceDetail.add_member(:service_name, Shapes::ShapeRef.new(shape: String, location_name: "serviceName"))
    ServiceDetail.add_member(:service_id, Shapes::ShapeRef.new(shape: String, location_name: "serviceId"))
    ServiceDetail.add_member(:service_type, Shapes::ShapeRef.new(shape: ServiceTypeDetailSet, location_name: "serviceType"))
    ServiceDetail.add_member(:service_region, Shapes::ShapeRef.new(shape: String, location_name: "serviceRegion"))
    ServiceDetail.add_member(:availability_zones, Shapes::ShapeRef.new(shape: ValueStringList, location_name: "availabilityZoneSet"))
    ServiceDetail.add_member(:owner, Shapes::ShapeRef.new(shape: String, location_name: "owner"))
    ServiceDetail.add_member(:base_endpoint_dns_names, Shapes::ShapeRef.new(shape: ValueStringList, location_name: "baseEndpointDnsNameSet"))
    ServiceDetail.add_member(:private_dns_name, Shapes::ShapeRef.new(shape: String, location_name: "privateDnsName"))
    ServiceDetail.add_member(:private_dns_names, Shapes::ShapeRef.new(shape: PrivateDnsDetailsSet, location_name: "privateDnsNameSet"))
    ServiceDetail.add_member(:vpc_endpoint_policy_supported, Shapes::ShapeRef.new(shape: Boolean, location_name: "vpcEndpointPolicySupported"))
    ServiceDetail.add_member(:acceptance_required, Shapes::ShapeRef.new(shape: Boolean, location_name: "acceptanceRequired"))
    ServiceDetail.add_member(:manages_vpc_endpoints, Shapes::ShapeRef.new(shape: Boolean, location_name: "managesVpcEndpoints"))
    ServiceDetail.add_member(:payer_responsibility, Shapes::ShapeRef.new(shape: PayerResponsibility, location_name: "payerResponsibility"))
    ServiceDetail.add_member(:tags, Shapes::ShapeRef.new(shape: TagList, location_name: "tagSet"))
    ServiceDetail.add_member(:private_dns_name_verification_state, Shapes::ShapeRef.new(shape: DnsNameState, location_name: "privateDnsNameVerificationState"))
    ServiceDetail.add_member(:supported_ip_address_types, Shapes::ShapeRef.new(shape: SupportedIpAddressTypes, location_name: "supportedIpAddressTypeSet"))
    ServiceDetail.struct_class = Types::ServiceDetail

    ServiceDetailSet.member = Shapes::ShapeRef.new(shape: ServiceDetail, location_name: "item")

    ServiceTypeDetail.add_member(:service_type, Shapes::ShapeRef.new(shape: ServiceType, location_name: "serviceType"))
    ServiceTypeDetail.struct_class = Types::ServiceTypeDetail

    ServiceTypeDetailSet.member = Shapes::ShapeRef.new(shape: ServiceTypeDetail, location_name: "item")

    SlotDateTimeRangeRequest.add_member(:earliest_time, Shapes::ShapeRef.new(shape: DateTime, required: true, location_name: "EarliestTime"))
    SlotDateTimeRangeRequest.add_member(:latest_time, Shapes::ShapeRef.new(shape: DateTime, required: true, location_name: "LatestTime"))
    SlotDateTimeRangeRequest.struct_class = Types::SlotDateTimeRangeRequest

    SlotStartTimeRangeRequest.add_member(:earliest_time, Shapes::ShapeRef.new(shape: DateTime, location_name: "EarliestTime"))
    SlotStartTimeRangeRequest.add_member(:latest_time, Shapes::ShapeRef.new(shape: DateTime, location_name: "LatestTime"))
    SlotStartTimeRangeRequest.struct_class = Types::SlotStartTimeRangeRequest

    Snapshot.add_member(:owner_alias, Shapes::ShapeRef.new(shape: String, location_name: "ownerAlias"))
    Snapshot.add_member(:outpost_arn, Shapes::ShapeRef.new(shape: String, location_name: "outpostArn"))
    Snapshot.add_member(:tags, Shapes::ShapeRef.new(shape: TagList, location_name: "tagSet"))
    Snapshot.add_member(:storage_tier, Shapes::ShapeRef.new(shape: StorageTier, location_name: "storageTier"))
    Snapshot.add_member(:restore_expiry_time, Shapes::ShapeRef.new(shape: MillisecondDateTime, location_name: "restoreExpiryTime"))
    Snapshot.add_member(:sse_type, Shapes::ShapeRef.new(shape: SSEType, location_name: "sseType"))
    Snapshot.add_member(:availability_zone, Shapes::ShapeRef.new(shape: String, location_name: "availabilityZone"))
    Snapshot.add_member(:transfer_type, Shapes::ShapeRef.new(shape: TransferType, location_name: "transferType"))
    Snapshot.add_member(:completion_duration_minutes, Shapes::ShapeRef.new(shape: SnapshotCompletionDurationMinutesResponse, location_name: "completionDurationMinutes"))
    Snapshot.add_member(:completion_time, Shapes::ShapeRef.new(shape: MillisecondDateTime, location_name: "completionTime"))
    Snapshot.add_member(:full_snapshot_size_in_bytes, Shapes::ShapeRef.new(shape: Long, location_name: "fullSnapshotSizeInBytes"))
    Snapshot.add_member(:snapshot_id, Shapes::ShapeRef.new(shape: String, location_name: "snapshotId"))
    Snapshot.add_member(:volume_id, Shapes::ShapeRef.new(shape: String, location_name: "volumeId"))
    Snapshot.add_member(:state, Shapes::ShapeRef.new(shape: SnapshotState, location_name: "status"))
    Snapshot.add_member(:state_message, Shapes::ShapeRef.new(shape: String, location_name: "statusMessage"))
    Snapshot.add_member(:start_time, Shapes::ShapeRef.new(shape: DateTime, location_name: "startTime"))
    Snapshot.add_member(:progress, Shapes::ShapeRef.new(shape: String, location_name: "progress"))
    Snapshot.add_member(:owner_id, Shapes::ShapeRef.new(shape: String, location_name: "ownerId"))
    Snapshot.add_member(:description, Shapes::ShapeRef.new(shape: String, location_name: "description"))
    Snapshot.add_member(:volume_size, Shapes::ShapeRef.new(shape: Integer, location_name: "volumeSize"))
    Snapshot.add_member(:encrypted, Shapes::ShapeRef.new(shape: Boolean, location_name: "encrypted"))
    Snapshot.add_member(:kms_key_id, Shapes::ShapeRef.new(shape: String, location_name: "kmsKeyId"))
    Snapshot.add_member(:data_encryption_key_id, Shapes::ShapeRef.new(shape: String, location_name: "dataEncryptionKeyId"))
    Snapshot.struct_class = Types::Snapshot

    SnapshotDetail.add_member(:description, Shapes::ShapeRef.new(shape: String, location_name: "description"))
    SnapshotDetail.add_member(:device_name, Shapes::ShapeRef.new(shape: String, location_name: "deviceName"))
    SnapshotDetail.add_member(:disk_image_size, Shapes::ShapeRef.new(shape: Double, location_name: "diskImageSize"))
    SnapshotDetail.add_member(:format, Shapes::ShapeRef.new(shape: String, location_name: "format"))
    SnapshotDetail.add_member(:progress, Shapes::ShapeRef.new(shape: String, location_name: "progress"))
    SnapshotDetail.add_member(:snapshot_id, Shapes::ShapeRef.new(shape: String, location_name: "snapshotId"))
    SnapshotDetail.add_member(:status, Shapes::ShapeRef.new(shape: String, location_name: "status"))
    SnapshotDetail.add_member(:status_message, Shapes::ShapeRef.new(shape: String, location_name: "statusMessage"))
    SnapshotDetail.add_member(:url, Shapes::ShapeRef.new(shape: SensitiveUrl, location_name: "url"))
    SnapshotDetail.add_member(:user_bucket, Shapes::ShapeRef.new(shape: UserBucketDetails, location_name: "userBucket"))
    SnapshotDetail.struct_class = Types::SnapshotDetail

    SnapshotDetailList.member = Shapes::ShapeRef.new(shape: SnapshotDetail, location_name: "item")

    SnapshotDiskContainer.add_member(:description, Shapes::ShapeRef.new(shape: String, location_name: "Description"))
    SnapshotDiskContainer.add_member(:format, Shapes::ShapeRef.new(shape: String, location_name: "Format"))
    SnapshotDiskContainer.add_member(:url, Shapes::ShapeRef.new(shape: SensitiveUrl, location_name: "Url"))
    SnapshotDiskContainer.add_member(:user_bucket, Shapes::ShapeRef.new(shape: UserBucket, location_name: "UserBucket"))
    SnapshotDiskContainer.struct_class = Types::SnapshotDiskContainer

    SnapshotIdStringList.member = Shapes::ShapeRef.new(shape: SnapshotId, location_name: "SnapshotId")

    SnapshotInfo.add_member(:description, Shapes::ShapeRef.new(shape: String, location_name: "description"))
    SnapshotInfo.add_member(:tags, Shapes::ShapeRef.new(shape: TagList, location_name: "tagSet"))
    SnapshotInfo.add_member(:encrypted, Shapes::ShapeRef.new(shape: Boolean, location_name: "encrypted"))
    SnapshotInfo.add_member(:volume_id, Shapes::ShapeRef.new(shape: String, location_name: "volumeId"))
    SnapshotInfo.add_member(:state, Shapes::ShapeRef.new(shape: SnapshotState, location_name: "state"))
    SnapshotInfo.add_member(:volume_size, Shapes::ShapeRef.new(shape: Integer, location_name: "volumeSize"))
    SnapshotInfo.add_member(:start_time, Shapes::ShapeRef.new(shape: MillisecondDateTime, location_name: "startTime"))
    SnapshotInfo.add_member(:progress, Shapes::ShapeRef.new(shape: String, location_name: "progress"))
    SnapshotInfo.add_member(:owner_id, Shapes::ShapeRef.new(shape: String, location_name: "ownerId"))
    SnapshotInfo.add_member(:snapshot_id, Shapes::ShapeRef.new(shape: String, location_name: "snapshotId"))
    SnapshotInfo.add_member(:outpost_arn, Shapes::ShapeRef.new(shape: String, location_name: "outpostArn"))
    SnapshotInfo.add_member(:sse_type, Shapes::ShapeRef.new(shape: SSEType, location_name: "sseType"))
    SnapshotInfo.add_member(:availability_zone, Shapes::ShapeRef.new(shape: String, location_name: "availabilityZone"))
    SnapshotInfo.struct_class = Types::SnapshotInfo

    SnapshotList.member = Shapes::ShapeRef.new(shape: Snapshot, location_name: "item")

    SnapshotRecycleBinInfo.add_member(:snapshot_id, Shapes::ShapeRef.new(shape: String, location_name: "snapshotId"))
    SnapshotRecycleBinInfo.add_member(:recycle_bin_enter_time, Shapes::ShapeRef.new(shape: MillisecondDateTime, location_name: "recycleBinEnterTime"))
    SnapshotRecycleBinInfo.add_member(:recycle_bin_exit_time, Shapes::ShapeRef.new(shape: MillisecondDateTime, location_name: "recycleBinExitTime"))
    SnapshotRecycleBinInfo.add_member(:description, Shapes::ShapeRef.new(shape: String, location_name: "description"))
    SnapshotRecycleBinInfo.add_member(:volume_id, Shapes::ShapeRef.new(shape: String, location_name: "volumeId"))
    SnapshotRecycleBinInfo.struct_class = Types::SnapshotRecycleBinInfo

    SnapshotRecycleBinInfoList.member = Shapes::ShapeRef.new(shape: SnapshotRecycleBinInfo, location_name: "item")

    SnapshotSet.member = Shapes::ShapeRef.new(shape: SnapshotInfo, location_name: "item")

    SnapshotTaskDetail.add_member(:description, Shapes::ShapeRef.new(shape: String, location_name: "description"))
    SnapshotTaskDetail.add_member(:disk_image_size, Shapes::ShapeRef.new(shape: Double, location_name: "diskImageSize"))
    SnapshotTaskDetail.add_member(:encrypted, Shapes::ShapeRef.new(shape: Boolean, location_name: "encrypted"))
    SnapshotTaskDetail.add_member(:format, Shapes::ShapeRef.new(shape: String, location_name: "format"))
    SnapshotTaskDetail.add_member(:kms_key_id, Shapes::ShapeRef.new(shape: String, location_name: "kmsKeyId"))
    SnapshotTaskDetail.add_member(:progress, Shapes::ShapeRef.new(shape: String, location_name: "progress"))
    SnapshotTaskDetail.add_member(:snapshot_id, Shapes::ShapeRef.new(shape: String, location_name: "snapshotId"))
    SnapshotTaskDetail.add_member(:status, Shapes::ShapeRef.new(shape: String, location_name: "status"))
    SnapshotTaskDetail.add_member(:status_message, Shapes::ShapeRef.new(shape: String, location_name: "statusMessage"))
    SnapshotTaskDetail.add_member(:url, Shapes::ShapeRef.new(shape: SensitiveUrl, location_name: "url"))
    SnapshotTaskDetail.add_member(:user_bucket, Shapes::ShapeRef.new(shape: UserBucketDetails, location_name: "userBucket"))
    SnapshotTaskDetail.struct_class = Types::SnapshotTaskDetail

    SnapshotTierStatus.add_member(:snapshot_id, Shapes::ShapeRef.new(shape: SnapshotId, location_name: "snapshotId"))
    SnapshotTierStatus.add_member(:volume_id, Shapes::ShapeRef.new(shape: VolumeId, location_name: "volumeId"))
    SnapshotTierStatus.add_member(:status, Shapes::ShapeRef.new(shape: SnapshotState, location_name: "status"))
    SnapshotTierStatus.add_member(:owner_id, Shapes::ShapeRef.new(shape: String, location_name: "ownerId"))
    SnapshotTierStatus.add_member(:tags, Shapes::ShapeRef.new(shape: TagList, location_name: "tagSet"))
    SnapshotTierStatus.add_member(:storage_tier, Shapes::ShapeRef.new(shape: StorageTier, location_name: "storageTier"))
    SnapshotTierStatus.add_member(:last_tiering_start_time, Shapes::ShapeRef.new(shape: MillisecondDateTime, location_name: "lastTieringStartTime"))
    SnapshotTierStatus.add_member(:last_tiering_progress, Shapes::ShapeRef.new(shape: Integer, location_name: "lastTieringProgress"))
    SnapshotTierStatus.add_member(:last_tiering_operation_status, Shapes::ShapeRef.new(shape: TieringOperationStatus, location_name: "lastTieringOperationStatus"))
    SnapshotTierStatus.add_member(:last_tiering_operation_status_detail, Shapes::ShapeRef.new(shape: String, location_name: "lastTieringOperationStatusDetail"))
    SnapshotTierStatus.add_member(:archival_complete_time, Shapes::ShapeRef.new(shape: MillisecondDateTime, location_name: "archivalCompleteTime"))
    SnapshotTierStatus.add_member(:restore_expiry_time, Shapes::ShapeRef.new(shape: MillisecondDateTime, location_name: "restoreExpiryTime"))
    SnapshotTierStatus.struct_class = Types::SnapshotTierStatus

    SpotCapacityRebalance.add_member(:replacement_strategy, Shapes::ShapeRef.new(shape: ReplacementStrategy, location_name: "replacementStrategy"))
    SpotCapacityRebalance.add_member(:termination_delay, Shapes::ShapeRef.new(shape: Integer, location_name: "terminationDelay"))
    SpotCapacityRebalance.struct_class = Types::SpotCapacityRebalance

    SpotDatafeedSubscription.add_member(:bucket, Shapes::ShapeRef.new(shape: String, location_name: "bucket"))
    SpotDatafeedSubscription.add_member(:fault, Shapes::ShapeRef.new(shape: SpotInstanceStateFault, location_name: "fault"))
    SpotDatafeedSubscription.add_member(:owner_id, Shapes::ShapeRef.new(shape: String, location_name: "ownerId"))
    SpotDatafeedSubscription.add_member(:prefix, Shapes::ShapeRef.new(shape: String, location_name: "prefix"))
    SpotDatafeedSubscription.add_member(:state, Shapes::ShapeRef.new(shape: DatafeedSubscriptionState, location_name: "state"))
    SpotDatafeedSubscription.struct_class = Types::SpotDatafeedSubscription

    SpotFleetLaunchSpecification.add_member(:addressing_type, Shapes::ShapeRef.new(shape: String, location_name: "addressingType"))
    SpotFleetLaunchSpecification.add_member(:block_device_mappings, Shapes::ShapeRef.new(shape: BlockDeviceMappingList, location_name: "blockDeviceMapping"))
    SpotFleetLaunchSpecification.add_member(:ebs_optimized, Shapes::ShapeRef.new(shape: Boolean, location_name: "ebsOptimized"))
    SpotFleetLaunchSpecification.add_member(:iam_instance_profile, Shapes::ShapeRef.new(shape: IamInstanceProfileSpecification, location_name: "iamInstanceProfile"))
    SpotFleetLaunchSpecification.add_member(:image_id, Shapes::ShapeRef.new(shape: ImageId, location_name: "imageId"))
    SpotFleetLaunchSpecification.add_member(:instance_type, Shapes::ShapeRef.new(shape: InstanceType, location_name: "instanceType"))
    SpotFleetLaunchSpecification.add_member(:kernel_id, Shapes::ShapeRef.new(shape: String, location_name: "kernelId"))
    SpotFleetLaunchSpecification.add_member(:key_name, Shapes::ShapeRef.new(shape: KeyPairName, location_name: "keyName"))
    SpotFleetLaunchSpecification.add_member(:monitoring, Shapes::ShapeRef.new(shape: SpotFleetMonitoring, location_name: "monitoring"))
    SpotFleetLaunchSpecification.add_member(:network_interfaces, Shapes::ShapeRef.new(shape: InstanceNetworkInterfaceSpecificationList, location_name: "networkInterfaceSet"))
    SpotFleetLaunchSpecification.add_member(:placement, Shapes::ShapeRef.new(shape: SpotPlacement, location_name: "placement"))
    SpotFleetLaunchSpecification.add_member(:ramdisk_id, Shapes::ShapeRef.new(shape: String, location_name: "ramdiskId"))
    SpotFleetLaunchSpecification.add_member(:spot_price, Shapes::ShapeRef.new(shape: String, location_name: "spotPrice"))
    SpotFleetLaunchSpecification.add_member(:subnet_id, Shapes::ShapeRef.new(shape: SubnetId, location_name: "subnetId"))
    SpotFleetLaunchSpecification.add_member(:user_data, Shapes::ShapeRef.new(shape: SensitiveUserData, location_name: "userData"))
    SpotFleetLaunchSpecification.add_member(:weighted_capacity, Shapes::ShapeRef.new(shape: Double, location_name: "weightedCapacity"))
    SpotFleetLaunchSpecification.add_member(:tag_specifications, Shapes::ShapeRef.new(shape: SpotFleetTagSpecificationList, location_name: "tagSpecificationSet"))
    SpotFleetLaunchSpecification.add_member(:instance_requirements, Shapes::ShapeRef.new(shape: InstanceRequirements, location_name: "instanceRequirements"))
    SpotFleetLaunchSpecification.add_member(:security_groups, Shapes::ShapeRef.new(shape: GroupIdentifierList, location_name: "groupSet"))
    SpotFleetLaunchSpecification.struct_class = Types::SpotFleetLaunchSpecification

    SpotFleetMonitoring.add_member(:enabled, Shapes::ShapeRef.new(shape: Boolean, location_name: "enabled"))
    SpotFleetMonitoring.struct_class = Types::SpotFleetMonitoring

    SpotFleetRequestConfig.add_member(:activity_status, Shapes::ShapeRef.new(shape: ActivityStatus, location_name: "activityStatus"))
    SpotFleetRequestConfig.add_member(:create_time, Shapes::ShapeRef.new(shape: MillisecondDateTime, location_name: "createTime"))
    SpotFleetRequestConfig.add_member(:spot_fleet_request_config, Shapes::ShapeRef.new(shape: SpotFleetRequestConfigData, location_name: "spotFleetRequestConfig"))
    SpotFleetRequestConfig.add_member(:spot_fleet_request_id, Shapes::ShapeRef.new(shape: String, location_name: "spotFleetRequestId"))
    SpotFleetRequestConfig.add_member(:spot_fleet_request_state, Shapes::ShapeRef.new(shape: BatchState, location_name: "spotFleetRequestState"))
    SpotFleetRequestConfig.add_member(:tags, Shapes::ShapeRef.new(shape: TagList, location_name: "tagSet"))
    SpotFleetRequestConfig.struct_class = Types::SpotFleetRequestConfig

    SpotFleetRequestConfigData.add_member(:allocation_strategy, Shapes::ShapeRef.new(shape: AllocationStrategy, location_name: "allocationStrategy"))
    SpotFleetRequestConfigData.add_member(:on_demand_allocation_strategy, Shapes::ShapeRef.new(shape: OnDemandAllocationStrategy, location_name: "onDemandAllocationStrategy"))
    SpotFleetRequestConfigData.add_member(:spot_maintenance_strategies, Shapes::ShapeRef.new(shape: SpotMaintenanceStrategies, location_name: "spotMaintenanceStrategies"))
    SpotFleetRequestConfigData.add_member(:client_token, Shapes::ShapeRef.new(shape: String, location_name: "clientToken"))
    SpotFleetRequestConfigData.add_member(:excess_capacity_termination_policy, Shapes::ShapeRef.new(shape: ExcessCapacityTerminationPolicy, location_name: "excessCapacityTerminationPolicy"))
    SpotFleetRequestConfigData.add_member(:fulfilled_capacity, Shapes::ShapeRef.new(shape: Double, location_name: "fulfilledCapacity"))
    SpotFleetRequestConfigData.add_member(:on_demand_fulfilled_capacity, Shapes::ShapeRef.new(shape: Double, location_name: "onDemandFulfilledCapacity"))
    SpotFleetRequestConfigData.add_member(:iam_fleet_role, Shapes::ShapeRef.new(shape: String, required: true, location_name: "iamFleetRole"))
    SpotFleetRequestConfigData.add_member(:launch_specifications, Shapes::ShapeRef.new(shape: LaunchSpecsList, location_name: "launchSpecifications"))
    SpotFleetRequestConfigData.add_member(:launch_template_configs, Shapes::ShapeRef.new(shape: LaunchTemplateConfigList, location_name: "launchTemplateConfigs"))
    SpotFleetRequestConfigData.add_member(:spot_price, Shapes::ShapeRef.new(shape: String, location_name: "spotPrice"))
    SpotFleetRequestConfigData.add_member(:target_capacity, Shapes::ShapeRef.new(shape: Integer, required: true, location_name: "targetCapacity"))
    SpotFleetRequestConfigData.add_member(:on_demand_target_capacity, Shapes::ShapeRef.new(shape: Integer, location_name: "onDemandTargetCapacity"))
    SpotFleetRequestConfigData.add_member(:on_demand_max_total_price, Shapes::ShapeRef.new(shape: String, location_name: "onDemandMaxTotalPrice"))
    SpotFleetRequestConfigData.add_member(:spot_max_total_price, Shapes::ShapeRef.new(shape: String, location_name: "spotMaxTotalPrice"))
    SpotFleetRequestConfigData.add_member(:terminate_instances_with_expiration, Shapes::ShapeRef.new(shape: Boolean, location_name: "terminateInstancesWithExpiration"))
    SpotFleetRequestConfigData.add_member(:type, Shapes::ShapeRef.new(shape: FleetType, location_name: "type"))
    SpotFleetRequestConfigData.add_member(:valid_from, Shapes::ShapeRef.new(shape: DateTime, location_name: "validFrom"))
    SpotFleetRequestConfigData.add_member(:valid_until, Shapes::ShapeRef.new(shape: DateTime, location_name: "validUntil"))
    SpotFleetRequestConfigData.add_member(:replace_unhealthy_instances, Shapes::ShapeRef.new(shape: Boolean, location_name: "replaceUnhealthyInstances"))
    SpotFleetRequestConfigData.add_member(:instance_interruption_behavior, Shapes::ShapeRef.new(shape: InstanceInterruptionBehavior, location_name: "instanceInterruptionBehavior"))
    SpotFleetRequestConfigData.add_member(:load_balancers_config, Shapes::ShapeRef.new(shape: LoadBalancersConfig, location_name: "loadBalancersConfig"))
    SpotFleetRequestConfigData.add_member(:instance_pools_to_use_count, Shapes::ShapeRef.new(shape: Integer, location_name: "instancePoolsToUseCount"))
    SpotFleetRequestConfigData.add_member(:context, Shapes::ShapeRef.new(shape: String, location_name: "context"))
    SpotFleetRequestConfigData.add_member(:target_capacity_unit_type, Shapes::ShapeRef.new(shape: TargetCapacityUnitType, location_name: "targetCapacityUnitType"))
    SpotFleetRequestConfigData.add_member(:tag_specifications, Shapes::ShapeRef.new(shape: TagSpecificationList, location_name: "TagSpecification"))
    SpotFleetRequestConfigData.struct_class = Types::SpotFleetRequestConfigData

    SpotFleetRequestConfigSet.member = Shapes::ShapeRef.new(shape: SpotFleetRequestConfig, location_name: "item")

    SpotFleetRequestIdList.member = Shapes::ShapeRef.new(shape: SpotFleetRequestId, location_name: "item")

    SpotFleetTagSpecification.add_member(:resource_type, Shapes::ShapeRef.new(shape: ResourceType, location_name: "resourceType"))
    SpotFleetTagSpecification.add_member(:tags, Shapes::ShapeRef.new(shape: TagList, location_name: "tag"))
    SpotFleetTagSpecification.struct_class = Types::SpotFleetTagSpecification

    SpotFleetTagSpecificationList.member = Shapes::ShapeRef.new(shape: SpotFleetTagSpecification, location_name: "item")

    SpotInstanceRequest.add_member(:actual_block_hourly_price, Shapes::ShapeRef.new(shape: String, location_name: "actualBlockHourlyPrice"))
    SpotInstanceRequest.add_member(:availability_zone_group, Shapes::ShapeRef.new(shape: String, location_name: "availabilityZoneGroup"))
    SpotInstanceRequest.add_member(:block_duration_minutes, Shapes::ShapeRef.new(shape: Integer, location_name: "blockDurationMinutes"))
    SpotInstanceRequest.add_member(:create_time, Shapes::ShapeRef.new(shape: DateTime, location_name: "createTime"))
    SpotInstanceRequest.add_member(:fault, Shapes::ShapeRef.new(shape: SpotInstanceStateFault, location_name: "fault"))
    SpotInstanceRequest.add_member(:instance_id, Shapes::ShapeRef.new(shape: InstanceId, location_name: "instanceId"))
    SpotInstanceRequest.add_member(:launch_group, Shapes::ShapeRef.new(shape: String, location_name: "launchGroup"))
    SpotInstanceRequest.add_member(:launch_specification, Shapes::ShapeRef.new(shape: LaunchSpecification, location_name: "launchSpecification"))
    SpotInstanceRequest.add_member(:launched_availability_zone, Shapes::ShapeRef.new(shape: String, location_name: "launchedAvailabilityZone"))
    SpotInstanceRequest.add_member(:product_description, Shapes::ShapeRef.new(shape: RIProductDescription, location_name: "productDescription"))
    SpotInstanceRequest.add_member(:spot_instance_request_id, Shapes::ShapeRef.new(shape: String, location_name: "spotInstanceRequestId"))
    SpotInstanceRequest.add_member(:spot_price, Shapes::ShapeRef.new(shape: String, location_name: "spotPrice"))
    SpotInstanceRequest.add_member(:state, Shapes::ShapeRef.new(shape: SpotInstanceState, location_name: "state"))
    SpotInstanceRequest.add_member(:status, Shapes::ShapeRef.new(shape: SpotInstanceStatus, location_name: "status"))
    SpotInstanceRequest.add_member(:tags, Shapes::ShapeRef.new(shape: TagList, location_name: "tagSet"))
    SpotInstanceRequest.add_member(:type, Shapes::ShapeRef.new(shape: SpotInstanceType, location_name: "type"))
    SpotInstanceRequest.add_member(:valid_from, Shapes::ShapeRef.new(shape: DateTime, location_name: "validFrom"))
    SpotInstanceRequest.add_member(:valid_until, Shapes::ShapeRef.new(shape: DateTime, location_name: "validUntil"))
    SpotInstanceRequest.add_member(:instance_interruption_behavior, Shapes::ShapeRef.new(shape: InstanceInterruptionBehavior, location_name: "instanceInterruptionBehavior"))
    SpotInstanceRequest.struct_class = Types::SpotInstanceRequest

    SpotInstanceRequestIdList.member = Shapes::ShapeRef.new(shape: SpotInstanceRequestId, location_name: "SpotInstanceRequestId")

    SpotInstanceRequestList.member = Shapes::ShapeRef.new(shape: SpotInstanceRequest, location_name: "item")

    SpotInstanceStateFault.add_member(:code, Shapes::ShapeRef.new(shape: String, location_name: "code"))
    SpotInstanceStateFault.add_member(:message, Shapes::ShapeRef.new(shape: String, location_name: "message"))
    SpotInstanceStateFault.struct_class = Types::SpotInstanceStateFault

    SpotInstanceStatus.add_member(:code, Shapes::ShapeRef.new(shape: String, location_name: "code"))
    SpotInstanceStatus.add_member(:message, Shapes::ShapeRef.new(shape: String, location_name: "message"))
    SpotInstanceStatus.add_member(:update_time, Shapes::ShapeRef.new(shape: DateTime, location_name: "updateTime"))
    SpotInstanceStatus.struct_class = Types::SpotInstanceStatus

    SpotMaintenanceStrategies.add_member(:capacity_rebalance, Shapes::ShapeRef.new(shape: SpotCapacityRebalance, location_name: "capacityRebalance"))
    SpotMaintenanceStrategies.struct_class = Types::SpotMaintenanceStrategies

    SpotMarketOptions.add_member(:max_price, Shapes::ShapeRef.new(shape: String, location_name: "MaxPrice"))
    SpotMarketOptions.add_member(:spot_instance_type, Shapes::ShapeRef.new(shape: SpotInstanceType, location_name: "SpotInstanceType"))
    SpotMarketOptions.add_member(:block_duration_minutes, Shapes::ShapeRef.new(shape: Integer, location_name: "BlockDurationMinutes"))
    SpotMarketOptions.add_member(:valid_until, Shapes::ShapeRef.new(shape: DateTime, location_name: "ValidUntil"))
    SpotMarketOptions.add_member(:instance_interruption_behavior, Shapes::ShapeRef.new(shape: InstanceInterruptionBehavior, location_name: "InstanceInterruptionBehavior"))
    SpotMarketOptions.struct_class = Types::SpotMarketOptions

    SpotOptions.add_member(:allocation_strategy, Shapes::ShapeRef.new(shape: SpotAllocationStrategy, location_name: "allocationStrategy"))
    SpotOptions.add_member(:maintenance_strategies, Shapes::ShapeRef.new(shape: FleetSpotMaintenanceStrategies, location_name: "maintenanceStrategies"))
    SpotOptions.add_member(:instance_interruption_behavior, Shapes::ShapeRef.new(shape: SpotInstanceInterruptionBehavior, location_name: "instanceInterruptionBehavior"))
    SpotOptions.add_member(:instance_pools_to_use_count, Shapes::ShapeRef.new(shape: Integer, location_name: "instancePoolsToUseCount"))
    SpotOptions.add_member(:single_instance_type, Shapes::ShapeRef.new(shape: Boolean, location_name: "singleInstanceType"))
    SpotOptions.add_member(:single_availability_zone, Shapes::ShapeRef.new(shape: Boolean, location_name: "singleAvailabilityZone"))
    SpotOptions.add_member(:min_target_capacity, Shapes::ShapeRef.new(shape: Integer, location_name: "minTargetCapacity"))
    SpotOptions.add_member(:max_total_price, Shapes::ShapeRef.new(shape: String, location_name: "maxTotalPrice"))
    SpotOptions.struct_class = Types::SpotOptions

    SpotOptionsRequest.add_member(:allocation_strategy, Shapes::ShapeRef.new(shape: SpotAllocationStrategy, location_name: "AllocationStrategy"))
    SpotOptionsRequest.add_member(:maintenance_strategies, Shapes::ShapeRef.new(shape: FleetSpotMaintenanceStrategiesRequest, location_name: "MaintenanceStrategies"))
    SpotOptionsRequest.add_member(:instance_interruption_behavior, Shapes::ShapeRef.new(shape: SpotInstanceInterruptionBehavior, location_name: "InstanceInterruptionBehavior"))
    SpotOptionsRequest.add_member(:instance_pools_to_use_count, Shapes::ShapeRef.new(shape: Integer, location_name: "InstancePoolsToUseCount"))
    SpotOptionsRequest.add_member(:single_instance_type, Shapes::ShapeRef.new(shape: Boolean, location_name: "SingleInstanceType"))
    SpotOptionsRequest.add_member(:single_availability_zone, Shapes::ShapeRef.new(shape: Boolean, location_name: "SingleAvailabilityZone"))
    SpotOptionsRequest.add_member(:min_target_capacity, Shapes::ShapeRef.new(shape: Integer, location_name: "MinTargetCapacity"))
    SpotOptionsRequest.add_member(:max_total_price, Shapes::ShapeRef.new(shape: String, location_name: "MaxTotalPrice"))
    SpotOptionsRequest.struct_class = Types::SpotOptionsRequest

    SpotPlacement.add_member(:availability_zone, Shapes::ShapeRef.new(shape: String, location_name: "availabilityZone"))
    SpotPlacement.add_member(:group_name, Shapes::ShapeRef.new(shape: PlacementGroupName, location_name: "groupName"))
    SpotPlacement.add_member(:tenancy, Shapes::ShapeRef.new(shape: Tenancy, location_name: "tenancy"))
    SpotPlacement.struct_class = Types::SpotPlacement

    SpotPlacementScore.add_member(:region, Shapes::ShapeRef.new(shape: String, location_name: "region"))
    SpotPlacementScore.add_member(:availability_zone_id, Shapes::ShapeRef.new(shape: String, location_name: "availabilityZoneId"))
    SpotPlacementScore.add_member(:score, Shapes::ShapeRef.new(shape: Integer, location_name: "score"))
    SpotPlacementScore.struct_class = Types::SpotPlacementScore

    SpotPlacementScores.member = Shapes::ShapeRef.new(shape: SpotPlacementScore, location_name: "item")

    SpotPrice.add_member(:availability_zone, Shapes::ShapeRef.new(shape: String, location_name: "availabilityZone"))
    SpotPrice.add_member(:instance_type, Shapes::ShapeRef.new(shape: InstanceType, location_name: "instanceType"))
    SpotPrice.add_member(:product_description, Shapes::ShapeRef.new(shape: RIProductDescription, location_name: "productDescription"))
    SpotPrice.add_member(:spot_price, Shapes::ShapeRef.new(shape: String, location_name: "spotPrice"))
    SpotPrice.add_member(:timestamp, Shapes::ShapeRef.new(shape: DateTime, location_name: "timestamp"))
    SpotPrice.struct_class = Types::SpotPrice

    SpotPriceHistoryList.member = Shapes::ShapeRef.new(shape: SpotPrice, location_name: "item")

    StaleIpPermission.add_member(:from_port, Shapes::ShapeRef.new(shape: Integer, location_name: "fromPort"))
    StaleIpPermission.add_member(:ip_protocol, Shapes::ShapeRef.new(shape: String, location_name: "ipProtocol"))
    StaleIpPermission.add_member(:ip_ranges, Shapes::ShapeRef.new(shape: IpRanges, location_name: "ipRanges"))
    StaleIpPermission.add_member(:prefix_list_ids, Shapes::ShapeRef.new(shape: PrefixListIdSet, location_name: "prefixListIds"))
    StaleIpPermission.add_member(:to_port, Shapes::ShapeRef.new(shape: Integer, location_name: "toPort"))
    StaleIpPermission.add_member(:user_id_group_pairs, Shapes::ShapeRef.new(shape: UserIdGroupPairSet, location_name: "groups"))
    StaleIpPermission.struct_class = Types::StaleIpPermission

    StaleIpPermissionSet.member = Shapes::ShapeRef.new(shape: StaleIpPermission, location_name: "item")

    StaleSecurityGroup.add_member(:description, Shapes::ShapeRef.new(shape: String, location_name: "description"))
    StaleSecurityGroup.add_member(:group_id, Shapes::ShapeRef.new(shape: String, location_name: "groupId"))
    StaleSecurityGroup.add_member(:group_name, Shapes::ShapeRef.new(shape: String, location_name: "groupName"))
    StaleSecurityGroup.add_member(:stale_ip_permissions, Shapes::ShapeRef.new(shape: StaleIpPermissionSet, location_name: "staleIpPermissions"))
    StaleSecurityGroup.add_member(:stale_ip_permissions_egress, Shapes::ShapeRef.new(shape: StaleIpPermissionSet, location_name: "staleIpPermissionsEgress"))
    StaleSecurityGroup.add_member(:vpc_id, Shapes::ShapeRef.new(shape: String, location_name: "vpcId"))
    StaleSecurityGroup.struct_class = Types::StaleSecurityGroup

    StaleSecurityGroupSet.member = Shapes::ShapeRef.new(shape: StaleSecurityGroup, location_name: "item")

    StartDeclarativePoliciesReportRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    StartDeclarativePoliciesReportRequest.add_member(:s3_bucket, Shapes::ShapeRef.new(shape: String, required: true, location_name: "S3Bucket"))
    StartDeclarativePoliciesReportRequest.add_member(:s3_prefix, Shapes::ShapeRef.new(shape: String, location_name: "S3Prefix"))
    StartDeclarativePoliciesReportRequest.add_member(:target_id, Shapes::ShapeRef.new(shape: String, required: true, location_name: "TargetId"))
    StartDeclarativePoliciesReportRequest.add_member(:tag_specifications, Shapes::ShapeRef.new(shape: TagSpecificationList, location_name: "TagSpecification"))
    StartDeclarativePoliciesReportRequest.struct_class = Types::StartDeclarativePoliciesReportRequest

    StartDeclarativePoliciesReportResult.add_member(:report_id, Shapes::ShapeRef.new(shape: String, location_name: "reportId"))
    StartDeclarativePoliciesReportResult.struct_class = Types::StartDeclarativePoliciesReportResult

    StartInstancesRequest.add_member(:instance_ids, Shapes::ShapeRef.new(shape: InstanceIdStringList, required: true, location_name: "InstanceId"))
    StartInstancesRequest.add_member(:additional_info, Shapes::ShapeRef.new(shape: String, location_name: "additionalInfo"))
    StartInstancesRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "dryRun"))
    StartInstancesRequest.struct_class = Types::StartInstancesRequest

    StartInstancesResult.add_member(:starting_instances, Shapes::ShapeRef.new(shape: InstanceStateChangeList, location_name: "instancesSet"))
    StartInstancesResult.struct_class = Types::StartInstancesResult

    StartNetworkInsightsAccessScopeAnalysisRequest.add_member(:network_insights_access_scope_id, Shapes::ShapeRef.new(shape: NetworkInsightsAccessScopeId, required: true, location_name: "NetworkInsightsAccessScopeId"))
    StartNetworkInsightsAccessScopeAnalysisRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    StartNetworkInsightsAccessScopeAnalysisRequest.add_member(:tag_specifications, Shapes::ShapeRef.new(shape: TagSpecificationList, location_name: "TagSpecification"))
    StartNetworkInsightsAccessScopeAnalysisRequest.add_member(:client_token, Shapes::ShapeRef.new(shape: String, required: true, location_name: "ClientToken", metadata: {"idempotencyToken"=>true}))
    StartNetworkInsightsAccessScopeAnalysisRequest.struct_class = Types::StartNetworkInsightsAccessScopeAnalysisRequest

    StartNetworkInsightsAccessScopeAnalysisResult.add_member(:network_insights_access_scope_analysis, Shapes::ShapeRef.new(shape: NetworkInsightsAccessScopeAnalysis, location_name: "networkInsightsAccessScopeAnalysis"))
    StartNetworkInsightsAccessScopeAnalysisResult.struct_class = Types::StartNetworkInsightsAccessScopeAnalysisResult

    StartNetworkInsightsAnalysisRequest.add_member(:network_insights_path_id, Shapes::ShapeRef.new(shape: NetworkInsightsPathId, required: true, location_name: "NetworkInsightsPathId"))
    StartNetworkInsightsAnalysisRequest.add_member(:additional_accounts, Shapes::ShapeRef.new(shape: ValueStringList, location_name: "AdditionalAccount"))
    StartNetworkInsightsAnalysisRequest.add_member(:filter_in_arns, Shapes::ShapeRef.new(shape: ArnList, location_name: "FilterInArn"))
    StartNetworkInsightsAnalysisRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    StartNetworkInsightsAnalysisRequest.add_member(:tag_specifications, Shapes::ShapeRef.new(shape: TagSpecificationList, location_name: "TagSpecification"))
    StartNetworkInsightsAnalysisRequest.add_member(:client_token, Shapes::ShapeRef.new(shape: String, required: true, location_name: "ClientToken", metadata: {"idempotencyToken"=>true}))
    StartNetworkInsightsAnalysisRequest.struct_class = Types::StartNetworkInsightsAnalysisRequest

    StartNetworkInsightsAnalysisResult.add_member(:network_insights_analysis, Shapes::ShapeRef.new(shape: NetworkInsightsAnalysis, location_name: "networkInsightsAnalysis"))
    StartNetworkInsightsAnalysisResult.struct_class = Types::StartNetworkInsightsAnalysisResult

    StartVpcEndpointServicePrivateDnsVerificationRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    StartVpcEndpointServicePrivateDnsVerificationRequest.add_member(:service_id, Shapes::ShapeRef.new(shape: VpcEndpointServiceId, required: true, location_name: "ServiceId"))
    StartVpcEndpointServicePrivateDnsVerificationRequest.struct_class = Types::StartVpcEndpointServicePrivateDnsVerificationRequest

    StartVpcEndpointServicePrivateDnsVerificationResult.add_member(:return_value, Shapes::ShapeRef.new(shape: Boolean, location_name: "return"))
    StartVpcEndpointServicePrivateDnsVerificationResult.struct_class = Types::StartVpcEndpointServicePrivateDnsVerificationResult

    StateReason.add_member(:code, Shapes::ShapeRef.new(shape: String, location_name: "code"))
    StateReason.add_member(:message, Shapes::ShapeRef.new(shape: String, location_name: "message"))
    StateReason.struct_class = Types::StateReason

    StopInstancesRequest.add_member(:instance_ids, Shapes::ShapeRef.new(shape: InstanceIdStringList, required: true, location_name: "InstanceId"))
    StopInstancesRequest.add_member(:hibernate, Shapes::ShapeRef.new(shape: Boolean, location_name: "Hibernate"))
    StopInstancesRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "dryRun"))
    StopInstancesRequest.add_member(:force, Shapes::ShapeRef.new(shape: Boolean, location_name: "force"))
    StopInstancesRequest.struct_class = Types::StopInstancesRequest

    StopInstancesResult.add_member(:stopping_instances, Shapes::ShapeRef.new(shape: InstanceStateChangeList, location_name: "instancesSet"))
    StopInstancesResult.struct_class = Types::StopInstancesResult

    Storage.add_member(:s3, Shapes::ShapeRef.new(shape: S3Storage, location_name: "S3"))
    Storage.struct_class = Types::Storage

    StorageLocation.add_member(:bucket, Shapes::ShapeRef.new(shape: String, location_name: "Bucket"))
    StorageLocation.add_member(:key, Shapes::ShapeRef.new(shape: String, location_name: "Key"))
    StorageLocation.struct_class = Types::StorageLocation

    StoreImageTaskResult.add_member(:ami_id, Shapes::ShapeRef.new(shape: String, location_name: "amiId"))
    StoreImageTaskResult.add_member(:task_start_time, Shapes::ShapeRef.new(shape: MillisecondDateTime, location_name: "taskStartTime"))
    StoreImageTaskResult.add_member(:bucket, Shapes::ShapeRef.new(shape: String, location_name: "bucket"))
    StoreImageTaskResult.add_member(:s3object_key, Shapes::ShapeRef.new(shape: String, location_name: "s3objectKey"))
    StoreImageTaskResult.add_member(:progress_percentage, Shapes::ShapeRef.new(shape: Integer, location_name: "progressPercentage"))
    StoreImageTaskResult.add_member(:store_task_state, Shapes::ShapeRef.new(shape: String, location_name: "storeTaskState"))
    StoreImageTaskResult.add_member(:store_task_failure_reason, Shapes::ShapeRef.new(shape: String, location_name: "storeTaskFailureReason"))
    StoreImageTaskResult.struct_class = Types::StoreImageTaskResult

    StoreImageTaskResultSet.member = Shapes::ShapeRef.new(shape: StoreImageTaskResult, location_name: "item")

    StringList.member = Shapes::ShapeRef.new(shape: String, location_name: "item")

    Subnet.add_member(:availability_zone_id, Shapes::ShapeRef.new(shape: String, location_name: "availabilityZoneId"))
    Subnet.add_member(:enable_lni_at_device_index, Shapes::ShapeRef.new(shape: Integer, location_name: "enableLniAtDeviceIndex"))
    Subnet.add_member(:map_customer_owned_ip_on_launch, Shapes::ShapeRef.new(shape: Boolean, location_name: "mapCustomerOwnedIpOnLaunch"))
    Subnet.add_member(:customer_owned_ipv_4_pool, Shapes::ShapeRef.new(shape: CoipPoolId, location_name: "customerOwnedIpv4Pool"))
    Subnet.add_member(:owner_id, Shapes::ShapeRef.new(shape: String, location_name: "ownerId"))
    Subnet.add_member(:assign_ipv_6_address_on_creation, Shapes::ShapeRef.new(shape: Boolean, location_name: "assignIpv6AddressOnCreation"))
    Subnet.add_member(:ipv_6_cidr_block_association_set, Shapes::ShapeRef.new(shape: SubnetIpv6CidrBlockAssociationSet, location_name: "ipv6CidrBlockAssociationSet"))
    Subnet.add_member(:tags, Shapes::ShapeRef.new(shape: TagList, location_name: "tagSet"))
    Subnet.add_member(:subnet_arn, Shapes::ShapeRef.new(shape: String, location_name: "subnetArn"))
    Subnet.add_member(:outpost_arn, Shapes::ShapeRef.new(shape: String, location_name: "outpostArn"))
    Subnet.add_member(:enable_dns_64, Shapes::ShapeRef.new(shape: Boolean, location_name: "enableDns64"))
    Subnet.add_member(:ipv_6_native, Shapes::ShapeRef.new(shape: Boolean, location_name: "ipv6Native"))
    Subnet.add_member(:private_dns_name_options_on_launch, Shapes::ShapeRef.new(shape: PrivateDnsNameOptionsOnLaunch, location_name: "privateDnsNameOptionsOnLaunch"))
    Subnet.add_member(:block_public_access_states, Shapes::ShapeRef.new(shape: BlockPublicAccessStates, location_name: "blockPublicAccessStates"))
    Subnet.add_member(:subnet_id, Shapes::ShapeRef.new(shape: String, location_name: "subnetId"))
    Subnet.add_member(:state, Shapes::ShapeRef.new(shape: SubnetState, location_name: "state"))
    Subnet.add_member(:vpc_id, Shapes::ShapeRef.new(shape: String, location_name: "vpcId"))
    Subnet.add_member(:cidr_block, Shapes::ShapeRef.new(shape: String, location_name: "cidrBlock"))
    Subnet.add_member(:available_ip_address_count, Shapes::ShapeRef.new(shape: Integer, location_name: "availableIpAddressCount"))
    Subnet.add_member(:availability_zone, Shapes::ShapeRef.new(shape: String, location_name: "availabilityZone"))
    Subnet.add_member(:default_for_az, Shapes::ShapeRef.new(shape: Boolean, location_name: "defaultForAz"))
    Subnet.add_member(:map_public_ip_on_launch, Shapes::ShapeRef.new(shape: Boolean, location_name: "mapPublicIpOnLaunch"))
    Subnet.struct_class = Types::Subnet

    SubnetAssociation.add_member(:subnet_id, Shapes::ShapeRef.new(shape: String, location_name: "subnetId"))
    SubnetAssociation.add_member(:state, Shapes::ShapeRef.new(shape: TransitGatewayMulitcastDomainAssociationState, location_name: "state"))
    SubnetAssociation.struct_class = Types::SubnetAssociation

    SubnetAssociationList.member = Shapes::ShapeRef.new(shape: SubnetAssociation, location_name: "item")

    SubnetCidrBlockState.add_member(:state, Shapes::ShapeRef.new(shape: SubnetCidrBlockStateCode, location_name: "state"))
    SubnetCidrBlockState.add_member(:status_message, Shapes::ShapeRef.new(shape: String, location_name: "statusMessage"))
    SubnetCidrBlockState.struct_class = Types::SubnetCidrBlockState

    SubnetCidrReservation.add_member(:subnet_cidr_reservation_id, Shapes::ShapeRef.new(shape: SubnetCidrReservationId, location_name: "subnetCidrReservationId"))
    SubnetCidrReservation.add_member(:subnet_id, Shapes::ShapeRef.new(shape: SubnetId, location_name: "subnetId"))
    SubnetCidrReservation.add_member(:cidr, Shapes::ShapeRef.new(shape: String, location_name: "cidr"))
    SubnetCidrReservation.add_member(:reservation_type, Shapes::ShapeRef.new(shape: SubnetCidrReservationType, location_name: "reservationType"))
    SubnetCidrReservation.add_member(:owner_id, Shapes::ShapeRef.new(shape: String, location_name: "ownerId"))
    SubnetCidrReservation.add_member(:description, Shapes::ShapeRef.new(shape: String, location_name: "description"))
    SubnetCidrReservation.add_member(:tags, Shapes::ShapeRef.new(shape: TagList, location_name: "tagSet"))
    SubnetCidrReservation.struct_class = Types::SubnetCidrReservation

    SubnetCidrReservationList.member = Shapes::ShapeRef.new(shape: SubnetCidrReservation, location_name: "item")

    SubnetConfiguration.add_member(:subnet_id, Shapes::ShapeRef.new(shape: SubnetId, location_name: "SubnetId"))
    SubnetConfiguration.add_member(:ipv_4, Shapes::ShapeRef.new(shape: String, location_name: "Ipv4"))
    SubnetConfiguration.add_member(:ipv_6, Shapes::ShapeRef.new(shape: String, location_name: "Ipv6"))
    SubnetConfiguration.struct_class = Types::SubnetConfiguration

    SubnetConfigurationsList.member = Shapes::ShapeRef.new(shape: SubnetConfiguration, location_name: "item")

    SubnetIdStringList.member = Shapes::ShapeRef.new(shape: SubnetId, location_name: "SubnetId")

    SubnetIpPrefixes.add_member(:subnet_id, Shapes::ShapeRef.new(shape: String, location_name: "subnetId"))
    SubnetIpPrefixes.add_member(:ip_prefixes, Shapes::ShapeRef.new(shape: ValueStringList, location_name: "ipPrefixSet"))
    SubnetIpPrefixes.struct_class = Types::SubnetIpPrefixes

    SubnetIpPrefixesList.member = Shapes::ShapeRef.new(shape: SubnetIpPrefixes, location_name: "item")

    SubnetIpv6CidrBlockAssociation.add_member(:association_id, Shapes::ShapeRef.new(shape: SubnetCidrAssociationId, location_name: "associationId"))
    SubnetIpv6CidrBlockAssociation.add_member(:ipv_6_cidr_block, Shapes::ShapeRef.new(shape: String, location_name: "ipv6CidrBlock"))
    SubnetIpv6CidrBlockAssociation.add_member(:ipv_6_cidr_block_state, Shapes::ShapeRef.new(shape: SubnetCidrBlockState, location_name: "ipv6CidrBlockState"))
    SubnetIpv6CidrBlockAssociation.add_member(:ipv_6_address_attribute, Shapes::ShapeRef.new(shape: Ipv6AddressAttribute, location_name: "ipv6AddressAttribute"))
    SubnetIpv6CidrBlockAssociation.add_member(:ip_source, Shapes::ShapeRef.new(shape: IpSource, location_name: "ipSource"))
    SubnetIpv6CidrBlockAssociation.struct_class = Types::SubnetIpv6CidrBlockAssociation

    SubnetIpv6CidrBlockAssociationSet.member = Shapes::ShapeRef.new(shape: SubnetIpv6CidrBlockAssociation, location_name: "item")

    SubnetList.member = Shapes::ShapeRef.new(shape: Subnet, location_name: "item")

    Subscription.add_member(:source, Shapes::ShapeRef.new(shape: String, location_name: "source"))
    Subscription.add_member(:destination, Shapes::ShapeRef.new(shape: String, location_name: "destination"))
    Subscription.add_member(:metric, Shapes::ShapeRef.new(shape: MetricType, location_name: "metric"))
    Subscription.add_member(:statistic, Shapes::ShapeRef.new(shape: StatisticType, location_name: "statistic"))
    Subscription.add_member(:period, Shapes::ShapeRef.new(shape: PeriodType, location_name: "period"))
    Subscription.struct_class = Types::Subscription

    SubscriptionList.member = Shapes::ShapeRef.new(shape: Subscription, location_name: "item")

    SuccessfulInstanceCreditSpecificationItem.add_member(:instance_id, Shapes::ShapeRef.new(shape: String, location_name: "instanceId"))
    SuccessfulInstanceCreditSpecificationItem.struct_class = Types::SuccessfulInstanceCreditSpecificationItem

    SuccessfulInstanceCreditSpecificationSet.member = Shapes::ShapeRef.new(shape: SuccessfulInstanceCreditSpecificationItem, location_name: "item")

    SuccessfulQueuedPurchaseDeletion.add_member(:reserved_instances_id, Shapes::ShapeRef.new(shape: String, location_name: "reservedInstancesId"))
    SuccessfulQueuedPurchaseDeletion.struct_class = Types::SuccessfulQueuedPurchaseDeletion

    SuccessfulQueuedPurchaseDeletionSet.member = Shapes::ShapeRef.new(shape: SuccessfulQueuedPurchaseDeletion, location_name: "item")

    SupportedAdditionalProcessorFeatureList.member = Shapes::ShapeRef.new(shape: SupportedAdditionalProcessorFeature, location_name: "item")

    SupportedIpAddressTypes.member = Shapes::ShapeRef.new(shape: ServiceConnectivityType, location_name: "item")

    SupportedRegionDetail.add_member(:region, Shapes::ShapeRef.new(shape: String, location_name: "region"))
    SupportedRegionDetail.add_member(:service_state, Shapes::ShapeRef.new(shape: String, location_name: "serviceState"))
    SupportedRegionDetail.struct_class = Types::SupportedRegionDetail

    SupportedRegionSet.member = Shapes::ShapeRef.new(shape: SupportedRegionDetail, location_name: "item")

    Tag.add_member(:key, Shapes::ShapeRef.new(shape: String, location_name: "key"))
    Tag.add_member(:value, Shapes::ShapeRef.new(shape: String, location_name: "value"))
    Tag.struct_class = Types::Tag

    TagDescription.add_member(:key, Shapes::ShapeRef.new(shape: String, location_name: "key"))
    TagDescription.add_member(:resource_id, Shapes::ShapeRef.new(shape: String, location_name: "resourceId"))
    TagDescription.add_member(:resource_type, Shapes::ShapeRef.new(shape: ResourceType, location_name: "resourceType"))
    TagDescription.add_member(:value, Shapes::ShapeRef.new(shape: String, location_name: "value"))
    TagDescription.struct_class = Types::TagDescription

    TagDescriptionList.member = Shapes::ShapeRef.new(shape: TagDescription, location_name: "item")

    TagList.member = Shapes::ShapeRef.new(shape: Tag, location_name: "item")

    TagSpecification.add_member(:resource_type, Shapes::ShapeRef.new(shape: ResourceType, location_name: "resourceType"))
    TagSpecification.add_member(:tags, Shapes::ShapeRef.new(shape: TagList, location_name: "Tag"))
    TagSpecification.struct_class = Types::TagSpecification

    TagSpecificationList.member = Shapes::ShapeRef.new(shape: TagSpecification, location_name: "item")

    TargetCapacitySpecification.add_member(:total_target_capacity, Shapes::ShapeRef.new(shape: Integer, location_name: "totalTargetCapacity"))
    TargetCapacitySpecification.add_member(:on_demand_target_capacity, Shapes::ShapeRef.new(shape: Integer, location_name: "onDemandTargetCapacity"))
    TargetCapacitySpecification.add_member(:spot_target_capacity, Shapes::ShapeRef.new(shape: Integer, location_name: "spotTargetCapacity"))
    TargetCapacitySpecification.add_member(:default_target_capacity_type, Shapes::ShapeRef.new(shape: DefaultTargetCapacityType, location_name: "defaultTargetCapacityType"))
    TargetCapacitySpecification.add_member(:target_capacity_unit_type, Shapes::ShapeRef.new(shape: TargetCapacityUnitType, location_name: "targetCapacityUnitType"))
    TargetCapacitySpecification.struct_class = Types::TargetCapacitySpecification

    TargetCapacitySpecificationRequest.add_member(:total_target_capacity, Shapes::ShapeRef.new(shape: Integer, required: true, location_name: "TotalTargetCapacity"))
    TargetCapacitySpecificationRequest.add_member(:on_demand_target_capacity, Shapes::ShapeRef.new(shape: Integer, location_name: "OnDemandTargetCapacity"))
    TargetCapacitySpecificationRequest.add_member(:spot_target_capacity, Shapes::ShapeRef.new(shape: Integer, location_name: "SpotTargetCapacity"))
    TargetCapacitySpecificationRequest.add_member(:default_target_capacity_type, Shapes::ShapeRef.new(shape: DefaultTargetCapacityType, location_name: "DefaultTargetCapacityType"))
    TargetCapacitySpecificationRequest.add_member(:target_capacity_unit_type, Shapes::ShapeRef.new(shape: TargetCapacityUnitType, location_name: "TargetCapacityUnitType"))
    TargetCapacitySpecificationRequest.struct_class = Types::TargetCapacitySpecificationRequest

    TargetConfiguration.add_member(:instance_count, Shapes::ShapeRef.new(shape: Integer, location_name: "instanceCount"))
    TargetConfiguration.add_member(:offering_id, Shapes::ShapeRef.new(shape: String, location_name: "offeringId"))
    TargetConfiguration.struct_class = Types::TargetConfiguration

    TargetConfigurationRequest.add_member(:instance_count, Shapes::ShapeRef.new(shape: Integer, location_name: "InstanceCount"))
    TargetConfigurationRequest.add_member(:offering_id, Shapes::ShapeRef.new(shape: ReservedInstancesOfferingId, required: true, location_name: "OfferingId"))
    TargetConfigurationRequest.struct_class = Types::TargetConfigurationRequest

    TargetConfigurationRequestSet.member = Shapes::ShapeRef.new(shape: TargetConfigurationRequest, location_name: "TargetConfigurationRequest")

    TargetGroup.add_member(:arn, Shapes::ShapeRef.new(shape: String, location_name: "arn"))
    TargetGroup.struct_class = Types::TargetGroup

    TargetGroups.member = Shapes::ShapeRef.new(shape: TargetGroup, location_name: "item")

    TargetGroupsConfig.add_member(:target_groups, Shapes::ShapeRef.new(shape: TargetGroups, location_name: "targetGroups"))
    TargetGroupsConfig.struct_class = Types::TargetGroupsConfig

    TargetNetwork.add_member(:association_id, Shapes::ShapeRef.new(shape: String, location_name: "associationId"))
    TargetNetwork.add_member(:vpc_id, Shapes::ShapeRef.new(shape: String, location_name: "vpcId"))
    TargetNetwork.add_member(:target_network_id, Shapes::ShapeRef.new(shape: String, location_name: "targetNetworkId"))
    TargetNetwork.add_member(:client_vpn_endpoint_id, Shapes::ShapeRef.new(shape: String, location_name: "clientVpnEndpointId"))
    TargetNetwork.add_member(:status, Shapes::ShapeRef.new(shape: AssociationStatus, location_name: "status"))
    TargetNetwork.add_member(:security_groups, Shapes::ShapeRef.new(shape: ValueStringList, location_name: "securityGroups"))
    TargetNetwork.struct_class = Types::TargetNetwork

    TargetNetworkSet.member = Shapes::ShapeRef.new(shape: TargetNetwork, location_name: "item")

    TargetReservationValue.add_member(:reservation_value, Shapes::ShapeRef.new(shape: ReservationValue, location_name: "reservationValue"))
    TargetReservationValue.add_member(:target_configuration, Shapes::ShapeRef.new(shape: TargetConfiguration, location_name: "targetConfiguration"))
    TargetReservationValue.struct_class = Types::TargetReservationValue

    TargetReservationValueSet.member = Shapes::ShapeRef.new(shape: TargetReservationValue, location_name: "item")

    TerminateClientVpnConnectionsRequest.add_member(:client_vpn_endpoint_id, Shapes::ShapeRef.new(shape: ClientVpnEndpointId, required: true, location_name: "ClientVpnEndpointId"))
    TerminateClientVpnConnectionsRequest.add_member(:connection_id, Shapes::ShapeRef.new(shape: String, location_name: "ConnectionId"))
    TerminateClientVpnConnectionsRequest.add_member(:username, Shapes::ShapeRef.new(shape: String, location_name: "Username"))
    TerminateClientVpnConnectionsRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    TerminateClientVpnConnectionsRequest.struct_class = Types::TerminateClientVpnConnectionsRequest

    TerminateClientVpnConnectionsResult.add_member(:client_vpn_endpoint_id, Shapes::ShapeRef.new(shape: String, location_name: "clientVpnEndpointId"))
    TerminateClientVpnConnectionsResult.add_member(:username, Shapes::ShapeRef.new(shape: String, location_name: "username"))
    TerminateClientVpnConnectionsResult.add_member(:connection_statuses, Shapes::ShapeRef.new(shape: TerminateConnectionStatusSet, location_name: "connectionStatuses"))
    TerminateClientVpnConnectionsResult.struct_class = Types::TerminateClientVpnConnectionsResult

    TerminateConnectionStatus.add_member(:connection_id, Shapes::ShapeRef.new(shape: String, location_name: "connectionId"))
    TerminateConnectionStatus.add_member(:previous_status, Shapes::ShapeRef.new(shape: ClientVpnConnectionStatus, location_name: "previousStatus"))
    TerminateConnectionStatus.add_member(:current_status, Shapes::ShapeRef.new(shape: ClientVpnConnectionStatus, location_name: "currentStatus"))
    TerminateConnectionStatus.struct_class = Types::TerminateConnectionStatus

    TerminateConnectionStatusSet.member = Shapes::ShapeRef.new(shape: TerminateConnectionStatus, location_name: "item")

    TerminateInstancesRequest.add_member(:instance_ids, Shapes::ShapeRef.new(shape: InstanceIdStringList, required: true, location_name: "InstanceId"))
    TerminateInstancesRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "dryRun"))
    TerminateInstancesRequest.struct_class = Types::TerminateInstancesRequest

    TerminateInstancesResult.add_member(:terminating_instances, Shapes::ShapeRef.new(shape: InstanceStateChangeList, location_name: "instancesSet"))
    TerminateInstancesResult.struct_class = Types::TerminateInstancesResult

    ThreadsPerCoreList.member = Shapes::ShapeRef.new(shape: ThreadsPerCore, location_name: "item")

    ThroughResourcesStatement.add_member(:resource_statement, Shapes::ShapeRef.new(shape: ResourceStatement, location_name: "resourceStatement"))
    ThroughResourcesStatement.struct_class = Types::ThroughResourcesStatement

    ThroughResourcesStatementList.member = Shapes::ShapeRef.new(shape: ThroughResourcesStatement, location_name: "item")

    ThroughResourcesStatementRequest.add_member(:resource_statement, Shapes::ShapeRef.new(shape: ResourceStatementRequest, location_name: "ResourceStatement"))
    ThroughResourcesStatementRequest.struct_class = Types::ThroughResourcesStatementRequest

    ThroughResourcesStatementRequestList.member = Shapes::ShapeRef.new(shape: ThroughResourcesStatementRequest, location_name: "item")

    TotalLocalStorageGB.add_member(:min, Shapes::ShapeRef.new(shape: Double, location_name: "min"))
    TotalLocalStorageGB.add_member(:max, Shapes::ShapeRef.new(shape: Double, location_name: "max"))
    TotalLocalStorageGB.struct_class = Types::TotalLocalStorageGB

    TotalLocalStorageGBRequest.add_member(:min, Shapes::ShapeRef.new(shape: Double, location_name: "Min"))
    TotalLocalStorageGBRequest.add_member(:max, Shapes::ShapeRef.new(shape: Double, location_name: "Max"))
    TotalLocalStorageGBRequest.struct_class = Types::TotalLocalStorageGBRequest

    TrafficMirrorFilter.add_member(:traffic_mirror_filter_id, Shapes::ShapeRef.new(shape: String, location_name: "trafficMirrorFilterId"))
    TrafficMirrorFilter.add_member(:ingress_filter_rules, Shapes::ShapeRef.new(shape: TrafficMirrorFilterRuleList, location_name: "ingressFilterRuleSet"))
    TrafficMirrorFilter.add_member(:egress_filter_rules, Shapes::ShapeRef.new(shape: TrafficMirrorFilterRuleList, location_name: "egressFilterRuleSet"))
    TrafficMirrorFilter.add_member(:network_services, Shapes::ShapeRef.new(shape: TrafficMirrorNetworkServiceList, location_name: "networkServiceSet"))
    TrafficMirrorFilter.add_member(:description, Shapes::ShapeRef.new(shape: String, location_name: "description"))
    TrafficMirrorFilter.add_member(:tags, Shapes::ShapeRef.new(shape: TagList, location_name: "tagSet"))
    TrafficMirrorFilter.struct_class = Types::TrafficMirrorFilter

    TrafficMirrorFilterIdList.member = Shapes::ShapeRef.new(shape: TrafficMirrorFilterId, location_name: "item")

    TrafficMirrorFilterRule.add_member(:traffic_mirror_filter_rule_id, Shapes::ShapeRef.new(shape: String, location_name: "trafficMirrorFilterRuleId"))
    TrafficMirrorFilterRule.add_member(:traffic_mirror_filter_id, Shapes::ShapeRef.new(shape: String, location_name: "trafficMirrorFilterId"))
    TrafficMirrorFilterRule.add_member(:traffic_direction, Shapes::ShapeRef.new(shape: TrafficDirection, location_name: "trafficDirection"))
    TrafficMirrorFilterRule.add_member(:rule_number, Shapes::ShapeRef.new(shape: Integer, location_name: "ruleNumber"))
    TrafficMirrorFilterRule.add_member(:rule_action, Shapes::ShapeRef.new(shape: TrafficMirrorRuleAction, location_name: "ruleAction"))
    TrafficMirrorFilterRule.add_member(:protocol, Shapes::ShapeRef.new(shape: Integer, location_name: "protocol"))
    TrafficMirrorFilterRule.add_member(:destination_port_range, Shapes::ShapeRef.new(shape: TrafficMirrorPortRange, location_name: "destinationPortRange"))
    TrafficMirrorFilterRule.add_member(:source_port_range, Shapes::ShapeRef.new(shape: TrafficMirrorPortRange, location_name: "sourcePortRange"))
    TrafficMirrorFilterRule.add_member(:destination_cidr_block, Shapes::ShapeRef.new(shape: String, location_name: "destinationCidrBlock"))
    TrafficMirrorFilterRule.add_member(:source_cidr_block, Shapes::ShapeRef.new(shape: String, location_name: "sourceCidrBlock"))
    TrafficMirrorFilterRule.add_member(:description, Shapes::ShapeRef.new(shape: String, location_name: "description"))
    TrafficMirrorFilterRule.add_member(:tags, Shapes::ShapeRef.new(shape: TagList, location_name: "tagSet"))
    TrafficMirrorFilterRule.struct_class = Types::TrafficMirrorFilterRule

    TrafficMirrorFilterRuleFieldList.member = Shapes::ShapeRef.new(shape: TrafficMirrorFilterRuleField)

    TrafficMirrorFilterRuleIdList.member = Shapes::ShapeRef.new(shape: TrafficMirrorFilterRuleIdWithResolver, location_name: "item")

    TrafficMirrorFilterRuleList.member = Shapes::ShapeRef.new(shape: TrafficMirrorFilterRule, location_name: "item")

    TrafficMirrorFilterRuleSet.member = Shapes::ShapeRef.new(shape: TrafficMirrorFilterRule, location_name: "item")

    TrafficMirrorFilterSet.member = Shapes::ShapeRef.new(shape: TrafficMirrorFilter, location_name: "item")

    TrafficMirrorNetworkServiceList.member = Shapes::ShapeRef.new(shape: TrafficMirrorNetworkService, location_name: "item")

    TrafficMirrorPortRange.add_member(:from_port, Shapes::ShapeRef.new(shape: Integer, location_name: "fromPort"))
    TrafficMirrorPortRange.add_member(:to_port, Shapes::ShapeRef.new(shape: Integer, location_name: "toPort"))
    TrafficMirrorPortRange.struct_class = Types::TrafficMirrorPortRange

    TrafficMirrorPortRangeRequest.add_member(:from_port, Shapes::ShapeRef.new(shape: Integer, location_name: "FromPort"))
    TrafficMirrorPortRangeRequest.add_member(:to_port, Shapes::ShapeRef.new(shape: Integer, location_name: "ToPort"))
    TrafficMirrorPortRangeRequest.struct_class = Types::TrafficMirrorPortRangeRequest

    TrafficMirrorSession.add_member(:traffic_mirror_session_id, Shapes::ShapeRef.new(shape: String, location_name: "trafficMirrorSessionId"))
    TrafficMirrorSession.add_member(:traffic_mirror_target_id, Shapes::ShapeRef.new(shape: String, location_name: "trafficMirrorTargetId"))
    TrafficMirrorSession.add_member(:traffic_mirror_filter_id, Shapes::ShapeRef.new(shape: String, location_name: "trafficMirrorFilterId"))
    TrafficMirrorSession.add_member(:network_interface_id, Shapes::ShapeRef.new(shape: String, location_name: "networkInterfaceId"))
    TrafficMirrorSession.add_member(:owner_id, Shapes::ShapeRef.new(shape: String, location_name: "ownerId"))
    TrafficMirrorSession.add_member(:packet_length, Shapes::ShapeRef.new(shape: Integer, location_name: "packetLength"))
    TrafficMirrorSession.add_member(:session_number, Shapes::ShapeRef.new(shape: Integer, location_name: "sessionNumber"))
    TrafficMirrorSession.add_member(:virtual_network_id, Shapes::ShapeRef.new(shape: Integer, location_name: "virtualNetworkId"))
    TrafficMirrorSession.add_member(:description, Shapes::ShapeRef.new(shape: String, location_name: "description"))
    TrafficMirrorSession.add_member(:tags, Shapes::ShapeRef.new(shape: TagList, location_name: "tagSet"))
    TrafficMirrorSession.struct_class = Types::TrafficMirrorSession

    TrafficMirrorSessionFieldList.member = Shapes::ShapeRef.new(shape: TrafficMirrorSessionField)

    TrafficMirrorSessionIdList.member = Shapes::ShapeRef.new(shape: TrafficMirrorSessionId, location_name: "item")

    TrafficMirrorSessionSet.member = Shapes::ShapeRef.new(shape: TrafficMirrorSession, location_name: "item")

    TrafficMirrorTarget.add_member(:traffic_mirror_target_id, Shapes::ShapeRef.new(shape: String, location_name: "trafficMirrorTargetId"))
    TrafficMirrorTarget.add_member(:network_interface_id, Shapes::ShapeRef.new(shape: String, location_name: "networkInterfaceId"))
    TrafficMirrorTarget.add_member(:network_load_balancer_arn, Shapes::ShapeRef.new(shape: String, location_name: "networkLoadBalancerArn"))
    TrafficMirrorTarget.add_member(:type, Shapes::ShapeRef.new(shape: TrafficMirrorTargetType, location_name: "type"))
    TrafficMirrorTarget.add_member(:description, Shapes::ShapeRef.new(shape: String, location_name: "description"))
    TrafficMirrorTarget.add_member(:owner_id, Shapes::ShapeRef.new(shape: String, location_name: "ownerId"))
    TrafficMirrorTarget.add_member(:tags, Shapes::ShapeRef.new(shape: TagList, location_name: "tagSet"))
    TrafficMirrorTarget.add_member(:gateway_load_balancer_endpoint_id, Shapes::ShapeRef.new(shape: String, location_name: "gatewayLoadBalancerEndpointId"))
    TrafficMirrorTarget.struct_class = Types::TrafficMirrorTarget

    TrafficMirrorTargetIdList.member = Shapes::ShapeRef.new(shape: TrafficMirrorTargetId, location_name: "item")

    TrafficMirrorTargetSet.member = Shapes::ShapeRef.new(shape: TrafficMirrorTarget, location_name: "item")

    TransitGateway.add_member(:transit_gateway_id, Shapes::ShapeRef.new(shape: String, location_name: "transitGatewayId"))
    TransitGateway.add_member(:transit_gateway_arn, Shapes::ShapeRef.new(shape: String, location_name: "transitGatewayArn"))
    TransitGateway.add_member(:state, Shapes::ShapeRef.new(shape: TransitGatewayState, location_name: "state"))
    TransitGateway.add_member(:owner_id, Shapes::ShapeRef.new(shape: String, location_name: "ownerId"))
    TransitGateway.add_member(:description, Shapes::ShapeRef.new(shape: String, location_name: "description"))
    TransitGateway.add_member(:creation_time, Shapes::ShapeRef.new(shape: DateTime, location_name: "creationTime"))
    TransitGateway.add_member(:options, Shapes::ShapeRef.new(shape: TransitGatewayOptions, location_name: "options"))
    TransitGateway.add_member(:tags, Shapes::ShapeRef.new(shape: TagList, location_name: "tagSet"))
    TransitGateway.struct_class = Types::TransitGateway

    TransitGatewayAssociation.add_member(:transit_gateway_route_table_id, Shapes::ShapeRef.new(shape: TransitGatewayRouteTableId, location_name: "transitGatewayRouteTableId"))
    TransitGatewayAssociation.add_member(:transit_gateway_attachment_id, Shapes::ShapeRef.new(shape: TransitGatewayAttachmentId, location_name: "transitGatewayAttachmentId"))
    TransitGatewayAssociation.add_member(:resource_id, Shapes::ShapeRef.new(shape: String, location_name: "resourceId"))
    TransitGatewayAssociation.add_member(:resource_type, Shapes::ShapeRef.new(shape: TransitGatewayAttachmentResourceType, location_name: "resourceType"))
    TransitGatewayAssociation.add_member(:state, Shapes::ShapeRef.new(shape: TransitGatewayAssociationState, location_name: "state"))
    TransitGatewayAssociation.struct_class = Types::TransitGatewayAssociation

    TransitGatewayAttachment.add_member(:transit_gateway_attachment_id, Shapes::ShapeRef.new(shape: String, location_name: "transitGatewayAttachmentId"))
    TransitGatewayAttachment.add_member(:transit_gateway_id, Shapes::ShapeRef.new(shape: String, location_name: "transitGatewayId"))
    TransitGatewayAttachment.add_member(:transit_gateway_owner_id, Shapes::ShapeRef.new(shape: String, location_name: "transitGatewayOwnerId"))
    TransitGatewayAttachment.add_member(:resource_owner_id, Shapes::ShapeRef.new(shape: String, location_name: "resourceOwnerId"))
    TransitGatewayAttachment.add_member(:resource_type, Shapes::ShapeRef.new(shape: TransitGatewayAttachmentResourceType, location_name: "resourceType"))
    TransitGatewayAttachment.add_member(:resource_id, Shapes::ShapeRef.new(shape: String, location_name: "resourceId"))
    TransitGatewayAttachment.add_member(:state, Shapes::ShapeRef.new(shape: TransitGatewayAttachmentState, location_name: "state"))
    TransitGatewayAttachment.add_member(:association, Shapes::ShapeRef.new(shape: TransitGatewayAttachmentAssociation, location_name: "association"))
    TransitGatewayAttachment.add_member(:creation_time, Shapes::ShapeRef.new(shape: DateTime, location_name: "creationTime"))
    TransitGatewayAttachment.add_member(:tags, Shapes::ShapeRef.new(shape: TagList, location_name: "tagSet"))
    TransitGatewayAttachment.struct_class = Types::TransitGatewayAttachment

    TransitGatewayAttachmentAssociation.add_member(:transit_gateway_route_table_id, Shapes::ShapeRef.new(shape: String, location_name: "transitGatewayRouteTableId"))
    TransitGatewayAttachmentAssociation.add_member(:state, Shapes::ShapeRef.new(shape: TransitGatewayAssociationState, location_name: "state"))
    TransitGatewayAttachmentAssociation.struct_class = Types::TransitGatewayAttachmentAssociation

    TransitGatewayAttachmentBgpConfiguration.add_member(:transit_gateway_asn, Shapes::ShapeRef.new(shape: Long, location_name: "transitGatewayAsn"))
    TransitGatewayAttachmentBgpConfiguration.add_member(:peer_asn, Shapes::ShapeRef.new(shape: Long, location_name: "peerAsn"))
    TransitGatewayAttachmentBgpConfiguration.add_member(:transit_gateway_address, Shapes::ShapeRef.new(shape: String, location_name: "transitGatewayAddress"))
    TransitGatewayAttachmentBgpConfiguration.add_member(:peer_address, Shapes::ShapeRef.new(shape: String, location_name: "peerAddress"))
    TransitGatewayAttachmentBgpConfiguration.add_member(:bgp_status, Shapes::ShapeRef.new(shape: BgpStatus, location_name: "bgpStatus"))
    TransitGatewayAttachmentBgpConfiguration.struct_class = Types::TransitGatewayAttachmentBgpConfiguration

    TransitGatewayAttachmentBgpConfigurationList.member = Shapes::ShapeRef.new(shape: TransitGatewayAttachmentBgpConfiguration, location_name: "item")

    TransitGatewayAttachmentIdStringList.member = Shapes::ShapeRef.new(shape: TransitGatewayAttachmentId)

    TransitGatewayAttachmentList.member = Shapes::ShapeRef.new(shape: TransitGatewayAttachment, location_name: "item")

    TransitGatewayAttachmentPropagation.add_member(:transit_gateway_route_table_id, Shapes::ShapeRef.new(shape: String, location_name: "transitGatewayRouteTableId"))
    TransitGatewayAttachmentPropagation.add_member(:state, Shapes::ShapeRef.new(shape: TransitGatewayPropagationState, location_name: "state"))
    TransitGatewayAttachmentPropagation.struct_class = Types::TransitGatewayAttachmentPropagation

    TransitGatewayAttachmentPropagationList.member = Shapes::ShapeRef.new(shape: TransitGatewayAttachmentPropagation, location_name: "item")

    TransitGatewayCidrBlockStringList.member = Shapes::ShapeRef.new(shape: String, location_name: "item")

    TransitGatewayConnect.add_member(:transit_gateway_attachment_id, Shapes::ShapeRef.new(shape: TransitGatewayAttachmentId, location_name: "transitGatewayAttachmentId"))
    TransitGatewayConnect.add_member(:transport_transit_gateway_attachment_id, Shapes::ShapeRef.new(shape: TransitGatewayAttachmentId, location_name: "transportTransitGatewayAttachmentId"))
    TransitGatewayConnect.add_member(:transit_gateway_id, Shapes::ShapeRef.new(shape: TransitGatewayId, location_name: "transitGatewayId"))
    TransitGatewayConnect.add_member(:state, Shapes::ShapeRef.new(shape: TransitGatewayAttachmentState, location_name: "state"))
    TransitGatewayConnect.add_member(:creation_time, Shapes::ShapeRef.new(shape: DateTime, location_name: "creationTime"))
    TransitGatewayConnect.add_member(:options, Shapes::ShapeRef.new(shape: TransitGatewayConnectOptions, location_name: "options"))
    TransitGatewayConnect.add_member(:tags, Shapes::ShapeRef.new(shape: TagList, location_name: "tagSet"))
    TransitGatewayConnect.struct_class = Types::TransitGatewayConnect

    TransitGatewayConnectList.member = Shapes::ShapeRef.new(shape: TransitGatewayConnect, location_name: "item")

    TransitGatewayConnectOptions.add_member(:protocol, Shapes::ShapeRef.new(shape: ProtocolValue, location_name: "protocol"))
    TransitGatewayConnectOptions.struct_class = Types::TransitGatewayConnectOptions

    TransitGatewayConnectPeer.add_member(:transit_gateway_attachment_id, Shapes::ShapeRef.new(shape: TransitGatewayAttachmentId, location_name: "transitGatewayAttachmentId"))
    TransitGatewayConnectPeer.add_member(:transit_gateway_connect_peer_id, Shapes::ShapeRef.new(shape: TransitGatewayConnectPeerId, location_name: "transitGatewayConnectPeerId"))
    TransitGatewayConnectPeer.add_member(:state, Shapes::ShapeRef.new(shape: TransitGatewayConnectPeerState, location_name: "state"))
    TransitGatewayConnectPeer.add_member(:creation_time, Shapes::ShapeRef.new(shape: DateTime, location_name: "creationTime"))
    TransitGatewayConnectPeer.add_member(:connect_peer_configuration, Shapes::ShapeRef.new(shape: TransitGatewayConnectPeerConfiguration, location_name: "connectPeerConfiguration"))
    TransitGatewayConnectPeer.add_member(:tags, Shapes::ShapeRef.new(shape: TagList, location_name: "tagSet"))
    TransitGatewayConnectPeer.struct_class = Types::TransitGatewayConnectPeer

    TransitGatewayConnectPeerConfiguration.add_member(:transit_gateway_address, Shapes::ShapeRef.new(shape: String, location_name: "transitGatewayAddress"))
    TransitGatewayConnectPeerConfiguration.add_member(:peer_address, Shapes::ShapeRef.new(shape: String, location_name: "peerAddress"))
    TransitGatewayConnectPeerConfiguration.add_member(:inside_cidr_blocks, Shapes::ShapeRef.new(shape: InsideCidrBlocksStringList, location_name: "insideCidrBlocks"))
    TransitGatewayConnectPeerConfiguration.add_member(:protocol, Shapes::ShapeRef.new(shape: ProtocolValue, location_name: "protocol"))
    TransitGatewayConnectPeerConfiguration.add_member(:bgp_configurations, Shapes::ShapeRef.new(shape: TransitGatewayAttachmentBgpConfigurationList, location_name: "bgpConfigurations"))
    TransitGatewayConnectPeerConfiguration.struct_class = Types::TransitGatewayConnectPeerConfiguration

    TransitGatewayConnectPeerIdStringList.member = Shapes::ShapeRef.new(shape: TransitGatewayConnectPeerId, location_name: "item")

    TransitGatewayConnectPeerList.member = Shapes::ShapeRef.new(shape: TransitGatewayConnectPeer, location_name: "item")

    TransitGatewayConnectRequestBgpOptions.add_member(:peer_asn, Shapes::ShapeRef.new(shape: Long, location_name: "PeerAsn"))
    TransitGatewayConnectRequestBgpOptions.struct_class = Types::TransitGatewayConnectRequestBgpOptions

    TransitGatewayIdStringList.member = Shapes::ShapeRef.new(shape: TransitGatewayId, location_name: "item")

    TransitGatewayList.member = Shapes::ShapeRef.new(shape: TransitGateway, location_name: "item")

    TransitGatewayMulticastDeregisteredGroupMembers.add_member(:transit_gateway_multicast_domain_id, Shapes::ShapeRef.new(shape: String, location_name: "transitGatewayMulticastDomainId"))
    TransitGatewayMulticastDeregisteredGroupMembers.add_member(:deregistered_network_interface_ids, Shapes::ShapeRef.new(shape: ValueStringList, location_name: "deregisteredNetworkInterfaceIds"))
    TransitGatewayMulticastDeregisteredGroupMembers.add_member(:group_ip_address, Shapes::ShapeRef.new(shape: String, location_name: "groupIpAddress"))
    TransitGatewayMulticastDeregisteredGroupMembers.struct_class = Types::TransitGatewayMulticastDeregisteredGroupMembers

    TransitGatewayMulticastDeregisteredGroupSources.add_member(:transit_gateway_multicast_domain_id, Shapes::ShapeRef.new(shape: String, location_name: "transitGatewayMulticastDomainId"))
    TransitGatewayMulticastDeregisteredGroupSources.add_member(:deregistered_network_interface_ids, Shapes::ShapeRef.new(shape: ValueStringList, location_name: "deregisteredNetworkInterfaceIds"))
    TransitGatewayMulticastDeregisteredGroupSources.add_member(:group_ip_address, Shapes::ShapeRef.new(shape: String, location_name: "groupIpAddress"))
    TransitGatewayMulticastDeregisteredGroupSources.struct_class = Types::TransitGatewayMulticastDeregisteredGroupSources

    TransitGatewayMulticastDomain.add_member(:transit_gateway_multicast_domain_id, Shapes::ShapeRef.new(shape: String, location_name: "transitGatewayMulticastDomainId"))
    TransitGatewayMulticastDomain.add_member(:transit_gateway_id, Shapes::ShapeRef.new(shape: String, location_name: "transitGatewayId"))
    TransitGatewayMulticastDomain.add_member(:transit_gateway_multicast_domain_arn, Shapes::ShapeRef.new(shape: String, location_name: "transitGatewayMulticastDomainArn"))
    TransitGatewayMulticastDomain.add_member(:owner_id, Shapes::ShapeRef.new(shape: String, location_name: "ownerId"))
    TransitGatewayMulticastDomain.add_member(:options, Shapes::ShapeRef.new(shape: TransitGatewayMulticastDomainOptions, location_name: "options"))
    TransitGatewayMulticastDomain.add_member(:state, Shapes::ShapeRef.new(shape: TransitGatewayMulticastDomainState, location_name: "state"))
    TransitGatewayMulticastDomain.add_member(:creation_time, Shapes::ShapeRef.new(shape: DateTime, location_name: "creationTime"))
    TransitGatewayMulticastDomain.add_member(:tags, Shapes::ShapeRef.new(shape: TagList, location_name: "tagSet"))
    TransitGatewayMulticastDomain.struct_class = Types::TransitGatewayMulticastDomain

    TransitGatewayMulticastDomainAssociation.add_member(:transit_gateway_attachment_id, Shapes::ShapeRef.new(shape: String, location_name: "transitGatewayAttachmentId"))
    TransitGatewayMulticastDomainAssociation.add_member(:resource_id, Shapes::ShapeRef.new(shape: String, location_name: "resourceId"))
    TransitGatewayMulticastDomainAssociation.add_member(:resource_type, Shapes::ShapeRef.new(shape: TransitGatewayAttachmentResourceType, location_name: "resourceType"))
    TransitGatewayMulticastDomainAssociation.add_member(:resource_owner_id, Shapes::ShapeRef.new(shape: String, location_name: "resourceOwnerId"))
    TransitGatewayMulticastDomainAssociation.add_member(:subnet, Shapes::ShapeRef.new(shape: SubnetAssociation, location_name: "subnet"))
    TransitGatewayMulticastDomainAssociation.struct_class = Types::TransitGatewayMulticastDomainAssociation

    TransitGatewayMulticastDomainAssociationList.member = Shapes::ShapeRef.new(shape: TransitGatewayMulticastDomainAssociation, location_name: "item")

    TransitGatewayMulticastDomainAssociations.add_member(:transit_gateway_multicast_domain_id, Shapes::ShapeRef.new(shape: String, location_name: "transitGatewayMulticastDomainId"))
    TransitGatewayMulticastDomainAssociations.add_member(:transit_gateway_attachment_id, Shapes::ShapeRef.new(shape: String, location_name: "transitGatewayAttachmentId"))
    TransitGatewayMulticastDomainAssociations.add_member(:resource_id, Shapes::ShapeRef.new(shape: String, location_name: "resourceId"))
    TransitGatewayMulticastDomainAssociations.add_member(:resource_type, Shapes::ShapeRef.new(shape: TransitGatewayAttachmentResourceType, location_name: "resourceType"))
    TransitGatewayMulticastDomainAssociations.add_member(:resource_owner_id, Shapes::ShapeRef.new(shape: String, location_name: "resourceOwnerId"))
    TransitGatewayMulticastDomainAssociations.add_member(:subnets, Shapes::ShapeRef.new(shape: SubnetAssociationList, location_name: "subnets"))
    TransitGatewayMulticastDomainAssociations.struct_class = Types::TransitGatewayMulticastDomainAssociations

    TransitGatewayMulticastDomainIdStringList.member = Shapes::ShapeRef.new(shape: TransitGatewayMulticastDomainId, location_name: "item")

    TransitGatewayMulticastDomainList.member = Shapes::ShapeRef.new(shape: TransitGatewayMulticastDomain, location_name: "item")

    TransitGatewayMulticastDomainOptions.add_member(:igmpv_2_support, Shapes::ShapeRef.new(shape: Igmpv2SupportValue, location_name: "igmpv2Support"))
    TransitGatewayMulticastDomainOptions.add_member(:static_sources_support, Shapes::ShapeRef.new(shape: StaticSourcesSupportValue, location_name: "staticSourcesSupport"))
    TransitGatewayMulticastDomainOptions.add_member(:auto_accept_shared_associations, Shapes::ShapeRef.new(shape: AutoAcceptSharedAssociationsValue, location_name: "autoAcceptSharedAssociations"))
    TransitGatewayMulticastDomainOptions.struct_class = Types::TransitGatewayMulticastDomainOptions

    TransitGatewayMulticastGroup.add_member(:group_ip_address, Shapes::ShapeRef.new(shape: String, location_name: "groupIpAddress"))
    TransitGatewayMulticastGroup.add_member(:transit_gateway_attachment_id, Shapes::ShapeRef.new(shape: String, location_name: "transitGatewayAttachmentId"))
    TransitGatewayMulticastGroup.add_member(:subnet_id, Shapes::ShapeRef.new(shape: String, location_name: "subnetId"))
    TransitGatewayMulticastGroup.add_member(:resource_id, Shapes::ShapeRef.new(shape: String, location_name: "resourceId"))
    TransitGatewayMulticastGroup.add_member(:resource_type, Shapes::ShapeRef.new(shape: TransitGatewayAttachmentResourceType, location_name: "resourceType"))
    TransitGatewayMulticastGroup.add_member(:resource_owner_id, Shapes::ShapeRef.new(shape: String, location_name: "resourceOwnerId"))
    TransitGatewayMulticastGroup.add_member(:network_interface_id, Shapes::ShapeRef.new(shape: String, location_name: "networkInterfaceId"))
    TransitGatewayMulticastGroup.add_member(:group_member, Shapes::ShapeRef.new(shape: Boolean, location_name: "groupMember"))
    TransitGatewayMulticastGroup.add_member(:group_source, Shapes::ShapeRef.new(shape: Boolean, location_name: "groupSource"))
    TransitGatewayMulticastGroup.add_member(:member_type, Shapes::ShapeRef.new(shape: MembershipType, location_name: "memberType"))
    TransitGatewayMulticastGroup.add_member(:source_type, Shapes::ShapeRef.new(shape: MembershipType, location_name: "sourceType"))
    TransitGatewayMulticastGroup.struct_class = Types::TransitGatewayMulticastGroup

    TransitGatewayMulticastGroupList.member = Shapes::ShapeRef.new(shape: TransitGatewayMulticastGroup, location_name: "item")

    TransitGatewayMulticastRegisteredGroupMembers.add_member(:transit_gateway_multicast_domain_id, Shapes::ShapeRef.new(shape: String, location_name: "transitGatewayMulticastDomainId"))
    TransitGatewayMulticastRegisteredGroupMembers.add_member(:registered_network_interface_ids, Shapes::ShapeRef.new(shape: ValueStringList, location_name: "registeredNetworkInterfaceIds"))
    TransitGatewayMulticastRegisteredGroupMembers.add_member(:group_ip_address, Shapes::ShapeRef.new(shape: String, location_name: "groupIpAddress"))
    TransitGatewayMulticastRegisteredGroupMembers.struct_class = Types::TransitGatewayMulticastRegisteredGroupMembers

    TransitGatewayMulticastRegisteredGroupSources.add_member(:transit_gateway_multicast_domain_id, Shapes::ShapeRef.new(shape: String, location_name: "transitGatewayMulticastDomainId"))
    TransitGatewayMulticastRegisteredGroupSources.add_member(:registered_network_interface_ids, Shapes::ShapeRef.new(shape: ValueStringList, location_name: "registeredNetworkInterfaceIds"))
    TransitGatewayMulticastRegisteredGroupSources.add_member(:group_ip_address, Shapes::ShapeRef.new(shape: String, location_name: "groupIpAddress"))
    TransitGatewayMulticastRegisteredGroupSources.struct_class = Types::TransitGatewayMulticastRegisteredGroupSources

    TransitGatewayNetworkInterfaceIdList.member = Shapes::ShapeRef.new(shape: NetworkInterfaceId, location_name: "item")

    TransitGatewayOptions.add_member(:amazon_side_asn, Shapes::ShapeRef.new(shape: Long, location_name: "amazonSideAsn"))
    TransitGatewayOptions.add_member(:transit_gateway_cidr_blocks, Shapes::ShapeRef.new(shape: ValueStringList, location_name: "transitGatewayCidrBlocks"))
    TransitGatewayOptions.add_member(:auto_accept_shared_attachments, Shapes::ShapeRef.new(shape: AutoAcceptSharedAttachmentsValue, location_name: "autoAcceptSharedAttachments"))
    TransitGatewayOptions.add_member(:default_route_table_association, Shapes::ShapeRef.new(shape: DefaultRouteTableAssociationValue, location_name: "defaultRouteTableAssociation"))
    TransitGatewayOptions.add_member(:association_default_route_table_id, Shapes::ShapeRef.new(shape: String, location_name: "associationDefaultRouteTableId"))
    TransitGatewayOptions.add_member(:default_route_table_propagation, Shapes::ShapeRef.new(shape: DefaultRouteTablePropagationValue, location_name: "defaultRouteTablePropagation"))
    TransitGatewayOptions.add_member(:propagation_default_route_table_id, Shapes::ShapeRef.new(shape: String, location_name: "propagationDefaultRouteTableId"))
    TransitGatewayOptions.add_member(:vpn_ecmp_support, Shapes::ShapeRef.new(shape: VpnEcmpSupportValue, location_name: "vpnEcmpSupport"))
    TransitGatewayOptions.add_member(:dns_support, Shapes::ShapeRef.new(shape: DnsSupportValue, location_name: "dnsSupport"))
    TransitGatewayOptions.add_member(:security_group_referencing_support, Shapes::ShapeRef.new(shape: SecurityGroupReferencingSupportValue, location_name: "securityGroupReferencingSupport"))
    TransitGatewayOptions.add_member(:multicast_support, Shapes::ShapeRef.new(shape: MulticastSupportValue, location_name: "multicastSupport"))
    TransitGatewayOptions.struct_class = Types::TransitGatewayOptions

    TransitGatewayPeeringAttachment.add_member(:transit_gateway_attachment_id, Shapes::ShapeRef.new(shape: String, location_name: "transitGatewayAttachmentId"))
    TransitGatewayPeeringAttachment.add_member(:accepter_transit_gateway_attachment_id, Shapes::ShapeRef.new(shape: String, location_name: "accepterTransitGatewayAttachmentId"))
    TransitGatewayPeeringAttachment.add_member(:requester_tgw_info, Shapes::ShapeRef.new(shape: PeeringTgwInfo, location_name: "requesterTgwInfo"))
    TransitGatewayPeeringAttachment.add_member(:accepter_tgw_info, Shapes::ShapeRef.new(shape: PeeringTgwInfo, location_name: "accepterTgwInfo"))
    TransitGatewayPeeringAttachment.add_member(:options, Shapes::ShapeRef.new(shape: TransitGatewayPeeringAttachmentOptions, location_name: "options"))
    TransitGatewayPeeringAttachment.add_member(:status, Shapes::ShapeRef.new(shape: PeeringAttachmentStatus, location_name: "status"))
    TransitGatewayPeeringAttachment.add_member(:state, Shapes::ShapeRef.new(shape: TransitGatewayAttachmentState, location_name: "state"))
    TransitGatewayPeeringAttachment.add_member(:creation_time, Shapes::ShapeRef.new(shape: DateTime, location_name: "creationTime"))
    TransitGatewayPeeringAttachment.add_member(:tags, Shapes::ShapeRef.new(shape: TagList, location_name: "tagSet"))
    TransitGatewayPeeringAttachment.struct_class = Types::TransitGatewayPeeringAttachment

    TransitGatewayPeeringAttachmentList.member = Shapes::ShapeRef.new(shape: TransitGatewayPeeringAttachment, location_name: "item")

    TransitGatewayPeeringAttachmentOptions.add_member(:dynamic_routing, Shapes::ShapeRef.new(shape: DynamicRoutingValue, location_name: "dynamicRouting"))
    TransitGatewayPeeringAttachmentOptions.struct_class = Types::TransitGatewayPeeringAttachmentOptions

    TransitGatewayPolicyRule.add_member(:source_cidr_block, Shapes::ShapeRef.new(shape: String, location_name: "sourceCidrBlock"))
    TransitGatewayPolicyRule.add_member(:source_port_range, Shapes::ShapeRef.new(shape: String, location_name: "sourcePortRange"))
    TransitGatewayPolicyRule.add_member(:destination_cidr_block, Shapes::ShapeRef.new(shape: String, location_name: "destinationCidrBlock"))
    TransitGatewayPolicyRule.add_member(:destination_port_range, Shapes::ShapeRef.new(shape: String, location_name: "destinationPortRange"))
    TransitGatewayPolicyRule.add_member(:protocol, Shapes::ShapeRef.new(shape: String, location_name: "protocol"))
    TransitGatewayPolicyRule.add_member(:meta_data, Shapes::ShapeRef.new(shape: TransitGatewayPolicyRuleMetaData, location_name: "metaData"))
    TransitGatewayPolicyRule.struct_class = Types::TransitGatewayPolicyRule

    TransitGatewayPolicyRuleMetaData.add_member(:meta_data_key, Shapes::ShapeRef.new(shape: String, location_name: "metaDataKey"))
    TransitGatewayPolicyRuleMetaData.add_member(:meta_data_value, Shapes::ShapeRef.new(shape: String, location_name: "metaDataValue"))
    TransitGatewayPolicyRuleMetaData.struct_class = Types::TransitGatewayPolicyRuleMetaData

    TransitGatewayPolicyTable.add_member(:transit_gateway_policy_table_id, Shapes::ShapeRef.new(shape: TransitGatewayPolicyTableId, location_name: "transitGatewayPolicyTableId"))
    TransitGatewayPolicyTable.add_member(:transit_gateway_id, Shapes::ShapeRef.new(shape: TransitGatewayId, location_name: "transitGatewayId"))
    TransitGatewayPolicyTable.add_member(:state, Shapes::ShapeRef.new(shape: TransitGatewayPolicyTableState, location_name: "state"))
    TransitGatewayPolicyTable.add_member(:creation_time, Shapes::ShapeRef.new(shape: DateTime, location_name: "creationTime"))
    TransitGatewayPolicyTable.add_member(:tags, Shapes::ShapeRef.new(shape: TagList, location_name: "tagSet"))
    TransitGatewayPolicyTable.struct_class = Types::TransitGatewayPolicyTable

    TransitGatewayPolicyTableAssociation.add_member(:transit_gateway_policy_table_id, Shapes::ShapeRef.new(shape: TransitGatewayPolicyTableId, location_name: "transitGatewayPolicyTableId"))
    TransitGatewayPolicyTableAssociation.add_member(:transit_gateway_attachment_id, Shapes::ShapeRef.new(shape: TransitGatewayAttachmentId, location_name: "transitGatewayAttachmentId"))
    TransitGatewayPolicyTableAssociation.add_member(:resource_id, Shapes::ShapeRef.new(shape: String, location_name: "resourceId"))
    TransitGatewayPolicyTableAssociation.add_member(:resource_type, Shapes::ShapeRef.new(shape: TransitGatewayAttachmentResourceType, location_name: "resourceType"))
    TransitGatewayPolicyTableAssociation.add_member(:state, Shapes::ShapeRef.new(shape: TransitGatewayAssociationState, location_name: "state"))
    TransitGatewayPolicyTableAssociation.struct_class = Types::TransitGatewayPolicyTableAssociation

    TransitGatewayPolicyTableAssociationList.member = Shapes::ShapeRef.new(shape: TransitGatewayPolicyTableAssociation, location_name: "item")

    TransitGatewayPolicyTableEntry.add_member(:policy_rule_number, Shapes::ShapeRef.new(shape: String, location_name: "policyRuleNumber"))
    TransitGatewayPolicyTableEntry.add_member(:policy_rule, Shapes::ShapeRef.new(shape: TransitGatewayPolicyRule, location_name: "policyRule"))
    TransitGatewayPolicyTableEntry.add_member(:target_route_table_id, Shapes::ShapeRef.new(shape: TransitGatewayRouteTableId, location_name: "targetRouteTableId"))
    TransitGatewayPolicyTableEntry.struct_class = Types::TransitGatewayPolicyTableEntry

    TransitGatewayPolicyTableEntryList.member = Shapes::ShapeRef.new(shape: TransitGatewayPolicyTableEntry, location_name: "item")

    TransitGatewayPolicyTableIdStringList.member = Shapes::ShapeRef.new(shape: TransitGatewayPolicyTableId, location_name: "item")

    TransitGatewayPolicyTableList.member = Shapes::ShapeRef.new(shape: TransitGatewayPolicyTable, location_name: "item")

    TransitGatewayPrefixListAttachment.add_member(:transit_gateway_attachment_id, Shapes::ShapeRef.new(shape: TransitGatewayAttachmentId, location_name: "transitGatewayAttachmentId"))
    TransitGatewayPrefixListAttachment.add_member(:resource_type, Shapes::ShapeRef.new(shape: TransitGatewayAttachmentResourceType, location_name: "resourceType"))
    TransitGatewayPrefixListAttachment.add_member(:resource_id, Shapes::ShapeRef.new(shape: String, location_name: "resourceId"))
    TransitGatewayPrefixListAttachment.struct_class = Types::TransitGatewayPrefixListAttachment

    TransitGatewayPrefixListReference.add_member(:transit_gateway_route_table_id, Shapes::ShapeRef.new(shape: TransitGatewayRouteTableId, location_name: "transitGatewayRouteTableId"))
    TransitGatewayPrefixListReference.add_member(:prefix_list_id, Shapes::ShapeRef.new(shape: PrefixListResourceId, location_name: "prefixListId"))
    TransitGatewayPrefixListReference.add_member(:prefix_list_owner_id, Shapes::ShapeRef.new(shape: String, location_name: "prefixListOwnerId"))
    TransitGatewayPrefixListReference.add_member(:state, Shapes::ShapeRef.new(shape: TransitGatewayPrefixListReferenceState, location_name: "state"))
    TransitGatewayPrefixListReference.add_member(:blackhole, Shapes::ShapeRef.new(shape: Boolean, location_name: "blackhole"))
    TransitGatewayPrefixListReference.add_member(:transit_gateway_attachment, Shapes::ShapeRef.new(shape: TransitGatewayPrefixListAttachment, location_name: "transitGatewayAttachment"))
    TransitGatewayPrefixListReference.struct_class = Types::TransitGatewayPrefixListReference

    TransitGatewayPrefixListReferenceSet.member = Shapes::ShapeRef.new(shape: TransitGatewayPrefixListReference, location_name: "item")

    TransitGatewayPropagation.add_member(:transit_gateway_attachment_id, Shapes::ShapeRef.new(shape: TransitGatewayAttachmentId, location_name: "transitGatewayAttachmentId"))
    TransitGatewayPropagation.add_member(:resource_id, Shapes::ShapeRef.new(shape: String, location_name: "resourceId"))
    TransitGatewayPropagation.add_member(:resource_type, Shapes::ShapeRef.new(shape: TransitGatewayAttachmentResourceType, location_name: "resourceType"))
    TransitGatewayPropagation.add_member(:transit_gateway_route_table_id, Shapes::ShapeRef.new(shape: String, location_name: "transitGatewayRouteTableId"))
    TransitGatewayPropagation.add_member(:state, Shapes::ShapeRef.new(shape: TransitGatewayPropagationState, location_name: "state"))
    TransitGatewayPropagation.add_member(:transit_gateway_route_table_announcement_id, Shapes::ShapeRef.new(shape: TransitGatewayRouteTableAnnouncementId, location_name: "transitGatewayRouteTableAnnouncementId"))
    TransitGatewayPropagation.struct_class = Types::TransitGatewayPropagation

    TransitGatewayRequestOptions.add_member(:amazon_side_asn, Shapes::ShapeRef.new(shape: Long, location_name: "AmazonSideAsn"))
    TransitGatewayRequestOptions.add_member(:auto_accept_shared_attachments, Shapes::ShapeRef.new(shape: AutoAcceptSharedAttachmentsValue, location_name: "AutoAcceptSharedAttachments"))
    TransitGatewayRequestOptions.add_member(:default_route_table_association, Shapes::ShapeRef.new(shape: DefaultRouteTableAssociationValue, location_name: "DefaultRouteTableAssociation"))
    TransitGatewayRequestOptions.add_member(:default_route_table_propagation, Shapes::ShapeRef.new(shape: DefaultRouteTablePropagationValue, location_name: "DefaultRouteTablePropagation"))
    TransitGatewayRequestOptions.add_member(:vpn_ecmp_support, Shapes::ShapeRef.new(shape: VpnEcmpSupportValue, location_name: "VpnEcmpSupport"))
    TransitGatewayRequestOptions.add_member(:dns_support, Shapes::ShapeRef.new(shape: DnsSupportValue, location_name: "DnsSupport"))
    TransitGatewayRequestOptions.add_member(:security_group_referencing_support, Shapes::ShapeRef.new(shape: SecurityGroupReferencingSupportValue, location_name: "SecurityGroupReferencingSupport"))
    TransitGatewayRequestOptions.add_member(:multicast_support, Shapes::ShapeRef.new(shape: MulticastSupportValue, location_name: "MulticastSupport"))
    TransitGatewayRequestOptions.add_member(:transit_gateway_cidr_blocks, Shapes::ShapeRef.new(shape: TransitGatewayCidrBlockStringList, location_name: "TransitGatewayCidrBlocks"))
    TransitGatewayRequestOptions.struct_class = Types::TransitGatewayRequestOptions

    TransitGatewayRoute.add_member(:destination_cidr_block, Shapes::ShapeRef.new(shape: String, location_name: "destinationCidrBlock"))
    TransitGatewayRoute.add_member(:prefix_list_id, Shapes::ShapeRef.new(shape: PrefixListResourceId, location_name: "prefixListId"))
    TransitGatewayRoute.add_member(:transit_gateway_route_table_announcement_id, Shapes::ShapeRef.new(shape: TransitGatewayRouteTableAnnouncementId, location_name: "transitGatewayRouteTableAnnouncementId"))
    TransitGatewayRoute.add_member(:transit_gateway_attachments, Shapes::ShapeRef.new(shape: TransitGatewayRouteAttachmentList, location_name: "transitGatewayAttachments"))
    TransitGatewayRoute.add_member(:type, Shapes::ShapeRef.new(shape: TransitGatewayRouteType, location_name: "type"))
    TransitGatewayRoute.add_member(:state, Shapes::ShapeRef.new(shape: TransitGatewayRouteState, location_name: "state"))
    TransitGatewayRoute.struct_class = Types::TransitGatewayRoute

    TransitGatewayRouteAttachment.add_member(:resource_id, Shapes::ShapeRef.new(shape: String, location_name: "resourceId"))
    TransitGatewayRouteAttachment.add_member(:transit_gateway_attachment_id, Shapes::ShapeRef.new(shape: String, location_name: "transitGatewayAttachmentId"))
    TransitGatewayRouteAttachment.add_member(:resource_type, Shapes::ShapeRef.new(shape: TransitGatewayAttachmentResourceType, location_name: "resourceType"))
    TransitGatewayRouteAttachment.struct_class = Types::TransitGatewayRouteAttachment

    TransitGatewayRouteAttachmentList.member = Shapes::ShapeRef.new(shape: TransitGatewayRouteAttachment, location_name: "item")

    TransitGatewayRouteList.member = Shapes::ShapeRef.new(shape: TransitGatewayRoute, location_name: "item")

    TransitGatewayRouteTable.add_member(:transit_gateway_route_table_id, Shapes::ShapeRef.new(shape: String, location_name: "transitGatewayRouteTableId"))
    TransitGatewayRouteTable.add_member(:transit_gateway_id, Shapes::ShapeRef.new(shape: String, location_name: "transitGatewayId"))
    TransitGatewayRouteTable.add_member(:state, Shapes::ShapeRef.new(shape: TransitGatewayRouteTableState, location_name: "state"))
    TransitGatewayRouteTable.add_member(:default_association_route_table, Shapes::ShapeRef.new(shape: Boolean, location_name: "defaultAssociationRouteTable"))
    TransitGatewayRouteTable.add_member(:default_propagation_route_table, Shapes::ShapeRef.new(shape: Boolean, location_name: "defaultPropagationRouteTable"))
    TransitGatewayRouteTable.add_member(:creation_time, Shapes::ShapeRef.new(shape: DateTime, location_name: "creationTime"))
    TransitGatewayRouteTable.add_member(:tags, Shapes::ShapeRef.new(shape: TagList, location_name: "tagSet"))
    TransitGatewayRouteTable.struct_class = Types::TransitGatewayRouteTable

    TransitGatewayRouteTableAnnouncement.add_member(:transit_gateway_route_table_announcement_id, Shapes::ShapeRef.new(shape: TransitGatewayRouteTableAnnouncementId, location_name: "transitGatewayRouteTableAnnouncementId"))
    TransitGatewayRouteTableAnnouncement.add_member(:transit_gateway_id, Shapes::ShapeRef.new(shape: TransitGatewayId, location_name: "transitGatewayId"))
    TransitGatewayRouteTableAnnouncement.add_member(:core_network_id, Shapes::ShapeRef.new(shape: String, location_name: "coreNetworkId"))
    TransitGatewayRouteTableAnnouncement.add_member(:peer_transit_gateway_id, Shapes::ShapeRef.new(shape: TransitGatewayId, location_name: "peerTransitGatewayId"))
    TransitGatewayRouteTableAnnouncement.add_member(:peer_core_network_id, Shapes::ShapeRef.new(shape: String, location_name: "peerCoreNetworkId"))
    TransitGatewayRouteTableAnnouncement.add_member(:peering_attachment_id, Shapes::ShapeRef.new(shape: TransitGatewayAttachmentId, location_name: "peeringAttachmentId"))
    TransitGatewayRouteTableAnnouncement.add_member(:announcement_direction, Shapes::ShapeRef.new(shape: TransitGatewayRouteTableAnnouncementDirection, location_name: "announcementDirection"))
    TransitGatewayRouteTableAnnouncement.add_member(:transit_gateway_route_table_id, Shapes::ShapeRef.new(shape: TransitGatewayRouteTableId, location_name: "transitGatewayRouteTableId"))
    TransitGatewayRouteTableAnnouncement.add_member(:state, Shapes::ShapeRef.new(shape: TransitGatewayRouteTableAnnouncementState, location_name: "state"))
    TransitGatewayRouteTableAnnouncement.add_member(:creation_time, Shapes::ShapeRef.new(shape: DateTime, location_name: "creationTime"))
    TransitGatewayRouteTableAnnouncement.add_member(:tags, Shapes::ShapeRef.new(shape: TagList, location_name: "tagSet"))
    TransitGatewayRouteTableAnnouncement.struct_class = Types::TransitGatewayRouteTableAnnouncement

    TransitGatewayRouteTableAnnouncementIdStringList.member = Shapes::ShapeRef.new(shape: TransitGatewayRouteTableAnnouncementId, location_name: "item")

    TransitGatewayRouteTableAnnouncementList.member = Shapes::ShapeRef.new(shape: TransitGatewayRouteTableAnnouncement, location_name: "item")

    TransitGatewayRouteTableAssociation.add_member(:transit_gateway_attachment_id, Shapes::ShapeRef.new(shape: String, location_name: "transitGatewayAttachmentId"))
    TransitGatewayRouteTableAssociation.add_member(:resource_id, Shapes::ShapeRef.new(shape: String, location_name: "resourceId"))
    TransitGatewayRouteTableAssociation.add_member(:resource_type, Shapes::ShapeRef.new(shape: TransitGatewayAttachmentResourceType, location_name: "resourceType"))
    TransitGatewayRouteTableAssociation.add_member(:state, Shapes::ShapeRef.new(shape: TransitGatewayAssociationState, location_name: "state"))
    TransitGatewayRouteTableAssociation.struct_class = Types::TransitGatewayRouteTableAssociation

    TransitGatewayRouteTableAssociationList.member = Shapes::ShapeRef.new(shape: TransitGatewayRouteTableAssociation, location_name: "item")

    TransitGatewayRouteTableIdStringList.member = Shapes::ShapeRef.new(shape: TransitGatewayRouteTableId, location_name: "item")

    TransitGatewayRouteTableList.member = Shapes::ShapeRef.new(shape: TransitGatewayRouteTable, location_name: "item")

    TransitGatewayRouteTablePropagation.add_member(:transit_gateway_attachment_id, Shapes::ShapeRef.new(shape: String, location_name: "transitGatewayAttachmentId"))
    TransitGatewayRouteTablePropagation.add_member(:resource_id, Shapes::ShapeRef.new(shape: String, location_name: "resourceId"))
    TransitGatewayRouteTablePropagation.add_member(:resource_type, Shapes::ShapeRef.new(shape: TransitGatewayAttachmentResourceType, location_name: "resourceType"))
    TransitGatewayRouteTablePropagation.add_member(:state, Shapes::ShapeRef.new(shape: TransitGatewayPropagationState, location_name: "state"))
    TransitGatewayRouteTablePropagation.add_member(:transit_gateway_route_table_announcement_id, Shapes::ShapeRef.new(shape: TransitGatewayRouteTableAnnouncementId, location_name: "transitGatewayRouteTableAnnouncementId"))
    TransitGatewayRouteTablePropagation.struct_class = Types::TransitGatewayRouteTablePropagation

    TransitGatewayRouteTablePropagationList.member = Shapes::ShapeRef.new(shape: TransitGatewayRouteTablePropagation, location_name: "item")

    TransitGatewayRouteTableRoute.add_member(:destination_cidr, Shapes::ShapeRef.new(shape: String, location_name: "destinationCidr"))
    TransitGatewayRouteTableRoute.add_member(:state, Shapes::ShapeRef.new(shape: String, location_name: "state"))
    TransitGatewayRouteTableRoute.add_member(:route_origin, Shapes::ShapeRef.new(shape: String, location_name: "routeOrigin"))
    TransitGatewayRouteTableRoute.add_member(:prefix_list_id, Shapes::ShapeRef.new(shape: String, location_name: "prefixListId"))
    TransitGatewayRouteTableRoute.add_member(:attachment_id, Shapes::ShapeRef.new(shape: String, location_name: "attachmentId"))
    TransitGatewayRouteTableRoute.add_member(:resource_id, Shapes::ShapeRef.new(shape: String, location_name: "resourceId"))
    TransitGatewayRouteTableRoute.add_member(:resource_type, Shapes::ShapeRef.new(shape: String, location_name: "resourceType"))
    TransitGatewayRouteTableRoute.struct_class = Types::TransitGatewayRouteTableRoute

    TransitGatewaySubnetIdList.member = Shapes::ShapeRef.new(shape: SubnetId, location_name: "item")

    TransitGatewayVpcAttachment.add_member(:transit_gateway_attachment_id, Shapes::ShapeRef.new(shape: String, location_name: "transitGatewayAttachmentId"))
    TransitGatewayVpcAttachment.add_member(:transit_gateway_id, Shapes::ShapeRef.new(shape: String, location_name: "transitGatewayId"))
    TransitGatewayVpcAttachment.add_member(:vpc_id, Shapes::ShapeRef.new(shape: String, location_name: "vpcId"))
    TransitGatewayVpcAttachment.add_member(:vpc_owner_id, Shapes::ShapeRef.new(shape: String, location_name: "vpcOwnerId"))
    TransitGatewayVpcAttachment.add_member(:state, Shapes::ShapeRef.new(shape: TransitGatewayAttachmentState, location_name: "state"))
    TransitGatewayVpcAttachment.add_member(:subnet_ids, Shapes::ShapeRef.new(shape: ValueStringList, location_name: "subnetIds"))
    TransitGatewayVpcAttachment.add_member(:creation_time, Shapes::ShapeRef.new(shape: DateTime, location_name: "creationTime"))
    TransitGatewayVpcAttachment.add_member(:options, Shapes::ShapeRef.new(shape: TransitGatewayVpcAttachmentOptions, location_name: "options"))
    TransitGatewayVpcAttachment.add_member(:tags, Shapes::ShapeRef.new(shape: TagList, location_name: "tagSet"))
    TransitGatewayVpcAttachment.struct_class = Types::TransitGatewayVpcAttachment

    TransitGatewayVpcAttachmentList.member = Shapes::ShapeRef.new(shape: TransitGatewayVpcAttachment, location_name: "item")

    TransitGatewayVpcAttachmentOptions.add_member(:dns_support, Shapes::ShapeRef.new(shape: DnsSupportValue, location_name: "dnsSupport"))
    TransitGatewayVpcAttachmentOptions.add_member(:security_group_referencing_support, Shapes::ShapeRef.new(shape: SecurityGroupReferencingSupportValue, location_name: "securityGroupReferencingSupport"))
    TransitGatewayVpcAttachmentOptions.add_member(:ipv_6_support, Shapes::ShapeRef.new(shape: Ipv6SupportValue, location_name: "ipv6Support"))
    TransitGatewayVpcAttachmentOptions.add_member(:appliance_mode_support, Shapes::ShapeRef.new(shape: ApplianceModeSupportValue, location_name: "applianceModeSupport"))
    TransitGatewayVpcAttachmentOptions.struct_class = Types::TransitGatewayVpcAttachmentOptions

    TrunkInterfaceAssociation.add_member(:association_id, Shapes::ShapeRef.new(shape: TrunkInterfaceAssociationId, location_name: "associationId"))
    TrunkInterfaceAssociation.add_member(:branch_interface_id, Shapes::ShapeRef.new(shape: String, location_name: "branchInterfaceId"))
    TrunkInterfaceAssociation.add_member(:trunk_interface_id, Shapes::ShapeRef.new(shape: String, location_name: "trunkInterfaceId"))
    TrunkInterfaceAssociation.add_member(:interface_protocol, Shapes::ShapeRef.new(shape: InterfaceProtocolType, location_name: "interfaceProtocol"))
    TrunkInterfaceAssociation.add_member(:vlan_id, Shapes::ShapeRef.new(shape: Integer, location_name: "vlanId"))
    TrunkInterfaceAssociation.add_member(:gre_key, Shapes::ShapeRef.new(shape: Integer, location_name: "greKey"))
    TrunkInterfaceAssociation.add_member(:tags, Shapes::ShapeRef.new(shape: TagList, location_name: "tagSet"))
    TrunkInterfaceAssociation.struct_class = Types::TrunkInterfaceAssociation

    TrunkInterfaceAssociationIdList.member = Shapes::ShapeRef.new(shape: TrunkInterfaceAssociationId, location_name: "item")

    TrunkInterfaceAssociationList.member = Shapes::ShapeRef.new(shape: TrunkInterfaceAssociation, location_name: "item")

    TunnelOption.add_member(:outside_ip_address, Shapes::ShapeRef.new(shape: String, location_name: "outsideIpAddress"))
    TunnelOption.add_member(:tunnel_inside_cidr, Shapes::ShapeRef.new(shape: String, location_name: "tunnelInsideCidr"))
    TunnelOption.add_member(:tunnel_inside_ipv_6_cidr, Shapes::ShapeRef.new(shape: String, location_name: "tunnelInsideIpv6Cidr"))
    TunnelOption.add_member(:pre_shared_key, Shapes::ShapeRef.new(shape: preSharedKey, location_name: "preSharedKey"))
    TunnelOption.add_member(:phase_1_lifetime_seconds, Shapes::ShapeRef.new(shape: Integer, location_name: "phase1LifetimeSeconds"))
    TunnelOption.add_member(:phase_2_lifetime_seconds, Shapes::ShapeRef.new(shape: Integer, location_name: "phase2LifetimeSeconds"))
    TunnelOption.add_member(:rekey_margin_time_seconds, Shapes::ShapeRef.new(shape: Integer, location_name: "rekeyMarginTimeSeconds"))
    TunnelOption.add_member(:rekey_fuzz_percentage, Shapes::ShapeRef.new(shape: Integer, location_name: "rekeyFuzzPercentage"))
    TunnelOption.add_member(:replay_window_size, Shapes::ShapeRef.new(shape: Integer, location_name: "replayWindowSize"))
    TunnelOption.add_member(:dpd_timeout_seconds, Shapes::ShapeRef.new(shape: Integer, location_name: "dpdTimeoutSeconds"))
    TunnelOption.add_member(:dpd_timeout_action, Shapes::ShapeRef.new(shape: String, location_name: "dpdTimeoutAction"))
    TunnelOption.add_member(:phase_1_encryption_algorithms, Shapes::ShapeRef.new(shape: Phase1EncryptionAlgorithmsList, location_name: "phase1EncryptionAlgorithmSet"))
    TunnelOption.add_member(:phase_2_encryption_algorithms, Shapes::ShapeRef.new(shape: Phase2EncryptionAlgorithmsList, location_name: "phase2EncryptionAlgorithmSet"))
    TunnelOption.add_member(:phase_1_integrity_algorithms, Shapes::ShapeRef.new(shape: Phase1IntegrityAlgorithmsList, location_name: "phase1IntegrityAlgorithmSet"))
    TunnelOption.add_member(:phase_2_integrity_algorithms, Shapes::ShapeRef.new(shape: Phase2IntegrityAlgorithmsList, location_name: "phase2IntegrityAlgorithmSet"))
    TunnelOption.add_member(:phase_1_dh_group_numbers, Shapes::ShapeRef.new(shape: Phase1DHGroupNumbersList, location_name: "phase1DHGroupNumberSet"))
    TunnelOption.add_member(:phase_2_dh_group_numbers, Shapes::ShapeRef.new(shape: Phase2DHGroupNumbersList, location_name: "phase2DHGroupNumberSet"))
    TunnelOption.add_member(:ike_versions, Shapes::ShapeRef.new(shape: IKEVersionsList, location_name: "ikeVersionSet"))
    TunnelOption.add_member(:startup_action, Shapes::ShapeRef.new(shape: String, location_name: "startupAction"))
    TunnelOption.add_member(:log_options, Shapes::ShapeRef.new(shape: VpnTunnelLogOptions, location_name: "logOptions"))
    TunnelOption.add_member(:enable_tunnel_lifecycle_control, Shapes::ShapeRef.new(shape: Boolean, location_name: "enableTunnelLifecycleControl"))
    TunnelOption.struct_class = Types::TunnelOption

    TunnelOptionsList.member = Shapes::ShapeRef.new(shape: TunnelOption, location_name: "item")

    UnassignIpv6AddressesRequest.add_member(:ipv_6_prefixes, Shapes::ShapeRef.new(shape: IpPrefixList, location_name: "Ipv6Prefix"))
    UnassignIpv6AddressesRequest.add_member(:network_interface_id, Shapes::ShapeRef.new(shape: NetworkInterfaceId, required: true, location_name: "networkInterfaceId"))
    UnassignIpv6AddressesRequest.add_member(:ipv_6_addresses, Shapes::ShapeRef.new(shape: Ipv6AddressList, location_name: "ipv6Addresses"))
    UnassignIpv6AddressesRequest.struct_class = Types::UnassignIpv6AddressesRequest

    UnassignIpv6AddressesResult.add_member(:network_interface_id, Shapes::ShapeRef.new(shape: String, location_name: "networkInterfaceId"))
    UnassignIpv6AddressesResult.add_member(:unassigned_ipv_6_addresses, Shapes::ShapeRef.new(shape: Ipv6AddressList, location_name: "unassignedIpv6Addresses"))
    UnassignIpv6AddressesResult.add_member(:unassigned_ipv_6_prefixes, Shapes::ShapeRef.new(shape: IpPrefixList, location_name: "unassignedIpv6PrefixSet"))
    UnassignIpv6AddressesResult.struct_class = Types::UnassignIpv6AddressesResult

    UnassignPrivateIpAddressesRequest.add_member(:ipv_4_prefixes, Shapes::ShapeRef.new(shape: IpPrefixList, location_name: "Ipv4Prefix"))
    UnassignPrivateIpAddressesRequest.add_member(:network_interface_id, Shapes::ShapeRef.new(shape: NetworkInterfaceId, required: true, location_name: "networkInterfaceId"))
    UnassignPrivateIpAddressesRequest.add_member(:private_ip_addresses, Shapes::ShapeRef.new(shape: PrivateIpAddressStringList, location_name: "privateIpAddress"))
    UnassignPrivateIpAddressesRequest.struct_class = Types::UnassignPrivateIpAddressesRequest

    UnassignPrivateNatGatewayAddressRequest.add_member(:nat_gateway_id, Shapes::ShapeRef.new(shape: NatGatewayId, required: true, location_name: "NatGatewayId"))
    UnassignPrivateNatGatewayAddressRequest.add_member(:private_ip_addresses, Shapes::ShapeRef.new(shape: IpList, required: true, location_name: "PrivateIpAddress"))
    UnassignPrivateNatGatewayAddressRequest.add_member(:max_drain_duration_seconds, Shapes::ShapeRef.new(shape: DrainSeconds, location_name: "MaxDrainDurationSeconds"))
    UnassignPrivateNatGatewayAddressRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    UnassignPrivateNatGatewayAddressRequest.struct_class = Types::UnassignPrivateNatGatewayAddressRequest

    UnassignPrivateNatGatewayAddressResult.add_member(:nat_gateway_id, Shapes::ShapeRef.new(shape: NatGatewayId, location_name: "natGatewayId"))
    UnassignPrivateNatGatewayAddressResult.add_member(:nat_gateway_addresses, Shapes::ShapeRef.new(shape: NatGatewayAddressList, location_name: "natGatewayAddressSet"))
    UnassignPrivateNatGatewayAddressResult.struct_class = Types::UnassignPrivateNatGatewayAddressResult

    UnlockSnapshotRequest.add_member(:snapshot_id, Shapes::ShapeRef.new(shape: SnapshotId, required: true, location_name: "SnapshotId"))
    UnlockSnapshotRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    UnlockSnapshotRequest.struct_class = Types::UnlockSnapshotRequest

    UnlockSnapshotResult.add_member(:snapshot_id, Shapes::ShapeRef.new(shape: String, location_name: "snapshotId"))
    UnlockSnapshotResult.struct_class = Types::UnlockSnapshotResult

    UnmonitorInstancesRequest.add_member(:instance_ids, Shapes::ShapeRef.new(shape: InstanceIdStringList, required: true, location_name: "InstanceId"))
    UnmonitorInstancesRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "dryRun"))
    UnmonitorInstancesRequest.struct_class = Types::UnmonitorInstancesRequest

    UnmonitorInstancesResult.add_member(:instance_monitorings, Shapes::ShapeRef.new(shape: InstanceMonitoringList, location_name: "instancesSet"))
    UnmonitorInstancesResult.struct_class = Types::UnmonitorInstancesResult

    UnsuccessfulInstanceCreditSpecificationItem.add_member(:instance_id, Shapes::ShapeRef.new(shape: String, location_name: "instanceId"))
    UnsuccessfulInstanceCreditSpecificationItem.add_member(:error, Shapes::ShapeRef.new(shape: UnsuccessfulInstanceCreditSpecificationItemError, location_name: "error"))
    UnsuccessfulInstanceCreditSpecificationItem.struct_class = Types::UnsuccessfulInstanceCreditSpecificationItem

    UnsuccessfulInstanceCreditSpecificationItemError.add_member(:code, Shapes::ShapeRef.new(shape: UnsuccessfulInstanceCreditSpecificationErrorCode, location_name: "code"))
    UnsuccessfulInstanceCreditSpecificationItemError.add_member(:message, Shapes::ShapeRef.new(shape: String, location_name: "message"))
    UnsuccessfulInstanceCreditSpecificationItemError.struct_class = Types::UnsuccessfulInstanceCreditSpecificationItemError

    UnsuccessfulInstanceCreditSpecificationSet.member = Shapes::ShapeRef.new(shape: UnsuccessfulInstanceCreditSpecificationItem, location_name: "item")

    UnsuccessfulItem.add_member(:error, Shapes::ShapeRef.new(shape: UnsuccessfulItemError, location_name: "error"))
    UnsuccessfulItem.add_member(:resource_id, Shapes::ShapeRef.new(shape: String, location_name: "resourceId"))
    UnsuccessfulItem.struct_class = Types::UnsuccessfulItem

    UnsuccessfulItemError.add_member(:code, Shapes::ShapeRef.new(shape: String, location_name: "code"))
    UnsuccessfulItemError.add_member(:message, Shapes::ShapeRef.new(shape: String, location_name: "message"))
    UnsuccessfulItemError.struct_class = Types::UnsuccessfulItemError

    UnsuccessfulItemList.member = Shapes::ShapeRef.new(shape: UnsuccessfulItem, location_name: "item")

    UnsuccessfulItemSet.member = Shapes::ShapeRef.new(shape: UnsuccessfulItem, location_name: "item")

    UpdateSecurityGroupRuleDescriptionsEgressRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    UpdateSecurityGroupRuleDescriptionsEgressRequest.add_member(:group_id, Shapes::ShapeRef.new(shape: SecurityGroupId, location_name: "GroupId"))
    UpdateSecurityGroupRuleDescriptionsEgressRequest.add_member(:group_name, Shapes::ShapeRef.new(shape: SecurityGroupName, location_name: "GroupName"))
    UpdateSecurityGroupRuleDescriptionsEgressRequest.add_member(:ip_permissions, Shapes::ShapeRef.new(shape: IpPermissionList, location_name: "IpPermissions"))
    UpdateSecurityGroupRuleDescriptionsEgressRequest.add_member(:security_group_rule_descriptions, Shapes::ShapeRef.new(shape: SecurityGroupRuleDescriptionList, location_name: "SecurityGroupRuleDescription"))
    UpdateSecurityGroupRuleDescriptionsEgressRequest.struct_class = Types::UpdateSecurityGroupRuleDescriptionsEgressRequest

    UpdateSecurityGroupRuleDescriptionsEgressResult.add_member(:return, Shapes::ShapeRef.new(shape: Boolean, location_name: "return"))
    UpdateSecurityGroupRuleDescriptionsEgressResult.struct_class = Types::UpdateSecurityGroupRuleDescriptionsEgressResult

    UpdateSecurityGroupRuleDescriptionsIngressRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    UpdateSecurityGroupRuleDescriptionsIngressRequest.add_member(:group_id, Shapes::ShapeRef.new(shape: SecurityGroupId, location_name: "GroupId"))
    UpdateSecurityGroupRuleDescriptionsIngressRequest.add_member(:group_name, Shapes::ShapeRef.new(shape: SecurityGroupName, location_name: "GroupName"))
    UpdateSecurityGroupRuleDescriptionsIngressRequest.add_member(:ip_permissions, Shapes::ShapeRef.new(shape: IpPermissionList, location_name: "IpPermissions"))
    UpdateSecurityGroupRuleDescriptionsIngressRequest.add_member(:security_group_rule_descriptions, Shapes::ShapeRef.new(shape: SecurityGroupRuleDescriptionList, location_name: "SecurityGroupRuleDescription"))
    UpdateSecurityGroupRuleDescriptionsIngressRequest.struct_class = Types::UpdateSecurityGroupRuleDescriptionsIngressRequest

    UpdateSecurityGroupRuleDescriptionsIngressResult.add_member(:return, Shapes::ShapeRef.new(shape: Boolean, location_name: "return"))
    UpdateSecurityGroupRuleDescriptionsIngressResult.struct_class = Types::UpdateSecurityGroupRuleDescriptionsIngressResult

    UsageClassTypeList.member = Shapes::ShapeRef.new(shape: UsageClassType, location_name: "item")

    UserBucket.add_member(:s3_bucket, Shapes::ShapeRef.new(shape: String, location_name: "S3Bucket"))
    UserBucket.add_member(:s3_key, Shapes::ShapeRef.new(shape: String, location_name: "S3Key"))
    UserBucket.struct_class = Types::UserBucket

    UserBucketDetails.add_member(:s3_bucket, Shapes::ShapeRef.new(shape: String, location_name: "s3Bucket"))
    UserBucketDetails.add_member(:s3_key, Shapes::ShapeRef.new(shape: String, location_name: "s3Key"))
    UserBucketDetails.struct_class = Types::UserBucketDetails

    UserData.add_member(:data, Shapes::ShapeRef.new(shape: String, location_name: "data"))
    UserData.struct_class = Types::UserData

    UserGroupStringList.member = Shapes::ShapeRef.new(shape: String, location_name: "UserGroup")

    UserIdGroupPair.add_member(:description, Shapes::ShapeRef.new(shape: String, location_name: "description"))
    UserIdGroupPair.add_member(:user_id, Shapes::ShapeRef.new(shape: String, location_name: "userId"))
    UserIdGroupPair.add_member(:group_name, Shapes::ShapeRef.new(shape: String, location_name: "groupName"))
    UserIdGroupPair.add_member(:group_id, Shapes::ShapeRef.new(shape: String, location_name: "groupId"))
    UserIdGroupPair.add_member(:vpc_id, Shapes::ShapeRef.new(shape: String, location_name: "vpcId"))
    UserIdGroupPair.add_member(:vpc_peering_connection_id, Shapes::ShapeRef.new(shape: String, location_name: "vpcPeeringConnectionId"))
    UserIdGroupPair.add_member(:peering_status, Shapes::ShapeRef.new(shape: String, location_name: "peeringStatus"))
    UserIdGroupPair.struct_class = Types::UserIdGroupPair

    UserIdGroupPairList.member = Shapes::ShapeRef.new(shape: UserIdGroupPair, location_name: "item")

    UserIdGroupPairSet.member = Shapes::ShapeRef.new(shape: UserIdGroupPair, location_name: "item")

    UserIdStringList.member = Shapes::ShapeRef.new(shape: String, location_name: "UserId")

    VCpuCountRange.add_member(:min, Shapes::ShapeRef.new(shape: Integer, location_name: "min"))
    VCpuCountRange.add_member(:max, Shapes::ShapeRef.new(shape: Integer, location_name: "max"))
    VCpuCountRange.struct_class = Types::VCpuCountRange

    VCpuCountRangeRequest.add_member(:min, Shapes::ShapeRef.new(shape: Integer, required: true, location_name: "Min"))
    VCpuCountRangeRequest.add_member(:max, Shapes::ShapeRef.new(shape: Integer, location_name: "Max"))
    VCpuCountRangeRequest.struct_class = Types::VCpuCountRangeRequest

    VCpuInfo.add_member(:default_v_cpus, Shapes::ShapeRef.new(shape: VCpuCount, location_name: "defaultVCpus"))
    VCpuInfo.add_member(:default_cores, Shapes::ShapeRef.new(shape: CoreCount, location_name: "defaultCores"))
    VCpuInfo.add_member(:default_threads_per_core, Shapes::ShapeRef.new(shape: ThreadsPerCore, location_name: "defaultThreadsPerCore"))
    VCpuInfo.add_member(:valid_cores, Shapes::ShapeRef.new(shape: CoreCountList, location_name: "validCores"))
    VCpuInfo.add_member(:valid_threads_per_core, Shapes::ShapeRef.new(shape: ThreadsPerCoreList, location_name: "validThreadsPerCore"))
    VCpuInfo.struct_class = Types::VCpuInfo

    ValidationError.add_member(:code, Shapes::ShapeRef.new(shape: String, location_name: "code"))
    ValidationError.add_member(:message, Shapes::ShapeRef.new(shape: String, location_name: "message"))
    ValidationError.struct_class = Types::ValidationError

    ValidationWarning.add_member(:errors, Shapes::ShapeRef.new(shape: ErrorSet, location_name: "errorSet"))
    ValidationWarning.struct_class = Types::ValidationWarning

    ValueStringList.member = Shapes::ShapeRef.new(shape: String, location_name: "item")

    VerifiedAccessEndpoint.add_member(:verified_access_instance_id, Shapes::ShapeRef.new(shape: String, location_name: "verifiedAccessInstanceId"))
    VerifiedAccessEndpoint.add_member(:verified_access_group_id, Shapes::ShapeRef.new(shape: String, location_name: "verifiedAccessGroupId"))
    VerifiedAccessEndpoint.add_member(:verified_access_endpoint_id, Shapes::ShapeRef.new(shape: String, location_name: "verifiedAccessEndpointId"))
    VerifiedAccessEndpoint.add_member(:application_domain, Shapes::ShapeRef.new(shape: String, location_name: "applicationDomain"))
    VerifiedAccessEndpoint.add_member(:endpoint_type, Shapes::ShapeRef.new(shape: VerifiedAccessEndpointType, location_name: "endpointType"))
    VerifiedAccessEndpoint.add_member(:attachment_type, Shapes::ShapeRef.new(shape: VerifiedAccessEndpointAttachmentType, location_name: "attachmentType"))
    VerifiedAccessEndpoint.add_member(:domain_certificate_arn, Shapes::ShapeRef.new(shape: String, location_name: "domainCertificateArn"))
    VerifiedAccessEndpoint.add_member(:endpoint_domain, Shapes::ShapeRef.new(shape: String, location_name: "endpointDomain"))
    VerifiedAccessEndpoint.add_member(:device_validation_domain, Shapes::ShapeRef.new(shape: String, location_name: "deviceValidationDomain"))
    VerifiedAccessEndpoint.add_member(:security_group_ids, Shapes::ShapeRef.new(shape: SecurityGroupIdList, location_name: "securityGroupIdSet"))
    VerifiedAccessEndpoint.add_member(:load_balancer_options, Shapes::ShapeRef.new(shape: VerifiedAccessEndpointLoadBalancerOptions, location_name: "loadBalancerOptions"))
    VerifiedAccessEndpoint.add_member(:network_interface_options, Shapes::ShapeRef.new(shape: VerifiedAccessEndpointEniOptions, location_name: "networkInterfaceOptions"))
    VerifiedAccessEndpoint.add_member(:status, Shapes::ShapeRef.new(shape: VerifiedAccessEndpointStatus, location_name: "status"))
    VerifiedAccessEndpoint.add_member(:description, Shapes::ShapeRef.new(shape: String, location_name: "description"))
    VerifiedAccessEndpoint.add_member(:creation_time, Shapes::ShapeRef.new(shape: String, location_name: "creationTime"))
    VerifiedAccessEndpoint.add_member(:last_updated_time, Shapes::ShapeRef.new(shape: String, location_name: "lastUpdatedTime"))
    VerifiedAccessEndpoint.add_member(:deletion_time, Shapes::ShapeRef.new(shape: String, location_name: "deletionTime"))
    VerifiedAccessEndpoint.add_member(:tags, Shapes::ShapeRef.new(shape: TagList, location_name: "tagSet"))
    VerifiedAccessEndpoint.add_member(:sse_specification, Shapes::ShapeRef.new(shape: VerifiedAccessSseSpecificationResponse, location_name: "sseSpecification"))
    VerifiedAccessEndpoint.add_member(:rds_options, Shapes::ShapeRef.new(shape: VerifiedAccessEndpointRdsOptions, location_name: "rdsOptions"))
    VerifiedAccessEndpoint.add_member(:cidr_options, Shapes::ShapeRef.new(shape: VerifiedAccessEndpointCidrOptions, location_name: "cidrOptions"))
    VerifiedAccessEndpoint.struct_class = Types::VerifiedAccessEndpoint

    VerifiedAccessEndpointCidrOptions.add_member(:cidr, Shapes::ShapeRef.new(shape: String, location_name: "cidr"))
    VerifiedAccessEndpointCidrOptions.add_member(:port_ranges, Shapes::ShapeRef.new(shape: VerifiedAccessEndpointPortRangeList, location_name: "portRangeSet"))
    VerifiedAccessEndpointCidrOptions.add_member(:protocol, Shapes::ShapeRef.new(shape: VerifiedAccessEndpointProtocol, location_name: "protocol"))
    VerifiedAccessEndpointCidrOptions.add_member(:subnet_ids, Shapes::ShapeRef.new(shape: VerifiedAccessEndpointSubnetIdList, location_name: "subnetIdSet"))
    VerifiedAccessEndpointCidrOptions.struct_class = Types::VerifiedAccessEndpointCidrOptions

    VerifiedAccessEndpointEniOptions.add_member(:network_interface_id, Shapes::ShapeRef.new(shape: NetworkInterfaceId, location_name: "networkInterfaceId"))
    VerifiedAccessEndpointEniOptions.add_member(:protocol, Shapes::ShapeRef.new(shape: VerifiedAccessEndpointProtocol, location_name: "protocol"))
    VerifiedAccessEndpointEniOptions.add_member(:port, Shapes::ShapeRef.new(shape: VerifiedAccessEndpointPortNumber, location_name: "port"))
    VerifiedAccessEndpointEniOptions.add_member(:port_ranges, Shapes::ShapeRef.new(shape: VerifiedAccessEndpointPortRangeList, location_name: "portRangeSet"))
    VerifiedAccessEndpointEniOptions.struct_class = Types::VerifiedAccessEndpointEniOptions

    VerifiedAccessEndpointIdList.member = Shapes::ShapeRef.new(shape: VerifiedAccessEndpointId, location_name: "item")

    VerifiedAccessEndpointList.member = Shapes::ShapeRef.new(shape: VerifiedAccessEndpoint, location_name: "item")

    VerifiedAccessEndpointLoadBalancerOptions.add_member(:protocol, Shapes::ShapeRef.new(shape: VerifiedAccessEndpointProtocol, location_name: "protocol"))
    VerifiedAccessEndpointLoadBalancerOptions.add_member(:port, Shapes::ShapeRef.new(shape: VerifiedAccessEndpointPortNumber, location_name: "port"))
    VerifiedAccessEndpointLoadBalancerOptions.add_member(:load_balancer_arn, Shapes::ShapeRef.new(shape: String, location_name: "loadBalancerArn"))
    VerifiedAccessEndpointLoadBalancerOptions.add_member(:subnet_ids, Shapes::ShapeRef.new(shape: VerifiedAccessEndpointSubnetIdList, location_name: "subnetIdSet"))
    VerifiedAccessEndpointLoadBalancerOptions.add_member(:port_ranges, Shapes::ShapeRef.new(shape: VerifiedAccessEndpointPortRangeList, location_name: "portRangeSet"))
    VerifiedAccessEndpointLoadBalancerOptions.struct_class = Types::VerifiedAccessEndpointLoadBalancerOptions

    VerifiedAccessEndpointPortRange.add_member(:from_port, Shapes::ShapeRef.new(shape: VerifiedAccessEndpointPortNumber, location_name: "fromPort"))
    VerifiedAccessEndpointPortRange.add_member(:to_port, Shapes::ShapeRef.new(shape: VerifiedAccessEndpointPortNumber, location_name: "toPort"))
    VerifiedAccessEndpointPortRange.struct_class = Types::VerifiedAccessEndpointPortRange

    VerifiedAccessEndpointPortRangeList.member = Shapes::ShapeRef.new(shape: VerifiedAccessEndpointPortRange, location_name: "item")

    VerifiedAccessEndpointRdsOptions.add_member(:protocol, Shapes::ShapeRef.new(shape: VerifiedAccessEndpointProtocol, location_name: "protocol"))
    VerifiedAccessEndpointRdsOptions.add_member(:port, Shapes::ShapeRef.new(shape: VerifiedAccessEndpointPortNumber, location_name: "port"))
    VerifiedAccessEndpointRdsOptions.add_member(:rds_db_instance_arn, Shapes::ShapeRef.new(shape: String, location_name: "rdsDbInstanceArn"))
    VerifiedAccessEndpointRdsOptions.add_member(:rds_db_cluster_arn, Shapes::ShapeRef.new(shape: String, location_name: "rdsDbClusterArn"))
    VerifiedAccessEndpointRdsOptions.add_member(:rds_db_proxy_arn, Shapes::ShapeRef.new(shape: String, location_name: "rdsDbProxyArn"))
    VerifiedAccessEndpointRdsOptions.add_member(:rds_endpoint, Shapes::ShapeRef.new(shape: String, location_name: "rdsEndpoint"))
    VerifiedAccessEndpointRdsOptions.add_member(:subnet_ids, Shapes::ShapeRef.new(shape: VerifiedAccessEndpointSubnetIdList, location_name: "subnetIdSet"))
    VerifiedAccessEndpointRdsOptions.struct_class = Types::VerifiedAccessEndpointRdsOptions

    VerifiedAccessEndpointStatus.add_member(:code, Shapes::ShapeRef.new(shape: VerifiedAccessEndpointStatusCode, location_name: "code"))
    VerifiedAccessEndpointStatus.add_member(:message, Shapes::ShapeRef.new(shape: String, location_name: "message"))
    VerifiedAccessEndpointStatus.struct_class = Types::VerifiedAccessEndpointStatus

    VerifiedAccessEndpointSubnetIdList.member = Shapes::ShapeRef.new(shape: SubnetId, location_name: "item")

    VerifiedAccessEndpointTarget.add_member(:verified_access_endpoint_id, Shapes::ShapeRef.new(shape: VerifiedAccessEndpointId, location_name: "verifiedAccessEndpointId"))
    VerifiedAccessEndpointTarget.add_member(:verified_access_endpoint_target_ip_address, Shapes::ShapeRef.new(shape: String, location_name: "verifiedAccessEndpointTargetIpAddress"))
    VerifiedAccessEndpointTarget.add_member(:verified_access_endpoint_target_dns, Shapes::ShapeRef.new(shape: String, location_name: "verifiedAccessEndpointTargetDns"))
    VerifiedAccessEndpointTarget.struct_class = Types::VerifiedAccessEndpointTarget

    VerifiedAccessEndpointTargetList.member = Shapes::ShapeRef.new(shape: VerifiedAccessEndpointTarget, location_name: "item")

    VerifiedAccessGroup.add_member(:verified_access_group_id, Shapes::ShapeRef.new(shape: String, location_name: "verifiedAccessGroupId"))
    VerifiedAccessGroup.add_member(:verified_access_instance_id, Shapes::ShapeRef.new(shape: String, location_name: "verifiedAccessInstanceId"))
    VerifiedAccessGroup.add_member(:description, Shapes::ShapeRef.new(shape: String, location_name: "description"))
    VerifiedAccessGroup.add_member(:owner, Shapes::ShapeRef.new(shape: String, location_name: "owner"))
    VerifiedAccessGroup.add_member(:verified_access_group_arn, Shapes::ShapeRef.new(shape: String, location_name: "verifiedAccessGroupArn"))
    VerifiedAccessGroup.add_member(:creation_time, Shapes::ShapeRef.new(shape: String, location_name: "creationTime"))
    VerifiedAccessGroup.add_member(:last_updated_time, Shapes::ShapeRef.new(shape: String, location_name: "lastUpdatedTime"))
    VerifiedAccessGroup.add_member(:deletion_time, Shapes::ShapeRef.new(shape: String, location_name: "deletionTime"))
    VerifiedAccessGroup.add_member(:tags, Shapes::ShapeRef.new(shape: TagList, location_name: "tagSet"))
    VerifiedAccessGroup.add_member(:sse_specification, Shapes::ShapeRef.new(shape: VerifiedAccessSseSpecificationResponse, location_name: "sseSpecification"))
    VerifiedAccessGroup.struct_class = Types::VerifiedAccessGroup

    VerifiedAccessGroupIdList.member = Shapes::ShapeRef.new(shape: VerifiedAccessGroupId, location_name: "item")

    VerifiedAccessGroupList.member = Shapes::ShapeRef.new(shape: VerifiedAccessGroup, location_name: "item")

    VerifiedAccessInstance.add_member(:verified_access_instance_id, Shapes::ShapeRef.new(shape: String, location_name: "verifiedAccessInstanceId"))
    VerifiedAccessInstance.add_member(:description, Shapes::ShapeRef.new(shape: String, location_name: "description"))
    VerifiedAccessInstance.add_member(:verified_access_trust_providers, Shapes::ShapeRef.new(shape: VerifiedAccessTrustProviderCondensedList, location_name: "verifiedAccessTrustProviderSet"))
    VerifiedAccessInstance.add_member(:creation_time, Shapes::ShapeRef.new(shape: String, location_name: "creationTime"))
    VerifiedAccessInstance.add_member(:last_updated_time, Shapes::ShapeRef.new(shape: String, location_name: "lastUpdatedTime"))
    VerifiedAccessInstance.add_member(:tags, Shapes::ShapeRef.new(shape: TagList, location_name: "tagSet"))
    VerifiedAccessInstance.add_member(:fips_enabled, Shapes::ShapeRef.new(shape: Boolean, location_name: "fipsEnabled"))
    VerifiedAccessInstance.add_member(:cidr_endpoints_custom_sub_domain, Shapes::ShapeRef.new(shape: VerifiedAccessInstanceCustomSubDomain, location_name: "cidrEndpointsCustomSubDomain"))
    VerifiedAccessInstance.struct_class = Types::VerifiedAccessInstance

    VerifiedAccessInstanceCustomSubDomain.add_member(:sub_domain, Shapes::ShapeRef.new(shape: String, location_name: "subDomain"))
    VerifiedAccessInstanceCustomSubDomain.add_member(:nameservers, Shapes::ShapeRef.new(shape: ValueStringList, location_name: "nameserverSet"))
    VerifiedAccessInstanceCustomSubDomain.struct_class = Types::VerifiedAccessInstanceCustomSubDomain

    VerifiedAccessInstanceIdList.member = Shapes::ShapeRef.new(shape: VerifiedAccessInstanceId, location_name: "item")

    VerifiedAccessInstanceList.member = Shapes::ShapeRef.new(shape: VerifiedAccessInstance, location_name: "item")

    VerifiedAccessInstanceLoggingConfiguration.add_member(:verified_access_instance_id, Shapes::ShapeRef.new(shape: String, location_name: "verifiedAccessInstanceId"))
    VerifiedAccessInstanceLoggingConfiguration.add_member(:access_logs, Shapes::ShapeRef.new(shape: VerifiedAccessLogs, location_name: "accessLogs"))
    VerifiedAccessInstanceLoggingConfiguration.struct_class = Types::VerifiedAccessInstanceLoggingConfiguration

    VerifiedAccessInstanceLoggingConfigurationList.member = Shapes::ShapeRef.new(shape: VerifiedAccessInstanceLoggingConfiguration, location_name: "item")

    VerifiedAccessInstanceOpenVpnClientConfiguration.add_member(:config, Shapes::ShapeRef.new(shape: String, location_name: "config"))
    VerifiedAccessInstanceOpenVpnClientConfiguration.add_member(:routes, Shapes::ShapeRef.new(shape: VerifiedAccessInstanceOpenVpnClientConfigurationRouteList, location_name: "routeSet"))
    VerifiedAccessInstanceOpenVpnClientConfiguration.struct_class = Types::VerifiedAccessInstanceOpenVpnClientConfiguration

    VerifiedAccessInstanceOpenVpnClientConfigurationList.member = Shapes::ShapeRef.new(shape: VerifiedAccessInstanceOpenVpnClientConfiguration, location_name: "item")

    VerifiedAccessInstanceOpenVpnClientConfigurationRoute.add_member(:cidr, Shapes::ShapeRef.new(shape: String, location_name: "cidr"))
    VerifiedAccessInstanceOpenVpnClientConfigurationRoute.struct_class = Types::VerifiedAccessInstanceOpenVpnClientConfigurationRoute

    VerifiedAccessInstanceOpenVpnClientConfigurationRouteList.member = Shapes::ShapeRef.new(shape: VerifiedAccessInstanceOpenVpnClientConfigurationRoute, location_name: "item")

    VerifiedAccessInstanceUserTrustProviderClientConfiguration.add_member(:type, Shapes::ShapeRef.new(shape: UserTrustProviderType, location_name: "type"))
    VerifiedAccessInstanceUserTrustProviderClientConfiguration.add_member(:scopes, Shapes::ShapeRef.new(shape: String, location_name: "scopes"))
    VerifiedAccessInstanceUserTrustProviderClientConfiguration.add_member(:issuer, Shapes::ShapeRef.new(shape: String, location_name: "issuer"))
    VerifiedAccessInstanceUserTrustProviderClientConfiguration.add_member(:authorization_endpoint, Shapes::ShapeRef.new(shape: String, location_name: "authorizationEndpoint"))
    VerifiedAccessInstanceUserTrustProviderClientConfiguration.add_member(:public_signing_key_endpoint, Shapes::ShapeRef.new(shape: String, location_name: "publicSigningKeyEndpoint"))
    VerifiedAccessInstanceUserTrustProviderClientConfiguration.add_member(:token_endpoint, Shapes::ShapeRef.new(shape: String, location_name: "tokenEndpoint"))
    VerifiedAccessInstanceUserTrustProviderClientConfiguration.add_member(:user_info_endpoint, Shapes::ShapeRef.new(shape: String, location_name: "userInfoEndpoint"))
    VerifiedAccessInstanceUserTrustProviderClientConfiguration.add_member(:client_id, Shapes::ShapeRef.new(shape: String, location_name: "clientId"))
    VerifiedAccessInstanceUserTrustProviderClientConfiguration.add_member(:client_secret, Shapes::ShapeRef.new(shape: ClientSecretType, location_name: "clientSecret"))
    VerifiedAccessInstanceUserTrustProviderClientConfiguration.add_member(:pkce_enabled, Shapes::ShapeRef.new(shape: Boolean, location_name: "pkceEnabled"))
    VerifiedAccessInstanceUserTrustProviderClientConfiguration.struct_class = Types::VerifiedAccessInstanceUserTrustProviderClientConfiguration

    VerifiedAccessLogCloudWatchLogsDestination.add_member(:enabled, Shapes::ShapeRef.new(shape: Boolean, location_name: "enabled"))
    VerifiedAccessLogCloudWatchLogsDestination.add_member(:delivery_status, Shapes::ShapeRef.new(shape: VerifiedAccessLogDeliveryStatus, location_name: "deliveryStatus"))
    VerifiedAccessLogCloudWatchLogsDestination.add_member(:log_group, Shapes::ShapeRef.new(shape: String, location_name: "logGroup"))
    VerifiedAccessLogCloudWatchLogsDestination.struct_class = Types::VerifiedAccessLogCloudWatchLogsDestination

    VerifiedAccessLogCloudWatchLogsDestinationOptions.add_member(:enabled, Shapes::ShapeRef.new(shape: Boolean, required: true, location_name: "Enabled"))
    VerifiedAccessLogCloudWatchLogsDestinationOptions.add_member(:log_group, Shapes::ShapeRef.new(shape: String, location_name: "LogGroup"))
    VerifiedAccessLogCloudWatchLogsDestinationOptions.struct_class = Types::VerifiedAccessLogCloudWatchLogsDestinationOptions

    VerifiedAccessLogDeliveryStatus.add_member(:code, Shapes::ShapeRef.new(shape: VerifiedAccessLogDeliveryStatusCode, location_name: "code"))
    VerifiedAccessLogDeliveryStatus.add_member(:message, Shapes::ShapeRef.new(shape: String, location_name: "message"))
    VerifiedAccessLogDeliveryStatus.struct_class = Types::VerifiedAccessLogDeliveryStatus

    VerifiedAccessLogKinesisDataFirehoseDestination.add_member(:enabled, Shapes::ShapeRef.new(shape: Boolean, location_name: "enabled"))
    VerifiedAccessLogKinesisDataFirehoseDestination.add_member(:delivery_status, Shapes::ShapeRef.new(shape: VerifiedAccessLogDeliveryStatus, location_name: "deliveryStatus"))
    VerifiedAccessLogKinesisDataFirehoseDestination.add_member(:delivery_stream, Shapes::ShapeRef.new(shape: String, location_name: "deliveryStream"))
    VerifiedAccessLogKinesisDataFirehoseDestination.struct_class = Types::VerifiedAccessLogKinesisDataFirehoseDestination

    VerifiedAccessLogKinesisDataFirehoseDestinationOptions.add_member(:enabled, Shapes::ShapeRef.new(shape: Boolean, required: true, location_name: "Enabled"))
    VerifiedAccessLogKinesisDataFirehoseDestinationOptions.add_member(:delivery_stream, Shapes::ShapeRef.new(shape: String, location_name: "DeliveryStream"))
    VerifiedAccessLogKinesisDataFirehoseDestinationOptions.struct_class = Types::VerifiedAccessLogKinesisDataFirehoseDestinationOptions

    VerifiedAccessLogOptions.add_member(:s3, Shapes::ShapeRef.new(shape: VerifiedAccessLogS3DestinationOptions, location_name: "S3"))
    VerifiedAccessLogOptions.add_member(:cloud_watch_logs, Shapes::ShapeRef.new(shape: VerifiedAccessLogCloudWatchLogsDestinationOptions, location_name: "CloudWatchLogs"))
    VerifiedAccessLogOptions.add_member(:kinesis_data_firehose, Shapes::ShapeRef.new(shape: VerifiedAccessLogKinesisDataFirehoseDestinationOptions, location_name: "KinesisDataFirehose"))
    VerifiedAccessLogOptions.add_member(:log_version, Shapes::ShapeRef.new(shape: String, location_name: "LogVersion"))
    VerifiedAccessLogOptions.add_member(:include_trust_context, Shapes::ShapeRef.new(shape: Boolean, location_name: "IncludeTrustContext"))
    VerifiedAccessLogOptions.struct_class = Types::VerifiedAccessLogOptions

    VerifiedAccessLogS3Destination.add_member(:enabled, Shapes::ShapeRef.new(shape: Boolean, location_name: "enabled"))
    VerifiedAccessLogS3Destination.add_member(:delivery_status, Shapes::ShapeRef.new(shape: VerifiedAccessLogDeliveryStatus, location_name: "deliveryStatus"))
    VerifiedAccessLogS3Destination.add_member(:bucket_name, Shapes::ShapeRef.new(shape: String, location_name: "bucketName"))
    VerifiedAccessLogS3Destination.add_member(:prefix, Shapes::ShapeRef.new(shape: String, location_name: "prefix"))
    VerifiedAccessLogS3Destination.add_member(:bucket_owner, Shapes::ShapeRef.new(shape: String, location_name: "bucketOwner"))
    VerifiedAccessLogS3Destination.struct_class = Types::VerifiedAccessLogS3Destination

    VerifiedAccessLogS3DestinationOptions.add_member(:enabled, Shapes::ShapeRef.new(shape: Boolean, required: true, location_name: "Enabled"))
    VerifiedAccessLogS3DestinationOptions.add_member(:bucket_name, Shapes::ShapeRef.new(shape: String, location_name: "BucketName"))
    VerifiedAccessLogS3DestinationOptions.add_member(:prefix, Shapes::ShapeRef.new(shape: String, location_name: "Prefix"))
    VerifiedAccessLogS3DestinationOptions.add_member(:bucket_owner, Shapes::ShapeRef.new(shape: String, location_name: "BucketOwner"))
    VerifiedAccessLogS3DestinationOptions.struct_class = Types::VerifiedAccessLogS3DestinationOptions

    VerifiedAccessLogs.add_member(:s3, Shapes::ShapeRef.new(shape: VerifiedAccessLogS3Destination, location_name: "s3"))
    VerifiedAccessLogs.add_member(:cloud_watch_logs, Shapes::ShapeRef.new(shape: VerifiedAccessLogCloudWatchLogsDestination, location_name: "cloudWatchLogs"))
    VerifiedAccessLogs.add_member(:kinesis_data_firehose, Shapes::ShapeRef.new(shape: VerifiedAccessLogKinesisDataFirehoseDestination, location_name: "kinesisDataFirehose"))
    VerifiedAccessLogs.add_member(:log_version, Shapes::ShapeRef.new(shape: String, location_name: "logVersion"))
    VerifiedAccessLogs.add_member(:include_trust_context, Shapes::ShapeRef.new(shape: Boolean, location_name: "includeTrustContext"))
    VerifiedAccessLogs.struct_class = Types::VerifiedAccessLogs

    VerifiedAccessSseSpecificationRequest.add_member(:customer_managed_key_enabled, Shapes::ShapeRef.new(shape: Boolean, location_name: "CustomerManagedKeyEnabled"))
    VerifiedAccessSseSpecificationRequest.add_member(:kms_key_arn, Shapes::ShapeRef.new(shape: KmsKeyArn, location_name: "KmsKeyArn"))
    VerifiedAccessSseSpecificationRequest.struct_class = Types::VerifiedAccessSseSpecificationRequest

    VerifiedAccessSseSpecificationResponse.add_member(:customer_managed_key_enabled, Shapes::ShapeRef.new(shape: Boolean, location_name: "customerManagedKeyEnabled"))
    VerifiedAccessSseSpecificationResponse.add_member(:kms_key_arn, Shapes::ShapeRef.new(shape: KmsKeyArn, location_name: "kmsKeyArn"))
    VerifiedAccessSseSpecificationResponse.struct_class = Types::VerifiedAccessSseSpecificationResponse

    VerifiedAccessTrustProvider.add_member(:verified_access_trust_provider_id, Shapes::ShapeRef.new(shape: String, location_name: "verifiedAccessTrustProviderId"))
    VerifiedAccessTrustProvider.add_member(:description, Shapes::ShapeRef.new(shape: String, location_name: "description"))
    VerifiedAccessTrustProvider.add_member(:trust_provider_type, Shapes::ShapeRef.new(shape: TrustProviderType, location_name: "trustProviderType"))
    VerifiedAccessTrustProvider.add_member(:user_trust_provider_type, Shapes::ShapeRef.new(shape: UserTrustProviderType, location_name: "userTrustProviderType"))
    VerifiedAccessTrustProvider.add_member(:device_trust_provider_type, Shapes::ShapeRef.new(shape: DeviceTrustProviderType, location_name: "deviceTrustProviderType"))
    VerifiedAccessTrustProvider.add_member(:oidc_options, Shapes::ShapeRef.new(shape: OidcOptions, location_name: "oidcOptions"))
    VerifiedAccessTrustProvider.add_member(:device_options, Shapes::ShapeRef.new(shape: DeviceOptions, location_name: "deviceOptions"))
    VerifiedAccessTrustProvider.add_member(:policy_reference_name, Shapes::ShapeRef.new(shape: String, location_name: "policyReferenceName"))
    VerifiedAccessTrustProvider.add_member(:creation_time, Shapes::ShapeRef.new(shape: String, location_name: "creationTime"))
    VerifiedAccessTrustProvider.add_member(:last_updated_time, Shapes::ShapeRef.new(shape: String, location_name: "lastUpdatedTime"))
    VerifiedAccessTrustProvider.add_member(:tags, Shapes::ShapeRef.new(shape: TagList, location_name: "tagSet"))
    VerifiedAccessTrustProvider.add_member(:sse_specification, Shapes::ShapeRef.new(shape: VerifiedAccessSseSpecificationResponse, location_name: "sseSpecification"))
    VerifiedAccessTrustProvider.add_member(:native_application_oidc_options, Shapes::ShapeRef.new(shape: NativeApplicationOidcOptions, location_name: "nativeApplicationOidcOptions"))
    VerifiedAccessTrustProvider.struct_class = Types::VerifiedAccessTrustProvider

    VerifiedAccessTrustProviderCondensed.add_member(:verified_access_trust_provider_id, Shapes::ShapeRef.new(shape: String, location_name: "verifiedAccessTrustProviderId"))
    VerifiedAccessTrustProviderCondensed.add_member(:description, Shapes::ShapeRef.new(shape: String, location_name: "description"))
    VerifiedAccessTrustProviderCondensed.add_member(:trust_provider_type, Shapes::ShapeRef.new(shape: TrustProviderType, location_name: "trustProviderType"))
    VerifiedAccessTrustProviderCondensed.add_member(:user_trust_provider_type, Shapes::ShapeRef.new(shape: UserTrustProviderType, location_name: "userTrustProviderType"))
    VerifiedAccessTrustProviderCondensed.add_member(:device_trust_provider_type, Shapes::ShapeRef.new(shape: DeviceTrustProviderType, location_name: "deviceTrustProviderType"))
    VerifiedAccessTrustProviderCondensed.struct_class = Types::VerifiedAccessTrustProviderCondensed

    VerifiedAccessTrustProviderCondensedList.member = Shapes::ShapeRef.new(shape: VerifiedAccessTrustProviderCondensed, location_name: "item")

    VerifiedAccessTrustProviderIdList.member = Shapes::ShapeRef.new(shape: VerifiedAccessTrustProviderId, location_name: "item")

    VerifiedAccessTrustProviderList.member = Shapes::ShapeRef.new(shape: VerifiedAccessTrustProvider, location_name: "item")

    VersionStringList.member = Shapes::ShapeRef.new(shape: String, location_name: "item")

    VgwTelemetry.add_member(:accepted_route_count, Shapes::ShapeRef.new(shape: Integer, location_name: "acceptedRouteCount"))
    VgwTelemetry.add_member(:last_status_change, Shapes::ShapeRef.new(shape: DateTime, location_name: "lastStatusChange"))
    VgwTelemetry.add_member(:outside_ip_address, Shapes::ShapeRef.new(shape: String, location_name: "outsideIpAddress"))
    VgwTelemetry.add_member(:status, Shapes::ShapeRef.new(shape: TelemetryStatus, location_name: "status"))
    VgwTelemetry.add_member(:status_message, Shapes::ShapeRef.new(shape: String, location_name: "statusMessage"))
    VgwTelemetry.add_member(:certificate_arn, Shapes::ShapeRef.new(shape: String, location_name: "certificateArn"))
    VgwTelemetry.struct_class = Types::VgwTelemetry

    VgwTelemetryList.member = Shapes::ShapeRef.new(shape: VgwTelemetry, location_name: "item")

    VirtualizationTypeList.member = Shapes::ShapeRef.new(shape: VirtualizationType, location_name: "item")

    VirtualizationTypeSet.member = Shapes::ShapeRef.new(shape: VirtualizationType, location_name: "item")

    Volume.add_member(:outpost_arn, Shapes::ShapeRef.new(shape: String, location_name: "outpostArn"))
    Volume.add_member(:iops, Shapes::ShapeRef.new(shape: Integer, location_name: "iops"))
    Volume.add_member(:tags, Shapes::ShapeRef.new(shape: TagList, location_name: "tagSet"))
    Volume.add_member(:volume_type, Shapes::ShapeRef.new(shape: VolumeType, location_name: "volumeType"))
    Volume.add_member(:fast_restored, Shapes::ShapeRef.new(shape: Boolean, location_name: "fastRestored"))
    Volume.add_member(:multi_attach_enabled, Shapes::ShapeRef.new(shape: Boolean, location_name: "multiAttachEnabled"))
    Volume.add_member(:throughput, Shapes::ShapeRef.new(shape: Integer, location_name: "throughput"))
    Volume.add_member(:sse_type, Shapes::ShapeRef.new(shape: SSEType, location_name: "sseType"))
    Volume.add_member(:operator, Shapes::ShapeRef.new(shape: OperatorResponse, location_name: "operator"))
    Volume.add_member(:volume_id, Shapes::ShapeRef.new(shape: String, location_name: "volumeId"))
    Volume.add_member(:size, Shapes::ShapeRef.new(shape: Integer, location_name: "size"))
    Volume.add_member(:snapshot_id, Shapes::ShapeRef.new(shape: String, location_name: "snapshotId"))
    Volume.add_member(:availability_zone, Shapes::ShapeRef.new(shape: String, location_name: "availabilityZone"))
    Volume.add_member(:state, Shapes::ShapeRef.new(shape: VolumeState, location_name: "status"))
    Volume.add_member(:create_time, Shapes::ShapeRef.new(shape: DateTime, location_name: "createTime"))
    Volume.add_member(:attachments, Shapes::ShapeRef.new(shape: VolumeAttachmentList, location_name: "attachmentSet"))
    Volume.add_member(:encrypted, Shapes::ShapeRef.new(shape: Boolean, location_name: "encrypted"))
    Volume.add_member(:kms_key_id, Shapes::ShapeRef.new(shape: String, location_name: "kmsKeyId"))
    Volume.struct_class = Types::Volume

    VolumeAttachment.add_member(:delete_on_termination, Shapes::ShapeRef.new(shape: Boolean, location_name: "deleteOnTermination"))
    VolumeAttachment.add_member(:associated_resource, Shapes::ShapeRef.new(shape: String, location_name: "associatedResource"))
    VolumeAttachment.add_member(:instance_owning_service, Shapes::ShapeRef.new(shape: String, location_name: "instanceOwningService"))
    VolumeAttachment.add_member(:volume_id, Shapes::ShapeRef.new(shape: String, location_name: "volumeId"))
    VolumeAttachment.add_member(:instance_id, Shapes::ShapeRef.new(shape: String, location_name: "instanceId"))
    VolumeAttachment.add_member(:device, Shapes::ShapeRef.new(shape: String, location_name: "device"))
    VolumeAttachment.add_member(:state, Shapes::ShapeRef.new(shape: VolumeAttachmentState, location_name: "status"))
    VolumeAttachment.add_member(:attach_time, Shapes::ShapeRef.new(shape: DateTime, location_name: "attachTime"))
    VolumeAttachment.struct_class = Types::VolumeAttachment

    VolumeAttachmentList.member = Shapes::ShapeRef.new(shape: VolumeAttachment, location_name: "item")

    VolumeDetail.add_member(:size, Shapes::ShapeRef.new(shape: Long, required: true, location_name: "size"))
    VolumeDetail.struct_class = Types::VolumeDetail

    VolumeIdStringList.member = Shapes::ShapeRef.new(shape: VolumeId, location_name: "VolumeId")

    VolumeList.member = Shapes::ShapeRef.new(shape: Volume, location_name: "item")

    VolumeModification.add_member(:volume_id, Shapes::ShapeRef.new(shape: String, location_name: "volumeId"))
    VolumeModification.add_member(:modification_state, Shapes::ShapeRef.new(shape: VolumeModificationState, location_name: "modificationState"))
    VolumeModification.add_member(:status_message, Shapes::ShapeRef.new(shape: String, location_name: "statusMessage"))
    VolumeModification.add_member(:target_size, Shapes::ShapeRef.new(shape: Integer, location_name: "targetSize"))
    VolumeModification.add_member(:target_iops, Shapes::ShapeRef.new(shape: Integer, location_name: "targetIops"))
    VolumeModification.add_member(:target_volume_type, Shapes::ShapeRef.new(shape: VolumeType, location_name: "targetVolumeType"))
    VolumeModification.add_member(:target_throughput, Shapes::ShapeRef.new(shape: Integer, location_name: "targetThroughput"))
    VolumeModification.add_member(:target_multi_attach_enabled, Shapes::ShapeRef.new(shape: Boolean, location_name: "targetMultiAttachEnabled"))
    VolumeModification.add_member(:original_size, Shapes::ShapeRef.new(shape: Integer, location_name: "originalSize"))
    VolumeModification.add_member(:original_iops, Shapes::ShapeRef.new(shape: Integer, location_name: "originalIops"))
    VolumeModification.add_member(:original_volume_type, Shapes::ShapeRef.new(shape: VolumeType, location_name: "originalVolumeType"))
    VolumeModification.add_member(:original_throughput, Shapes::ShapeRef.new(shape: Integer, location_name: "originalThroughput"))
    VolumeModification.add_member(:original_multi_attach_enabled, Shapes::ShapeRef.new(shape: Boolean, location_name: "originalMultiAttachEnabled"))
    VolumeModification.add_member(:progress, Shapes::ShapeRef.new(shape: Long, location_name: "progress"))
    VolumeModification.add_member(:start_time, Shapes::ShapeRef.new(shape: DateTime, location_name: "startTime"))
    VolumeModification.add_member(:end_time, Shapes::ShapeRef.new(shape: DateTime, location_name: "endTime"))
    VolumeModification.struct_class = Types::VolumeModification

    VolumeModificationList.member = Shapes::ShapeRef.new(shape: VolumeModification, location_name: "item")

    VolumeStatusAction.add_member(:code, Shapes::ShapeRef.new(shape: String, location_name: "code"))
    VolumeStatusAction.add_member(:description, Shapes::ShapeRef.new(shape: String, location_name: "description"))
    VolumeStatusAction.add_member(:event_id, Shapes::ShapeRef.new(shape: String, location_name: "eventId"))
    VolumeStatusAction.add_member(:event_type, Shapes::ShapeRef.new(shape: String, location_name: "eventType"))
    VolumeStatusAction.struct_class = Types::VolumeStatusAction

    VolumeStatusActionsList.member = Shapes::ShapeRef.new(shape: VolumeStatusAction, location_name: "item")

    VolumeStatusAttachmentStatus.add_member(:io_performance, Shapes::ShapeRef.new(shape: String, location_name: "ioPerformance"))
    VolumeStatusAttachmentStatus.add_member(:instance_id, Shapes::ShapeRef.new(shape: String, location_name: "instanceId"))
    VolumeStatusAttachmentStatus.struct_class = Types::VolumeStatusAttachmentStatus

    VolumeStatusAttachmentStatusList.member = Shapes::ShapeRef.new(shape: VolumeStatusAttachmentStatus, location_name: "item")

    VolumeStatusDetails.add_member(:name, Shapes::ShapeRef.new(shape: VolumeStatusName, location_name: "name"))
    VolumeStatusDetails.add_member(:status, Shapes::ShapeRef.new(shape: String, location_name: "status"))
    VolumeStatusDetails.struct_class = Types::VolumeStatusDetails

    VolumeStatusDetailsList.member = Shapes::ShapeRef.new(shape: VolumeStatusDetails, location_name: "item")

    VolumeStatusEvent.add_member(:description, Shapes::ShapeRef.new(shape: String, location_name: "description"))
    VolumeStatusEvent.add_member(:event_id, Shapes::ShapeRef.new(shape: String, location_name: "eventId"))
    VolumeStatusEvent.add_member(:event_type, Shapes::ShapeRef.new(shape: String, location_name: "eventType"))
    VolumeStatusEvent.add_member(:not_after, Shapes::ShapeRef.new(shape: MillisecondDateTime, location_name: "notAfter"))
    VolumeStatusEvent.add_member(:not_before, Shapes::ShapeRef.new(shape: MillisecondDateTime, location_name: "notBefore"))
    VolumeStatusEvent.add_member(:instance_id, Shapes::ShapeRef.new(shape: String, location_name: "instanceId"))
    VolumeStatusEvent.struct_class = Types::VolumeStatusEvent

    VolumeStatusEventsList.member = Shapes::ShapeRef.new(shape: VolumeStatusEvent, location_name: "item")

    VolumeStatusInfo.add_member(:details, Shapes::ShapeRef.new(shape: VolumeStatusDetailsList, location_name: "details"))
    VolumeStatusInfo.add_member(:status, Shapes::ShapeRef.new(shape: VolumeStatusInfoStatus, location_name: "status"))
    VolumeStatusInfo.struct_class = Types::VolumeStatusInfo

    VolumeStatusItem.add_member(:actions, Shapes::ShapeRef.new(shape: VolumeStatusActionsList, location_name: "actionsSet"))
    VolumeStatusItem.add_member(:availability_zone, Shapes::ShapeRef.new(shape: String, location_name: "availabilityZone"))
    VolumeStatusItem.add_member(:outpost_arn, Shapes::ShapeRef.new(shape: String, location_name: "outpostArn"))
    VolumeStatusItem.add_member(:events, Shapes::ShapeRef.new(shape: VolumeStatusEventsList, location_name: "eventsSet"))
    VolumeStatusItem.add_member(:volume_id, Shapes::ShapeRef.new(shape: String, location_name: "volumeId"))
    VolumeStatusItem.add_member(:volume_status, Shapes::ShapeRef.new(shape: VolumeStatusInfo, location_name: "volumeStatus"))
    VolumeStatusItem.add_member(:attachment_statuses, Shapes::ShapeRef.new(shape: VolumeStatusAttachmentStatusList, location_name: "attachmentStatuses"))
    VolumeStatusItem.struct_class = Types::VolumeStatusItem

    VolumeStatusList.member = Shapes::ShapeRef.new(shape: VolumeStatusItem, location_name: "item")

    Vpc.add_member(:owner_id, Shapes::ShapeRef.new(shape: String, location_name: "ownerId"))
    Vpc.add_member(:instance_tenancy, Shapes::ShapeRef.new(shape: Tenancy, location_name: "instanceTenancy"))
    Vpc.add_member(:ipv_6_cidr_block_association_set, Shapes::ShapeRef.new(shape: VpcIpv6CidrBlockAssociationSet, location_name: "ipv6CidrBlockAssociationSet"))
    Vpc.add_member(:cidr_block_association_set, Shapes::ShapeRef.new(shape: VpcCidrBlockAssociationSet, location_name: "cidrBlockAssociationSet"))
    Vpc.add_member(:is_default, Shapes::ShapeRef.new(shape: Boolean, location_name: "isDefault"))
    Vpc.add_member(:encryption_control, Shapes::ShapeRef.new(shape: VpcEncryptionControl, location_name: "encryptionControl"))
    Vpc.add_member(:tags, Shapes::ShapeRef.new(shape: TagList, location_name: "tagSet"))
    Vpc.add_member(:block_public_access_states, Shapes::ShapeRef.new(shape: BlockPublicAccessStates, location_name: "blockPublicAccessStates"))
    Vpc.add_member(:vpc_id, Shapes::ShapeRef.new(shape: String, location_name: "vpcId"))
    Vpc.add_member(:state, Shapes::ShapeRef.new(shape: VpcState, location_name: "state"))
    Vpc.add_member(:cidr_block, Shapes::ShapeRef.new(shape: String, location_name: "cidrBlock"))
    Vpc.add_member(:dhcp_options_id, Shapes::ShapeRef.new(shape: String, location_name: "dhcpOptionsId"))
    Vpc.struct_class = Types::Vpc

    VpcAttachment.add_member(:vpc_id, Shapes::ShapeRef.new(shape: String, location_name: "vpcId"))
    VpcAttachment.add_member(:state, Shapes::ShapeRef.new(shape: AttachmentStatus, location_name: "state"))
    VpcAttachment.struct_class = Types::VpcAttachment

    VpcAttachmentList.member = Shapes::ShapeRef.new(shape: VpcAttachment, location_name: "item")

    VpcBlockPublicAccessExclusion.add_member(:exclusion_id, Shapes::ShapeRef.new(shape: VpcBlockPublicAccessExclusionId, location_name: "exclusionId"))
    VpcBlockPublicAccessExclusion.add_member(:internet_gateway_exclusion_mode, Shapes::ShapeRef.new(shape: InternetGatewayExclusionMode, location_name: "internetGatewayExclusionMode"))
    VpcBlockPublicAccessExclusion.add_member(:resource_arn, Shapes::ShapeRef.new(shape: ResourceArn, location_name: "resourceArn"))
    VpcBlockPublicAccessExclusion.add_member(:state, Shapes::ShapeRef.new(shape: VpcBlockPublicAccessExclusionState, location_name: "state"))
    VpcBlockPublicAccessExclusion.add_member(:reason, Shapes::ShapeRef.new(shape: String, location_name: "reason"))
    VpcBlockPublicAccessExclusion.add_member(:creation_timestamp, Shapes::ShapeRef.new(shape: MillisecondDateTime, location_name: "creationTimestamp"))
    VpcBlockPublicAccessExclusion.add_member(:last_update_timestamp, Shapes::ShapeRef.new(shape: MillisecondDateTime, location_name: "lastUpdateTimestamp"))
    VpcBlockPublicAccessExclusion.add_member(:deletion_timestamp, Shapes::ShapeRef.new(shape: MillisecondDateTime, location_name: "deletionTimestamp"))
    VpcBlockPublicAccessExclusion.add_member(:tags, Shapes::ShapeRef.new(shape: TagList, location_name: "tagSet"))
    VpcBlockPublicAccessExclusion.struct_class = Types::VpcBlockPublicAccessExclusion

    VpcBlockPublicAccessExclusionIdList.member = Shapes::ShapeRef.new(shape: VpcBlockPublicAccessExclusionId, location_name: "item")

    VpcBlockPublicAccessExclusionList.member = Shapes::ShapeRef.new(shape: VpcBlockPublicAccessExclusion, location_name: "item")

    VpcBlockPublicAccessOptions.add_member(:aws_account_id, Shapes::ShapeRef.new(shape: String, location_name: "awsAccountId"))
    VpcBlockPublicAccessOptions.add_member(:aws_region, Shapes::ShapeRef.new(shape: String, location_name: "awsRegion"))
    VpcBlockPublicAccessOptions.add_member(:state, Shapes::ShapeRef.new(shape: VpcBlockPublicAccessState, location_name: "state"))
    VpcBlockPublicAccessOptions.add_member(:internet_gateway_block_mode, Shapes::ShapeRef.new(shape: InternetGatewayBlockMode, location_name: "internetGatewayBlockMode"))
    VpcBlockPublicAccessOptions.add_member(:reason, Shapes::ShapeRef.new(shape: String, location_name: "reason"))
    VpcBlockPublicAccessOptions.add_member(:last_update_timestamp, Shapes::ShapeRef.new(shape: MillisecondDateTime, location_name: "lastUpdateTimestamp"))
    VpcBlockPublicAccessOptions.add_member(:managed_by, Shapes::ShapeRef.new(shape: ManagedBy, location_name: "managedBy"))
    VpcBlockPublicAccessOptions.add_member(:exclusions_allowed, Shapes::ShapeRef.new(shape: VpcBlockPublicAccessExclusionsAllowed, location_name: "exclusionsAllowed"))
    VpcBlockPublicAccessOptions.struct_class = Types::VpcBlockPublicAccessOptions

    VpcCidrBlockAssociation.add_member(:association_id, Shapes::ShapeRef.new(shape: String, location_name: "associationId"))
    VpcCidrBlockAssociation.add_member(:cidr_block, Shapes::ShapeRef.new(shape: String, location_name: "cidrBlock"))
    VpcCidrBlockAssociation.add_member(:cidr_block_state, Shapes::ShapeRef.new(shape: VpcCidrBlockState, location_name: "cidrBlockState"))
    VpcCidrBlockAssociation.struct_class = Types::VpcCidrBlockAssociation

    VpcCidrBlockAssociationSet.member = Shapes::ShapeRef.new(shape: VpcCidrBlockAssociation, location_name: "item")

    VpcCidrBlockState.add_member(:state, Shapes::ShapeRef.new(shape: VpcCidrBlockStateCode, location_name: "state"))
    VpcCidrBlockState.add_member(:status_message, Shapes::ShapeRef.new(shape: String, location_name: "statusMessage"))
    VpcCidrBlockState.struct_class = Types::VpcCidrBlockState

    VpcClassicLink.add_member(:classic_link_enabled, Shapes::ShapeRef.new(shape: Boolean, location_name: "classicLinkEnabled"))
    VpcClassicLink.add_member(:tags, Shapes::ShapeRef.new(shape: TagList, location_name: "tagSet"))
    VpcClassicLink.add_member(:vpc_id, Shapes::ShapeRef.new(shape: String, location_name: "vpcId"))
    VpcClassicLink.struct_class = Types::VpcClassicLink

    VpcClassicLinkIdList.member = Shapes::ShapeRef.new(shape: VpcId, location_name: "VpcId")

    VpcClassicLinkList.member = Shapes::ShapeRef.new(shape: VpcClassicLink, location_name: "item")

    VpcEncryptionControl.add_member(:vpc_id, Shapes::ShapeRef.new(shape: VpcId, location_name: "vpcId"))
    VpcEncryptionControl.add_member(:vpc_encryption_control_id, Shapes::ShapeRef.new(shape: VpcEncryptionControlId, location_name: "vpcEncryptionControlId"))
    VpcEncryptionControl.add_member(:mode, Shapes::ShapeRef.new(shape: VpcEncryptionControlMode, location_name: "mode"))
    VpcEncryptionControl.add_member(:state, Shapes::ShapeRef.new(shape: VpcEncryptionControlState, location_name: "state"))
    VpcEncryptionControl.add_member(:state_message, Shapes::ShapeRef.new(shape: String, location_name: "stateMessage"))
    VpcEncryptionControl.add_member(:resource_exclusions, Shapes::ShapeRef.new(shape: VpcEncryptionControlExclusions, location_name: "resourceExclusions"))
    VpcEncryptionControl.add_member(:tags, Shapes::ShapeRef.new(shape: TagList, location_name: "tagSet"))
    VpcEncryptionControl.struct_class = Types::VpcEncryptionControl

    VpcEncryptionControlExclusion.add_member(:state, Shapes::ShapeRef.new(shape: VpcEncryptionControlExclusionState, location_name: "state"))
    VpcEncryptionControlExclusion.add_member(:state_message, Shapes::ShapeRef.new(shape: String, location_name: "stateMessage"))
    VpcEncryptionControlExclusion.struct_class = Types::VpcEncryptionControlExclusion

    VpcEncryptionControlExclusions.add_member(:internet_gateway, Shapes::ShapeRef.new(shape: VpcEncryptionControlExclusion, location_name: "internetGateway"))
    VpcEncryptionControlExclusions.add_member(:egress_only_internet_gateway, Shapes::ShapeRef.new(shape: VpcEncryptionControlExclusion, location_name: "egressOnlyInternetGateway"))
    VpcEncryptionControlExclusions.add_member(:nat_gateway, Shapes::ShapeRef.new(shape: VpcEncryptionControlExclusion, location_name: "natGateway"))
    VpcEncryptionControlExclusions.add_member(:virtual_private_gateway, Shapes::ShapeRef.new(shape: VpcEncryptionControlExclusion, location_name: "virtualPrivateGateway"))
    VpcEncryptionControlExclusions.add_member(:vpc_peering, Shapes::ShapeRef.new(shape: VpcEncryptionControlExclusion, location_name: "vpcPeering"))
    VpcEncryptionControlExclusions.struct_class = Types::VpcEncryptionControlExclusions

    VpcEndpoint.add_member(:vpc_endpoint_id, Shapes::ShapeRef.new(shape: String, location_name: "vpcEndpointId"))
    VpcEndpoint.add_member(:vpc_endpoint_type, Shapes::ShapeRef.new(shape: VpcEndpointType, location_name: "vpcEndpointType"))
    VpcEndpoint.add_member(:vpc_id, Shapes::ShapeRef.new(shape: String, location_name: "vpcId"))
    VpcEndpoint.add_member(:service_name, Shapes::ShapeRef.new(shape: String, location_name: "serviceName"))
    VpcEndpoint.add_member(:state, Shapes::ShapeRef.new(shape: State, location_name: "state"))
    VpcEndpoint.add_member(:policy_document, Shapes::ShapeRef.new(shape: String, location_name: "policyDocument"))
    VpcEndpoint.add_member(:route_table_ids, Shapes::ShapeRef.new(shape: ValueStringList, location_name: "routeTableIdSet"))
    VpcEndpoint.add_member(:subnet_ids, Shapes::ShapeRef.new(shape: ValueStringList, location_name: "subnetIdSet"))
    VpcEndpoint.add_member(:groups, Shapes::ShapeRef.new(shape: GroupIdentifierSet, location_name: "groupSet"))
    VpcEndpoint.add_member(:ip_address_type, Shapes::ShapeRef.new(shape: IpAddressType, location_name: "ipAddressType"))
    VpcEndpoint.add_member(:dns_options, Shapes::ShapeRef.new(shape: DnsOptions, location_name: "dnsOptions"))
    VpcEndpoint.add_member(:private_dns_enabled, Shapes::ShapeRef.new(shape: Boolean, location_name: "privateDnsEnabled"))
    VpcEndpoint.add_member(:requester_managed, Shapes::ShapeRef.new(shape: Boolean, location_name: "requesterManaged"))
    VpcEndpoint.add_member(:network_interface_ids, Shapes::ShapeRef.new(shape: ValueStringList, location_name: "networkInterfaceIdSet"))
    VpcEndpoint.add_member(:dns_entries, Shapes::ShapeRef.new(shape: DnsEntrySet, location_name: "dnsEntrySet"))
    VpcEndpoint.add_member(:creation_timestamp, Shapes::ShapeRef.new(shape: MillisecondDateTime, location_name: "creationTimestamp"))
    VpcEndpoint.add_member(:tags, Shapes::ShapeRef.new(shape: TagList, location_name: "tagSet"))
    VpcEndpoint.add_member(:owner_id, Shapes::ShapeRef.new(shape: String, location_name: "ownerId"))
    VpcEndpoint.add_member(:last_error, Shapes::ShapeRef.new(shape: LastError, location_name: "lastError"))
    VpcEndpoint.add_member(:ipv_4_prefixes, Shapes::ShapeRef.new(shape: SubnetIpPrefixesList, location_name: "ipv4PrefixSet"))
    VpcEndpoint.add_member(:ipv_6_prefixes, Shapes::ShapeRef.new(shape: SubnetIpPrefixesList, location_name: "ipv6PrefixSet"))
    VpcEndpoint.add_member(:failure_reason, Shapes::ShapeRef.new(shape: String, location_name: "failureReason"))
    VpcEndpoint.add_member(:service_network_arn, Shapes::ShapeRef.new(shape: ServiceNetworkArn, location_name: "serviceNetworkArn"))
    VpcEndpoint.add_member(:resource_configuration_arn, Shapes::ShapeRef.new(shape: ResourceConfigurationArn, location_name: "resourceConfigurationArn"))
    VpcEndpoint.add_member(:service_region, Shapes::ShapeRef.new(shape: String, location_name: "serviceRegion"))
    VpcEndpoint.struct_class = Types::VpcEndpoint

    VpcEndpointAssociation.add_member(:id, Shapes::ShapeRef.new(shape: String, location_name: "id"))
    VpcEndpointAssociation.add_member(:vpc_endpoint_id, Shapes::ShapeRef.new(shape: VpcEndpointId, location_name: "vpcEndpointId"))
    VpcEndpointAssociation.add_member(:service_network_arn, Shapes::ShapeRef.new(shape: ServiceNetworkArn, location_name: "serviceNetworkArn"))
    VpcEndpointAssociation.add_member(:service_network_name, Shapes::ShapeRef.new(shape: String, location_name: "serviceNetworkName"))
    VpcEndpointAssociation.add_member(:associated_resource_accessibility, Shapes::ShapeRef.new(shape: String, location_name: "associatedResourceAccessibility"))
    VpcEndpointAssociation.add_member(:failure_reason, Shapes::ShapeRef.new(shape: String, location_name: "failureReason"))
    VpcEndpointAssociation.add_member(:failure_code, Shapes::ShapeRef.new(shape: String, location_name: "failureCode"))
    VpcEndpointAssociation.add_member(:dns_entry, Shapes::ShapeRef.new(shape: DnsEntry, location_name: "dnsEntry"))
    VpcEndpointAssociation.add_member(:private_dns_entry, Shapes::ShapeRef.new(shape: DnsEntry, location_name: "privateDnsEntry"))
    VpcEndpointAssociation.add_member(:associated_resource_arn, Shapes::ShapeRef.new(shape: String, location_name: "associatedResourceArn"))
    VpcEndpointAssociation.add_member(:resource_configuration_group_arn, Shapes::ShapeRef.new(shape: String, location_name: "resourceConfigurationGroupArn"))
    VpcEndpointAssociation.add_member(:tags, Shapes::ShapeRef.new(shape: TagList, location_name: "tagSet"))
    VpcEndpointAssociation.struct_class = Types::VpcEndpointAssociation

    VpcEndpointAssociationSet.member = Shapes::ShapeRef.new(shape: VpcEndpointAssociation, location_name: "item")

    VpcEndpointConnection.add_member(:service_id, Shapes::ShapeRef.new(shape: String, location_name: "serviceId"))
    VpcEndpointConnection.add_member(:vpc_endpoint_id, Shapes::ShapeRef.new(shape: String, location_name: "vpcEndpointId"))
    VpcEndpointConnection.add_member(:vpc_endpoint_owner, Shapes::ShapeRef.new(shape: String, location_name: "vpcEndpointOwner"))
    VpcEndpointConnection.add_member(:vpc_endpoint_state, Shapes::ShapeRef.new(shape: State, location_name: "vpcEndpointState"))
    VpcEndpointConnection.add_member(:creation_timestamp, Shapes::ShapeRef.new(shape: MillisecondDateTime, location_name: "creationTimestamp"))
    VpcEndpointConnection.add_member(:dns_entries, Shapes::ShapeRef.new(shape: DnsEntrySet, location_name: "dnsEntrySet"))
    VpcEndpointConnection.add_member(:network_load_balancer_arns, Shapes::ShapeRef.new(shape: ValueStringList, location_name: "networkLoadBalancerArnSet"))
    VpcEndpointConnection.add_member(:gateway_load_balancer_arns, Shapes::ShapeRef.new(shape: ValueStringList, location_name: "gatewayLoadBalancerArnSet"))
    VpcEndpointConnection.add_member(:ip_address_type, Shapes::ShapeRef.new(shape: IpAddressType, location_name: "ipAddressType"))
    VpcEndpointConnection.add_member(:vpc_endpoint_connection_id, Shapes::ShapeRef.new(shape: String, location_name: "vpcEndpointConnectionId"))
    VpcEndpointConnection.add_member(:tags, Shapes::ShapeRef.new(shape: TagList, location_name: "tagSet"))
    VpcEndpointConnection.add_member(:vpc_endpoint_region, Shapes::ShapeRef.new(shape: String, location_name: "vpcEndpointRegion"))
    VpcEndpointConnection.struct_class = Types::VpcEndpointConnection

    VpcEndpointConnectionSet.member = Shapes::ShapeRef.new(shape: VpcEndpointConnection, location_name: "item")

    VpcEndpointIdList.member = Shapes::ShapeRef.new(shape: VpcEndpointId, location_name: "item")

    VpcEndpointRouteTableIdList.member = Shapes::ShapeRef.new(shape: RouteTableId, location_name: "item")

    VpcEndpointSecurityGroupIdList.member = Shapes::ShapeRef.new(shape: SecurityGroupId, location_name: "item")

    VpcEndpointServiceIdList.member = Shapes::ShapeRef.new(shape: VpcEndpointServiceId, location_name: "item")

    VpcEndpointSet.member = Shapes::ShapeRef.new(shape: VpcEndpoint, location_name: "item")

    VpcEndpointSubnetIdList.member = Shapes::ShapeRef.new(shape: SubnetId, location_name: "item")

    VpcIdStringList.member = Shapes::ShapeRef.new(shape: VpcId, location_name: "VpcId")

    VpcIpv6CidrBlockAssociation.add_member(:association_id, Shapes::ShapeRef.new(shape: String, location_name: "associationId"))
    VpcIpv6CidrBlockAssociation.add_member(:ipv_6_cidr_block, Shapes::ShapeRef.new(shape: String, location_name: "ipv6CidrBlock"))
    VpcIpv6CidrBlockAssociation.add_member(:ipv_6_cidr_block_state, Shapes::ShapeRef.new(shape: VpcCidrBlockState, location_name: "ipv6CidrBlockState"))
    VpcIpv6CidrBlockAssociation.add_member(:network_border_group, Shapes::ShapeRef.new(shape: String, location_name: "networkBorderGroup"))
    VpcIpv6CidrBlockAssociation.add_member(:ipv_6_pool, Shapes::ShapeRef.new(shape: String, location_name: "ipv6Pool"))
    VpcIpv6CidrBlockAssociation.add_member(:ipv_6_address_attribute, Shapes::ShapeRef.new(shape: Ipv6AddressAttribute, location_name: "ipv6AddressAttribute"))
    VpcIpv6CidrBlockAssociation.add_member(:ip_source, Shapes::ShapeRef.new(shape: IpSource, location_name: "ipSource"))
    VpcIpv6CidrBlockAssociation.struct_class = Types::VpcIpv6CidrBlockAssociation

    VpcIpv6CidrBlockAssociationSet.member = Shapes::ShapeRef.new(shape: VpcIpv6CidrBlockAssociation, location_name: "item")

    VpcList.member = Shapes::ShapeRef.new(shape: Vpc, location_name: "item")

    VpcPeeringConnection.add_member(:accepter_vpc_info, Shapes::ShapeRef.new(shape: VpcPeeringConnectionVpcInfo, location_name: "accepterVpcInfo"))
    VpcPeeringConnection.add_member(:expiration_time, Shapes::ShapeRef.new(shape: DateTime, location_name: "expirationTime"))
    VpcPeeringConnection.add_member(:requester_vpc_info, Shapes::ShapeRef.new(shape: VpcPeeringConnectionVpcInfo, location_name: "requesterVpcInfo"))
    VpcPeeringConnection.add_member(:status, Shapes::ShapeRef.new(shape: VpcPeeringConnectionStateReason, location_name: "status"))
    VpcPeeringConnection.add_member(:tags, Shapes::ShapeRef.new(shape: TagList, location_name: "tagSet"))
    VpcPeeringConnection.add_member(:vpc_peering_connection_id, Shapes::ShapeRef.new(shape: String, location_name: "vpcPeeringConnectionId"))
    VpcPeeringConnection.struct_class = Types::VpcPeeringConnection

    VpcPeeringConnectionIdList.member = Shapes::ShapeRef.new(shape: VpcPeeringConnectionId, location_name: "item")

    VpcPeeringConnectionList.member = Shapes::ShapeRef.new(shape: VpcPeeringConnection, location_name: "item")

    VpcPeeringConnectionOptionsDescription.add_member(:allow_dns_resolution_from_remote_vpc, Shapes::ShapeRef.new(shape: Boolean, location_name: "allowDnsResolutionFromRemoteVpc"))
    VpcPeeringConnectionOptionsDescription.add_member(:allow_egress_from_local_classic_link_to_remote_vpc, Shapes::ShapeRef.new(shape: Boolean, location_name: "allowEgressFromLocalClassicLinkToRemoteVpc"))
    VpcPeeringConnectionOptionsDescription.add_member(:allow_egress_from_local_vpc_to_remote_classic_link, Shapes::ShapeRef.new(shape: Boolean, location_name: "allowEgressFromLocalVpcToRemoteClassicLink"))
    VpcPeeringConnectionOptionsDescription.struct_class = Types::VpcPeeringConnectionOptionsDescription

    VpcPeeringConnectionStateReason.add_member(:code, Shapes::ShapeRef.new(shape: VpcPeeringConnectionStateReasonCode, location_name: "code"))
    VpcPeeringConnectionStateReason.add_member(:message, Shapes::ShapeRef.new(shape: String, location_name: "message"))
    VpcPeeringConnectionStateReason.struct_class = Types::VpcPeeringConnectionStateReason

    VpcPeeringConnectionVpcInfo.add_member(:cidr_block, Shapes::ShapeRef.new(shape: String, location_name: "cidrBlock"))
    VpcPeeringConnectionVpcInfo.add_member(:ipv_6_cidr_block_set, Shapes::ShapeRef.new(shape: Ipv6CidrBlockSet, location_name: "ipv6CidrBlockSet"))
    VpcPeeringConnectionVpcInfo.add_member(:cidr_block_set, Shapes::ShapeRef.new(shape: CidrBlockSet, location_name: "cidrBlockSet"))
    VpcPeeringConnectionVpcInfo.add_member(:owner_id, Shapes::ShapeRef.new(shape: String, location_name: "ownerId"))
    VpcPeeringConnectionVpcInfo.add_member(:peering_options, Shapes::ShapeRef.new(shape: VpcPeeringConnectionOptionsDescription, location_name: "peeringOptions"))
    VpcPeeringConnectionVpcInfo.add_member(:vpc_id, Shapes::ShapeRef.new(shape: String, location_name: "vpcId"))
    VpcPeeringConnectionVpcInfo.add_member(:region, Shapes::ShapeRef.new(shape: String, location_name: "region"))
    VpcPeeringConnectionVpcInfo.struct_class = Types::VpcPeeringConnectionVpcInfo

    VpnConnection.add_member(:category, Shapes::ShapeRef.new(shape: String, location_name: "category"))
    VpnConnection.add_member(:transit_gateway_id, Shapes::ShapeRef.new(shape: String, location_name: "transitGatewayId"))
    VpnConnection.add_member(:core_network_arn, Shapes::ShapeRef.new(shape: String, location_name: "coreNetworkArn"))
    VpnConnection.add_member(:core_network_attachment_arn, Shapes::ShapeRef.new(shape: String, location_name: "coreNetworkAttachmentArn"))
    VpnConnection.add_member(:gateway_association_state, Shapes::ShapeRef.new(shape: GatewayAssociationState, location_name: "gatewayAssociationState"))
    VpnConnection.add_member(:options, Shapes::ShapeRef.new(shape: VpnConnectionOptions, location_name: "options"))
    VpnConnection.add_member(:routes, Shapes::ShapeRef.new(shape: VpnStaticRouteList, location_name: "routes"))
    VpnConnection.add_member(:tags, Shapes::ShapeRef.new(shape: TagList, location_name: "tagSet"))
    VpnConnection.add_member(:vgw_telemetry, Shapes::ShapeRef.new(shape: VgwTelemetryList, location_name: "vgwTelemetry"))
    VpnConnection.add_member(:vpn_connection_id, Shapes::ShapeRef.new(shape: String, location_name: "vpnConnectionId"))
    VpnConnection.add_member(:state, Shapes::ShapeRef.new(shape: VpnState, location_name: "state"))
    VpnConnection.add_member(:customer_gateway_configuration, Shapes::ShapeRef.new(shape: customerGatewayConfiguration, location_name: "customerGatewayConfiguration"))
    VpnConnection.add_member(:type, Shapes::ShapeRef.new(shape: GatewayType, location_name: "type"))
    VpnConnection.add_member(:customer_gateway_id, Shapes::ShapeRef.new(shape: String, location_name: "customerGatewayId"))
    VpnConnection.add_member(:vpn_gateway_id, Shapes::ShapeRef.new(shape: String, location_name: "vpnGatewayId"))
    VpnConnection.struct_class = Types::VpnConnection

    VpnConnectionDeviceType.add_member(:vpn_connection_device_type_id, Shapes::ShapeRef.new(shape: String, location_name: "vpnConnectionDeviceTypeId"))
    VpnConnectionDeviceType.add_member(:vendor, Shapes::ShapeRef.new(shape: String, location_name: "vendor"))
    VpnConnectionDeviceType.add_member(:platform, Shapes::ShapeRef.new(shape: String, location_name: "platform"))
    VpnConnectionDeviceType.add_member(:software, Shapes::ShapeRef.new(shape: String, location_name: "software"))
    VpnConnectionDeviceType.struct_class = Types::VpnConnectionDeviceType

    VpnConnectionDeviceTypeList.member = Shapes::ShapeRef.new(shape: VpnConnectionDeviceType, location_name: "item")

    VpnConnectionIdStringList.member = Shapes::ShapeRef.new(shape: VpnConnectionId, location_name: "VpnConnectionId")

    VpnConnectionList.member = Shapes::ShapeRef.new(shape: VpnConnection, location_name: "item")

    VpnConnectionOptions.add_member(:enable_acceleration, Shapes::ShapeRef.new(shape: Boolean, location_name: "enableAcceleration"))
    VpnConnectionOptions.add_member(:static_routes_only, Shapes::ShapeRef.new(shape: Boolean, location_name: "staticRoutesOnly"))
    VpnConnectionOptions.add_member(:local_ipv_4_network_cidr, Shapes::ShapeRef.new(shape: String, location_name: "localIpv4NetworkCidr"))
    VpnConnectionOptions.add_member(:remote_ipv_4_network_cidr, Shapes::ShapeRef.new(shape: String, location_name: "remoteIpv4NetworkCidr"))
    VpnConnectionOptions.add_member(:local_ipv_6_network_cidr, Shapes::ShapeRef.new(shape: String, location_name: "localIpv6NetworkCidr"))
    VpnConnectionOptions.add_member(:remote_ipv_6_network_cidr, Shapes::ShapeRef.new(shape: String, location_name: "remoteIpv6NetworkCidr"))
    VpnConnectionOptions.add_member(:outside_ip_address_type, Shapes::ShapeRef.new(shape: String, location_name: "outsideIpAddressType"))
    VpnConnectionOptions.add_member(:transport_transit_gateway_attachment_id, Shapes::ShapeRef.new(shape: String, location_name: "transportTransitGatewayAttachmentId"))
    VpnConnectionOptions.add_member(:tunnel_inside_ip_version, Shapes::ShapeRef.new(shape: TunnelInsideIpVersion, location_name: "tunnelInsideIpVersion"))
    VpnConnectionOptions.add_member(:tunnel_options, Shapes::ShapeRef.new(shape: TunnelOptionsList, location_name: "tunnelOptionSet"))
    VpnConnectionOptions.struct_class = Types::VpnConnectionOptions

    VpnConnectionOptionsSpecification.add_member(:enable_acceleration, Shapes::ShapeRef.new(shape: Boolean, location_name: "EnableAcceleration"))
    VpnConnectionOptionsSpecification.add_member(:tunnel_inside_ip_version, Shapes::ShapeRef.new(shape: TunnelInsideIpVersion, location_name: "TunnelInsideIpVersion"))
    VpnConnectionOptionsSpecification.add_member(:tunnel_options, Shapes::ShapeRef.new(shape: VpnTunnelOptionsSpecificationsList, location_name: "TunnelOptions"))
    VpnConnectionOptionsSpecification.add_member(:local_ipv_4_network_cidr, Shapes::ShapeRef.new(shape: String, location_name: "LocalIpv4NetworkCidr"))
    VpnConnectionOptionsSpecification.add_member(:remote_ipv_4_network_cidr, Shapes::ShapeRef.new(shape: String, location_name: "RemoteIpv4NetworkCidr"))
    VpnConnectionOptionsSpecification.add_member(:local_ipv_6_network_cidr, Shapes::ShapeRef.new(shape: String, location_name: "LocalIpv6NetworkCidr"))
    VpnConnectionOptionsSpecification.add_member(:remote_ipv_6_network_cidr, Shapes::ShapeRef.new(shape: String, location_name: "RemoteIpv6NetworkCidr"))
    VpnConnectionOptionsSpecification.add_member(:outside_ip_address_type, Shapes::ShapeRef.new(shape: String, location_name: "OutsideIpAddressType"))
    VpnConnectionOptionsSpecification.add_member(:transport_transit_gateway_attachment_id, Shapes::ShapeRef.new(shape: TransitGatewayAttachmentId, location_name: "TransportTransitGatewayAttachmentId"))
    VpnConnectionOptionsSpecification.add_member(:static_routes_only, Shapes::ShapeRef.new(shape: Boolean, location_name: "staticRoutesOnly"))
    VpnConnectionOptionsSpecification.struct_class = Types::VpnConnectionOptionsSpecification

    VpnGateway.add_member(:amazon_side_asn, Shapes::ShapeRef.new(shape: Long, location_name: "amazonSideAsn"))
    VpnGateway.add_member(:tags, Shapes::ShapeRef.new(shape: TagList, location_name: "tagSet"))
    VpnGateway.add_member(:vpn_gateway_id, Shapes::ShapeRef.new(shape: String, location_name: "vpnGatewayId"))
    VpnGateway.add_member(:state, Shapes::ShapeRef.new(shape: VpnState, location_name: "state"))
    VpnGateway.add_member(:type, Shapes::ShapeRef.new(shape: GatewayType, location_name: "type"))
    VpnGateway.add_member(:availability_zone, Shapes::ShapeRef.new(shape: String, location_name: "availabilityZone"))
    VpnGateway.add_member(:vpc_attachments, Shapes::ShapeRef.new(shape: VpcAttachmentList, location_name: "attachments"))
    VpnGateway.struct_class = Types::VpnGateway

    VpnGatewayIdStringList.member = Shapes::ShapeRef.new(shape: VpnGatewayId, location_name: "VpnGatewayId")

    VpnGatewayList.member = Shapes::ShapeRef.new(shape: VpnGateway, location_name: "item")

    VpnStaticRoute.add_member(:destination_cidr_block, Shapes::ShapeRef.new(shape: String, location_name: "destinationCidrBlock"))
    VpnStaticRoute.add_member(:source, Shapes::ShapeRef.new(shape: VpnStaticRouteSource, location_name: "source"))
    VpnStaticRoute.add_member(:state, Shapes::ShapeRef.new(shape: VpnState, location_name: "state"))
    VpnStaticRoute.struct_class = Types::VpnStaticRoute

    VpnStaticRouteList.member = Shapes::ShapeRef.new(shape: VpnStaticRoute, location_name: "item")

    VpnTunnelLogOptions.add_member(:cloud_watch_log_options, Shapes::ShapeRef.new(shape: CloudWatchLogOptions, location_name: "cloudWatchLogOptions"))
    VpnTunnelLogOptions.struct_class = Types::VpnTunnelLogOptions

    VpnTunnelLogOptionsSpecification.add_member(:cloud_watch_log_options, Shapes::ShapeRef.new(shape: CloudWatchLogOptionsSpecification, location_name: "CloudWatchLogOptions"))
    VpnTunnelLogOptionsSpecification.struct_class = Types::VpnTunnelLogOptionsSpecification

    VpnTunnelOptionsSpecification.add_member(:tunnel_inside_cidr, Shapes::ShapeRef.new(shape: String, location_name: "TunnelInsideCidr"))
    VpnTunnelOptionsSpecification.add_member(:tunnel_inside_ipv_6_cidr, Shapes::ShapeRef.new(shape: String, location_name: "TunnelInsideIpv6Cidr"))
    VpnTunnelOptionsSpecification.add_member(:pre_shared_key, Shapes::ShapeRef.new(shape: preSharedKey, location_name: "PreSharedKey"))
    VpnTunnelOptionsSpecification.add_member(:phase_1_lifetime_seconds, Shapes::ShapeRef.new(shape: Integer, location_name: "Phase1LifetimeSeconds"))
    VpnTunnelOptionsSpecification.add_member(:phase_2_lifetime_seconds, Shapes::ShapeRef.new(shape: Integer, location_name: "Phase2LifetimeSeconds"))
    VpnTunnelOptionsSpecification.add_member(:rekey_margin_time_seconds, Shapes::ShapeRef.new(shape: Integer, location_name: "RekeyMarginTimeSeconds"))
    VpnTunnelOptionsSpecification.add_member(:rekey_fuzz_percentage, Shapes::ShapeRef.new(shape: Integer, location_name: "RekeyFuzzPercentage"))
    VpnTunnelOptionsSpecification.add_member(:replay_window_size, Shapes::ShapeRef.new(shape: Integer, location_name: "ReplayWindowSize"))
    VpnTunnelOptionsSpecification.add_member(:dpd_timeout_seconds, Shapes::ShapeRef.new(shape: Integer, location_name: "DPDTimeoutSeconds"))
    VpnTunnelOptionsSpecification.add_member(:dpd_timeout_action, Shapes::ShapeRef.new(shape: String, location_name: "DPDTimeoutAction"))
    VpnTunnelOptionsSpecification.add_member(:phase_1_encryption_algorithms, Shapes::ShapeRef.new(shape: Phase1EncryptionAlgorithmsRequestList, location_name: "Phase1EncryptionAlgorithm"))
    VpnTunnelOptionsSpecification.add_member(:phase_2_encryption_algorithms, Shapes::ShapeRef.new(shape: Phase2EncryptionAlgorithmsRequestList, location_name: "Phase2EncryptionAlgorithm"))
    VpnTunnelOptionsSpecification.add_member(:phase_1_integrity_algorithms, Shapes::ShapeRef.new(shape: Phase1IntegrityAlgorithmsRequestList, location_name: "Phase1IntegrityAlgorithm"))
    VpnTunnelOptionsSpecification.add_member(:phase_2_integrity_algorithms, Shapes::ShapeRef.new(shape: Phase2IntegrityAlgorithmsRequestList, location_name: "Phase2IntegrityAlgorithm"))
    VpnTunnelOptionsSpecification.add_member(:phase_1_dh_group_numbers, Shapes::ShapeRef.new(shape: Phase1DHGroupNumbersRequestList, location_name: "Phase1DHGroupNumber"))
    VpnTunnelOptionsSpecification.add_member(:phase_2_dh_group_numbers, Shapes::ShapeRef.new(shape: Phase2DHGroupNumbersRequestList, location_name: "Phase2DHGroupNumber"))
    VpnTunnelOptionsSpecification.add_member(:ike_versions, Shapes::ShapeRef.new(shape: IKEVersionsRequestList, location_name: "IKEVersion"))
    VpnTunnelOptionsSpecification.add_member(:startup_action, Shapes::ShapeRef.new(shape: String, location_name: "StartupAction"))
    VpnTunnelOptionsSpecification.add_member(:log_options, Shapes::ShapeRef.new(shape: VpnTunnelLogOptionsSpecification, location_name: "LogOptions"))
    VpnTunnelOptionsSpecification.add_member(:enable_tunnel_lifecycle_control, Shapes::ShapeRef.new(shape: Boolean, location_name: "EnableTunnelLifecycleControl"))
    VpnTunnelOptionsSpecification.struct_class = Types::VpnTunnelOptionsSpecification

    VpnTunnelOptionsSpecificationsList.member = Shapes::ShapeRef.new(shape: VpnTunnelOptionsSpecification)

    WithdrawByoipCidrRequest.add_member(:cidr, Shapes::ShapeRef.new(shape: String, required: true, location_name: "Cidr"))
    WithdrawByoipCidrRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
    WithdrawByoipCidrRequest.struct_class = Types::WithdrawByoipCidrRequest

    WithdrawByoipCidrResult.add_member(:byoip_cidr, Shapes::ShapeRef.new(shape: ByoipCidr, location_name: "byoipCidr"))
    WithdrawByoipCidrResult.struct_class = Types::WithdrawByoipCidrResult

    ZoneIdStringList.member = Shapes::ShapeRef.new(shape: String, location_name: "ZoneId")

    ZoneNameStringList.member = Shapes::ShapeRef.new(shape: String, location_name: "ZoneName")

    snapshotTierStatusSet.member = Shapes::ShapeRef.new(shape: SnapshotTierStatus, location_name: "item")


    # @api private
    API = Seahorse::Model::Api.new.tap do |api|

      api.version = "2016-11-15"

      api.metadata = {
        "apiVersion" => "2016-11-15",
        "auth" => ["aws.auth#sigv4"],
        "endpointPrefix" => "ec2",
        "protocol" => "ec2",
        "protocols" => ["ec2"],
        "serviceAbbreviation" => "Amazon EC2",
        "serviceFullName" => "Amazon Elastic Compute Cloud",
        "serviceId" => "EC2",
        "signatureVersion" => "v4",
        "uid" => "ec2-2016-11-15",
        "xmlNamespace" => "http://ec2.amazonaws.com/doc/2016-11-15",
      }

      api.add_operation(:accept_address_transfer, Seahorse::Model::Operation.new.tap do |o|
        o.name = "AcceptAddressTransfer"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: AcceptAddressTransferRequest)
        o.output = Shapes::ShapeRef.new(shape: AcceptAddressTransferResult)
      end)

      api.add_operation(:accept_capacity_reservation_billing_ownership, Seahorse::Model::Operation.new.tap do |o|
        o.name = "AcceptCapacityReservationBillingOwnership"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: AcceptCapacityReservationBillingOwnershipRequest)
        o.output = Shapes::ShapeRef.new(shape: AcceptCapacityReservationBillingOwnershipResult)
      end)

      api.add_operation(:accept_reserved_instances_exchange_quote, Seahorse::Model::Operation.new.tap do |o|
        o.name = "AcceptReservedInstancesExchangeQuote"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: AcceptReservedInstancesExchangeQuoteRequest)
        o.output = Shapes::ShapeRef.new(shape: AcceptReservedInstancesExchangeQuoteResult)
      end)

      api.add_operation(:accept_transit_gateway_multicast_domain_associations, Seahorse::Model::Operation.new.tap do |o|
        o.name = "AcceptTransitGatewayMulticastDomainAssociations"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: AcceptTransitGatewayMulticastDomainAssociationsRequest)
        o.output = Shapes::ShapeRef.new(shape: AcceptTransitGatewayMulticastDomainAssociationsResult)
      end)

      api.add_operation(:accept_transit_gateway_peering_attachment, Seahorse::Model::Operation.new.tap do |o|
        o.name = "AcceptTransitGatewayPeeringAttachment"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: AcceptTransitGatewayPeeringAttachmentRequest)
        o.output = Shapes::ShapeRef.new(shape: AcceptTransitGatewayPeeringAttachmentResult)
      end)

      api.add_operation(:accept_transit_gateway_vpc_attachment, Seahorse::Model::Operation.new.tap do |o|
        o.name = "AcceptTransitGatewayVpcAttachment"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: AcceptTransitGatewayVpcAttachmentRequest)
        o.output = Shapes::ShapeRef.new(shape: AcceptTransitGatewayVpcAttachmentResult)
      end)

      api.add_operation(:accept_vpc_endpoint_connections, Seahorse::Model::Operation.new.tap do |o|
        o.name = "AcceptVpcEndpointConnections"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: AcceptVpcEndpointConnectionsRequest)
        o.output = Shapes::ShapeRef.new(shape: AcceptVpcEndpointConnectionsResult)
      end)

      api.add_operation(:accept_vpc_peering_connection, Seahorse::Model::Operation.new.tap do |o|
        o.name = "AcceptVpcPeeringConnection"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: AcceptVpcPeeringConnectionRequest)
        o.output = Shapes::ShapeRef.new(shape: AcceptVpcPeeringConnectionResult)
      end)

      api.add_operation(:advertise_byoip_cidr, Seahorse::Model::Operation.new.tap do |o|
        o.name = "AdvertiseByoipCidr"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: AdvertiseByoipCidrRequest)
        o.output = Shapes::ShapeRef.new(shape: AdvertiseByoipCidrResult)
      end)

      api.add_operation(:allocate_address, Seahorse::Model::Operation.new.tap do |o|
        o.name = "AllocateAddress"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: AllocateAddressRequest)
        o.output = Shapes::ShapeRef.new(shape: AllocateAddressResult)
      end)

      api.add_operation(:allocate_hosts, Seahorse::Model::Operation.new.tap do |o|
        o.name = "AllocateHosts"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: AllocateHostsRequest)
        o.output = Shapes::ShapeRef.new(shape: AllocateHostsResult)
      end)

      api.add_operation(:allocate_ipam_pool_cidr, Seahorse::Model::Operation.new.tap do |o|
        o.name = "AllocateIpamPoolCidr"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: AllocateIpamPoolCidrRequest)
        o.output = Shapes::ShapeRef.new(shape: AllocateIpamPoolCidrResult)
      end)

      api.add_operation(:apply_security_groups_to_client_vpn_target_network, Seahorse::Model::Operation.new.tap do |o|
        o.name = "ApplySecurityGroupsToClientVpnTargetNetwork"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: ApplySecurityGroupsToClientVpnTargetNetworkRequest)
        o.output = Shapes::ShapeRef.new(shape: ApplySecurityGroupsToClientVpnTargetNetworkResult)
      end)

      api.add_operation(:assign_ipv_6_addresses, Seahorse::Model::Operation.new.tap do |o|
        o.name = "AssignIpv6Addresses"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: AssignIpv6AddressesRequest)
        o.output = Shapes::ShapeRef.new(shape: AssignIpv6AddressesResult)
      end)

      api.add_operation(:assign_private_ip_addresses, Seahorse::Model::Operation.new.tap do |o|
        o.name = "AssignPrivateIpAddresses"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: AssignPrivateIpAddressesRequest)
        o.output = Shapes::ShapeRef.new(shape: AssignPrivateIpAddressesResult)
      end)

      api.add_operation(:assign_private_nat_gateway_address, Seahorse::Model::Operation.new.tap do |o|
        o.name = "AssignPrivateNatGatewayAddress"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: AssignPrivateNatGatewayAddressRequest)
        o.output = Shapes::ShapeRef.new(shape: AssignPrivateNatGatewayAddressResult)
      end)

      api.add_operation(:associate_address, Seahorse::Model::Operation.new.tap do |o|
        o.name = "AssociateAddress"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: AssociateAddressRequest)
        o.output = Shapes::ShapeRef.new(shape: AssociateAddressResult)
      end)

      api.add_operation(:associate_capacity_reservation_billing_owner, Seahorse::Model::Operation.new.tap do |o|
        o.name = "AssociateCapacityReservationBillingOwner"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: AssociateCapacityReservationBillingOwnerRequest)
        o.output = Shapes::ShapeRef.new(shape: AssociateCapacityReservationBillingOwnerResult)
      end)

      api.add_operation(:associate_client_vpn_target_network, Seahorse::Model::Operation.new.tap do |o|
        o.name = "AssociateClientVpnTargetNetwork"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: AssociateClientVpnTargetNetworkRequest)
        o.output = Shapes::ShapeRef.new(shape: AssociateClientVpnTargetNetworkResult)
      end)

      api.add_operation(:associate_dhcp_options, Seahorse::Model::Operation.new.tap do |o|
        o.name = "AssociateDhcpOptions"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: AssociateDhcpOptionsRequest)
        o.output = Shapes::ShapeRef.new(shape: Shapes::StructureShape.new(struct_class: Aws::EmptyStructure))
      end)

      api.add_operation(:associate_enclave_certificate_iam_role, Seahorse::Model::Operation.new.tap do |o|
        o.name = "AssociateEnclaveCertificateIamRole"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: AssociateEnclaveCertificateIamRoleRequest)
        o.output = Shapes::ShapeRef.new(shape: AssociateEnclaveCertificateIamRoleResult)
      end)

      api.add_operation(:associate_iam_instance_profile, Seahorse::Model::Operation.new.tap do |o|
        o.name = "AssociateIamInstanceProfile"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: AssociateIamInstanceProfileRequest)
        o.output = Shapes::ShapeRef.new(shape: AssociateIamInstanceProfileResult)
      end)

      api.add_operation(:associate_instance_event_window, Seahorse::Model::Operation.new.tap do |o|
        o.name = "AssociateInstanceEventWindow"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: AssociateInstanceEventWindowRequest)
        o.output = Shapes::ShapeRef.new(shape: AssociateInstanceEventWindowResult)
      end)

      api.add_operation(:associate_ipam_byoasn, Seahorse::Model::Operation.new.tap do |o|
        o.name = "AssociateIpamByoasn"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: AssociateIpamByoasnRequest)
        o.output = Shapes::ShapeRef.new(shape: AssociateIpamByoasnResult)
      end)

      api.add_operation(:associate_ipam_resource_discovery, Seahorse::Model::Operation.new.tap do |o|
        o.name = "AssociateIpamResourceDiscovery"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: AssociateIpamResourceDiscoveryRequest)
        o.output = Shapes::ShapeRef.new(shape: AssociateIpamResourceDiscoveryResult)
      end)

      api.add_operation(:associate_nat_gateway_address, Seahorse::Model::Operation.new.tap do |o|
        o.name = "AssociateNatGatewayAddress"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: AssociateNatGatewayAddressRequest)
        o.output = Shapes::ShapeRef.new(shape: AssociateNatGatewayAddressResult)
      end)

      api.add_operation(:associate_route_table, Seahorse::Model::Operation.new.tap do |o|
        o.name = "AssociateRouteTable"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: AssociateRouteTableRequest)
        o.output = Shapes::ShapeRef.new(shape: AssociateRouteTableResult)
      end)

      api.add_operation(:associate_security_group_vpc, Seahorse::Model::Operation.new.tap do |o|
        o.name = "AssociateSecurityGroupVpc"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: AssociateSecurityGroupVpcRequest)
        o.output = Shapes::ShapeRef.new(shape: AssociateSecurityGroupVpcResult)
      end)

      api.add_operation(:associate_subnet_cidr_block, Seahorse::Model::Operation.new.tap do |o|
        o.name = "AssociateSubnetCidrBlock"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: AssociateSubnetCidrBlockRequest)
        o.output = Shapes::ShapeRef.new(shape: AssociateSubnetCidrBlockResult)
      end)

      api.add_operation(:associate_transit_gateway_multicast_domain, Seahorse::Model::Operation.new.tap do |o|
        o.name = "AssociateTransitGatewayMulticastDomain"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: AssociateTransitGatewayMulticastDomainRequest)
        o.output = Shapes::ShapeRef.new(shape: AssociateTransitGatewayMulticastDomainResult)
      end)

      api.add_operation(:associate_transit_gateway_policy_table, Seahorse::Model::Operation.new.tap do |o|
        o.name = "AssociateTransitGatewayPolicyTable"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: AssociateTransitGatewayPolicyTableRequest)
        o.output = Shapes::ShapeRef.new(shape: AssociateTransitGatewayPolicyTableResult)
      end)

      api.add_operation(:associate_transit_gateway_route_table, Seahorse::Model::Operation.new.tap do |o|
        o.name = "AssociateTransitGatewayRouteTable"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: AssociateTransitGatewayRouteTableRequest)
        o.output = Shapes::ShapeRef.new(shape: AssociateTransitGatewayRouteTableResult)
      end)

      api.add_operation(:associate_trunk_interface, Seahorse::Model::Operation.new.tap do |o|
        o.name = "AssociateTrunkInterface"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: AssociateTrunkInterfaceRequest)
        o.output = Shapes::ShapeRef.new(shape: AssociateTrunkInterfaceResult)
      end)

      api.add_operation(:associate_vpc_cidr_block, Seahorse::Model::Operation.new.tap do |o|
        o.name = "AssociateVpcCidrBlock"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: AssociateVpcCidrBlockRequest)
        o.output = Shapes::ShapeRef.new(shape: AssociateVpcCidrBlockResult)
      end)

      api.add_operation(:attach_classic_link_vpc, Seahorse::Model::Operation.new.tap do |o|
        o.name = "AttachClassicLinkVpc"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: AttachClassicLinkVpcRequest)
        o.output = Shapes::ShapeRef.new(shape: AttachClassicLinkVpcResult)
      end)

      api.add_operation(:attach_internet_gateway, Seahorse::Model::Operation.new.tap do |o|
        o.name = "AttachInternetGateway"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: AttachInternetGatewayRequest)
        o.output = Shapes::ShapeRef.new(shape: Shapes::StructureShape.new(struct_class: Aws::EmptyStructure))
      end)

      api.add_operation(:attach_network_interface, Seahorse::Model::Operation.new.tap do |o|
        o.name = "AttachNetworkInterface"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: AttachNetworkInterfaceRequest)
        o.output = Shapes::ShapeRef.new(shape: AttachNetworkInterfaceResult)
      end)

      api.add_operation(:attach_verified_access_trust_provider, Seahorse::Model::Operation.new.tap do |o|
        o.name = "AttachVerifiedAccessTrustProvider"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: AttachVerifiedAccessTrustProviderRequest)
        o.output = Shapes::ShapeRef.new(shape: AttachVerifiedAccessTrustProviderResult)
      end)

      api.add_operation(:attach_volume, Seahorse::Model::Operation.new.tap do |o|
        o.name = "AttachVolume"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: AttachVolumeRequest)
        o.output = Shapes::ShapeRef.new(shape: VolumeAttachment)
      end)

      api.add_operation(:attach_vpn_gateway, Seahorse::Model::Operation.new.tap do |o|
        o.name = "AttachVpnGateway"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: AttachVpnGatewayRequest)
        o.output = Shapes::ShapeRef.new(shape: AttachVpnGatewayResult)
      end)

      api.add_operation(:authorize_client_vpn_ingress, Seahorse::Model::Operation.new.tap do |o|
        o.name = "AuthorizeClientVpnIngress"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: AuthorizeClientVpnIngressRequest)
        o.output = Shapes::ShapeRef.new(shape: AuthorizeClientVpnIngressResult)
      end)

      api.add_operation(:authorize_security_group_egress, Seahorse::Model::Operation.new.tap do |o|
        o.name = "AuthorizeSecurityGroupEgress"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: AuthorizeSecurityGroupEgressRequest)
        o.output = Shapes::ShapeRef.new(shape: AuthorizeSecurityGroupEgressResult)
      end)

      api.add_operation(:authorize_security_group_ingress, Seahorse::Model::Operation.new.tap do |o|
        o.name = "AuthorizeSecurityGroupIngress"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: AuthorizeSecurityGroupIngressRequest)
        o.output = Shapes::ShapeRef.new(shape: AuthorizeSecurityGroupIngressResult)
      end)

      api.add_operation(:bundle_instance, Seahorse::Model::Operation.new.tap do |o|
        o.name = "BundleInstance"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: BundleInstanceRequest)
        o.output = Shapes::ShapeRef.new(shape: BundleInstanceResult)
      end)

      api.add_operation(:cancel_bundle_task, Seahorse::Model::Operation.new.tap do |o|
        o.name = "CancelBundleTask"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: CancelBundleTaskRequest)
        o.output = Shapes::ShapeRef.new(shape: CancelBundleTaskResult)
      end)

      api.add_operation(:cancel_capacity_reservation, Seahorse::Model::Operation.new.tap do |o|
        o.name = "CancelCapacityReservation"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: CancelCapacityReservationRequest)
        o.output = Shapes::ShapeRef.new(shape: CancelCapacityReservationResult)
      end)

      api.add_operation(:cancel_capacity_reservation_fleets, Seahorse::Model::Operation.new.tap do |o|
        o.name = "CancelCapacityReservationFleets"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: CancelCapacityReservationFleetsRequest)
        o.output = Shapes::ShapeRef.new(shape: CancelCapacityReservationFleetsResult)
      end)

      api.add_operation(:cancel_conversion_task, Seahorse::Model::Operation.new.tap do |o|
        o.name = "CancelConversionTask"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: CancelConversionRequest)
        o.output = Shapes::ShapeRef.new(shape: Shapes::StructureShape.new(struct_class: Aws::EmptyStructure))
      end)

      api.add_operation(:cancel_declarative_policies_report, Seahorse::Model::Operation.new.tap do |o|
        o.name = "CancelDeclarativePoliciesReport"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: CancelDeclarativePoliciesReportRequest)
        o.output = Shapes::ShapeRef.new(shape: CancelDeclarativePoliciesReportResult)
      end)

      api.add_operation(:cancel_export_task, Seahorse::Model::Operation.new.tap do |o|
        o.name = "CancelExportTask"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: CancelExportTaskRequest)
        o.output = Shapes::ShapeRef.new(shape: Shapes::StructureShape.new(struct_class: Aws::EmptyStructure))
      end)

      api.add_operation(:cancel_image_launch_permission, Seahorse::Model::Operation.new.tap do |o|
        o.name = "CancelImageLaunchPermission"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: CancelImageLaunchPermissionRequest)
        o.output = Shapes::ShapeRef.new(shape: CancelImageLaunchPermissionResult)
      end)

      api.add_operation(:cancel_import_task, Seahorse::Model::Operation.new.tap do |o|
        o.name = "CancelImportTask"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: CancelImportTaskRequest)
        o.output = Shapes::ShapeRef.new(shape: CancelImportTaskResult)
      end)

      api.add_operation(:cancel_reserved_instances_listing, Seahorse::Model::Operation.new.tap do |o|
        o.name = "CancelReservedInstancesListing"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: CancelReservedInstancesListingRequest)
        o.output = Shapes::ShapeRef.new(shape: CancelReservedInstancesListingResult)
      end)

      api.add_operation(:cancel_spot_fleet_requests, Seahorse::Model::Operation.new.tap do |o|
        o.name = "CancelSpotFleetRequests"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: CancelSpotFleetRequestsRequest)
        o.output = Shapes::ShapeRef.new(shape: CancelSpotFleetRequestsResponse)
      end)

      api.add_operation(:cancel_spot_instance_requests, Seahorse::Model::Operation.new.tap do |o|
        o.name = "CancelSpotInstanceRequests"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: CancelSpotInstanceRequestsRequest)
        o.output = Shapes::ShapeRef.new(shape: CancelSpotInstanceRequestsResult)
      end)

      api.add_operation(:confirm_product_instance, Seahorse::Model::Operation.new.tap do |o|
        o.name = "ConfirmProductInstance"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: ConfirmProductInstanceRequest)
        o.output = Shapes::ShapeRef.new(shape: ConfirmProductInstanceResult)
      end)

      api.add_operation(:copy_fpga_image, Seahorse::Model::Operation.new.tap do |o|
        o.name = "CopyFpgaImage"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: CopyFpgaImageRequest)
        o.output = Shapes::ShapeRef.new(shape: CopyFpgaImageResult)
      end)

      api.add_operation(:copy_image, Seahorse::Model::Operation.new.tap do |o|
        o.name = "CopyImage"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: CopyImageRequest)
        o.output = Shapes::ShapeRef.new(shape: CopyImageResult)
      end)

      api.add_operation(:copy_snapshot, Seahorse::Model::Operation.new.tap do |o|
        o.name = "CopySnapshot"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: CopySnapshotRequest)
        o.output = Shapes::ShapeRef.new(shape: CopySnapshotResult)
      end)

      api.add_operation(:create_capacity_reservation, Seahorse::Model::Operation.new.tap do |o|
        o.name = "CreateCapacityReservation"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: CreateCapacityReservationRequest)
        o.output = Shapes::ShapeRef.new(shape: CreateCapacityReservationResult)
      end)

      api.add_operation(:create_capacity_reservation_by_splitting, Seahorse::Model::Operation.new.tap do |o|
        o.name = "CreateCapacityReservationBySplitting"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: CreateCapacityReservationBySplittingRequest)
        o.output = Shapes::ShapeRef.new(shape: CreateCapacityReservationBySplittingResult)
      end)

      api.add_operation(:create_capacity_reservation_fleet, Seahorse::Model::Operation.new.tap do |o|
        o.name = "CreateCapacityReservationFleet"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: CreateCapacityReservationFleetRequest)
        o.output = Shapes::ShapeRef.new(shape: CreateCapacityReservationFleetResult)
      end)

      api.add_operation(:create_carrier_gateway, Seahorse::Model::Operation.new.tap do |o|
        o.name = "CreateCarrierGateway"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: CreateCarrierGatewayRequest)
        o.output = Shapes::ShapeRef.new(shape: CreateCarrierGatewayResult)
      end)

      api.add_operation(:create_client_vpn_endpoint, Seahorse::Model::Operation.new.tap do |o|
        o.name = "CreateClientVpnEndpoint"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: CreateClientVpnEndpointRequest)
        o.output = Shapes::ShapeRef.new(shape: CreateClientVpnEndpointResult)
      end)

      api.add_operation(:create_client_vpn_route, Seahorse::Model::Operation.new.tap do |o|
        o.name = "CreateClientVpnRoute"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: CreateClientVpnRouteRequest)
        o.output = Shapes::ShapeRef.new(shape: CreateClientVpnRouteResult)
      end)

      api.add_operation(:create_coip_cidr, Seahorse::Model::Operation.new.tap do |o|
        o.name = "CreateCoipCidr"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: CreateCoipCidrRequest)
        o.output = Shapes::ShapeRef.new(shape: CreateCoipCidrResult)
      end)

      api.add_operation(:create_coip_pool, Seahorse::Model::Operation.new.tap do |o|
        o.name = "CreateCoipPool"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: CreateCoipPoolRequest)
        o.output = Shapes::ShapeRef.new(shape: CreateCoipPoolResult)
      end)

      api.add_operation(:create_customer_gateway, Seahorse::Model::Operation.new.tap do |o|
        o.name = "CreateCustomerGateway"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: CreateCustomerGatewayRequest)
        o.output = Shapes::ShapeRef.new(shape: CreateCustomerGatewayResult)
      end)

      api.add_operation(:create_default_subnet, Seahorse::Model::Operation.new.tap do |o|
        o.name = "CreateDefaultSubnet"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: CreateDefaultSubnetRequest)
        o.output = Shapes::ShapeRef.new(shape: CreateDefaultSubnetResult)
      end)

      api.add_operation(:create_default_vpc, Seahorse::Model::Operation.new.tap do |o|
        o.name = "CreateDefaultVpc"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: CreateDefaultVpcRequest)
        o.output = Shapes::ShapeRef.new(shape: CreateDefaultVpcResult)
      end)

      api.add_operation(:create_dhcp_options, Seahorse::Model::Operation.new.tap do |o|
        o.name = "CreateDhcpOptions"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: CreateDhcpOptionsRequest)
        o.output = Shapes::ShapeRef.new(shape: CreateDhcpOptionsResult)
      end)

      api.add_operation(:create_egress_only_internet_gateway, Seahorse::Model::Operation.new.tap do |o|
        o.name = "CreateEgressOnlyInternetGateway"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: CreateEgressOnlyInternetGatewayRequest)
        o.output = Shapes::ShapeRef.new(shape: CreateEgressOnlyInternetGatewayResult)
      end)

      api.add_operation(:create_fleet, Seahorse::Model::Operation.new.tap do |o|
        o.name = "CreateFleet"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: CreateFleetRequest)
        o.output = Shapes::ShapeRef.new(shape: CreateFleetResult)
      end)

      api.add_operation(:create_flow_logs, Seahorse::Model::Operation.new.tap do |o|
        o.name = "CreateFlowLogs"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: CreateFlowLogsRequest)
        o.output = Shapes::ShapeRef.new(shape: CreateFlowLogsResult)
      end)

      api.add_operation(:create_fpga_image, Seahorse::Model::Operation.new.tap do |o|
        o.name = "CreateFpgaImage"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: CreateFpgaImageRequest)
        o.output = Shapes::ShapeRef.new(shape: CreateFpgaImageResult)
      end)

      api.add_operation(:create_image, Seahorse::Model::Operation.new.tap do |o|
        o.name = "CreateImage"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: CreateImageRequest)
        o.output = Shapes::ShapeRef.new(shape: CreateImageResult)
      end)

      api.add_operation(:create_instance_connect_endpoint, Seahorse::Model::Operation.new.tap do |o|
        o.name = "CreateInstanceConnectEndpoint"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: CreateInstanceConnectEndpointRequest)
        o.output = Shapes::ShapeRef.new(shape: CreateInstanceConnectEndpointResult)
      end)

      api.add_operation(:create_instance_event_window, Seahorse::Model::Operation.new.tap do |o|
        o.name = "CreateInstanceEventWindow"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: CreateInstanceEventWindowRequest)
        o.output = Shapes::ShapeRef.new(shape: CreateInstanceEventWindowResult)
      end)

      api.add_operation(:create_instance_export_task, Seahorse::Model::Operation.new.tap do |o|
        o.name = "CreateInstanceExportTask"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: CreateInstanceExportTaskRequest)
        o.output = Shapes::ShapeRef.new(shape: CreateInstanceExportTaskResult)
      end)

      api.add_operation(:create_internet_gateway, Seahorse::Model::Operation.new.tap do |o|
        o.name = "CreateInternetGateway"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: CreateInternetGatewayRequest)
        o.output = Shapes::ShapeRef.new(shape: CreateInternetGatewayResult)
      end)

      api.add_operation(:create_ipam, Seahorse::Model::Operation.new.tap do |o|
        o.name = "CreateIpam"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: CreateIpamRequest)
        o.output = Shapes::ShapeRef.new(shape: CreateIpamResult)
      end)

      api.add_operation(:create_ipam_external_resource_verification_token, Seahorse::Model::Operation.new.tap do |o|
        o.name = "CreateIpamExternalResourceVerificationToken"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: CreateIpamExternalResourceVerificationTokenRequest)
        o.output = Shapes::ShapeRef.new(shape: CreateIpamExternalResourceVerificationTokenResult)
      end)

      api.add_operation(:create_ipam_pool, Seahorse::Model::Operation.new.tap do |o|
        o.name = "CreateIpamPool"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: CreateIpamPoolRequest)
        o.output = Shapes::ShapeRef.new(shape: CreateIpamPoolResult)
      end)

      api.add_operation(:create_ipam_resource_discovery, Seahorse::Model::Operation.new.tap do |o|
        o.name = "CreateIpamResourceDiscovery"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: CreateIpamResourceDiscoveryRequest)
        o.output = Shapes::ShapeRef.new(shape: CreateIpamResourceDiscoveryResult)
      end)

      api.add_operation(:create_ipam_scope, Seahorse::Model::Operation.new.tap do |o|
        o.name = "CreateIpamScope"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: CreateIpamScopeRequest)
        o.output = Shapes::ShapeRef.new(shape: CreateIpamScopeResult)
      end)

      api.add_operation(:create_key_pair, Seahorse::Model::Operation.new.tap do |o|
        o.name = "CreateKeyPair"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: CreateKeyPairRequest)
        o.output = Shapes::ShapeRef.new(shape: KeyPair)
      end)

      api.add_operation(:create_launch_template, Seahorse::Model::Operation.new.tap do |o|
        o.name = "CreateLaunchTemplate"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: CreateLaunchTemplateRequest)
        o.output = Shapes::ShapeRef.new(shape: CreateLaunchTemplateResult)
      end)

      api.add_operation(:create_launch_template_version, Seahorse::Model::Operation.new.tap do |o|
        o.name = "CreateLaunchTemplateVersion"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: CreateLaunchTemplateVersionRequest)
        o.output = Shapes::ShapeRef.new(shape: CreateLaunchTemplateVersionResult)
      end)

      api.add_operation(:create_local_gateway_route, Seahorse::Model::Operation.new.tap do |o|
        o.name = "CreateLocalGatewayRoute"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: CreateLocalGatewayRouteRequest)
        o.output = Shapes::ShapeRef.new(shape: CreateLocalGatewayRouteResult)
      end)

      api.add_operation(:create_local_gateway_route_table, Seahorse::Model::Operation.new.tap do |o|
        o.name = "CreateLocalGatewayRouteTable"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: CreateLocalGatewayRouteTableRequest)
        o.output = Shapes::ShapeRef.new(shape: CreateLocalGatewayRouteTableResult)
      end)

      api.add_operation(:create_local_gateway_route_table_virtual_interface_group_association, Seahorse::Model::Operation.new.tap do |o|
        o.name = "CreateLocalGatewayRouteTableVirtualInterfaceGroupAssociation"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: CreateLocalGatewayRouteTableVirtualInterfaceGroupAssociationRequest)
        o.output = Shapes::ShapeRef.new(shape: CreateLocalGatewayRouteTableVirtualInterfaceGroupAssociationResult)
      end)

      api.add_operation(:create_local_gateway_route_table_vpc_association, Seahorse::Model::Operation.new.tap do |o|
        o.name = "CreateLocalGatewayRouteTableVpcAssociation"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: CreateLocalGatewayRouteTableVpcAssociationRequest)
        o.output = Shapes::ShapeRef.new(shape: CreateLocalGatewayRouteTableVpcAssociationResult)
      end)

      api.add_operation(:create_managed_prefix_list, Seahorse::Model::Operation.new.tap do |o|
        o.name = "CreateManagedPrefixList"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: CreateManagedPrefixListRequest)
        o.output = Shapes::ShapeRef.new(shape: CreateManagedPrefixListResult)
      end)

      api.add_operation(:create_nat_gateway, Seahorse::Model::Operation.new.tap do |o|
        o.name = "CreateNatGateway"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: CreateNatGatewayRequest)
        o.output = Shapes::ShapeRef.new(shape: CreateNatGatewayResult)
      end)

      api.add_operation(:create_network_acl, Seahorse::Model::Operation.new.tap do |o|
        o.name = "CreateNetworkAcl"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: CreateNetworkAclRequest)
        o.output = Shapes::ShapeRef.new(shape: CreateNetworkAclResult)
      end)

      api.add_operation(:create_network_acl_entry, Seahorse::Model::Operation.new.tap do |o|
        o.name = "CreateNetworkAclEntry"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: CreateNetworkAclEntryRequest)
        o.output = Shapes::ShapeRef.new(shape: Shapes::StructureShape.new(struct_class: Aws::EmptyStructure))
      end)

      api.add_operation(:create_network_insights_access_scope, Seahorse::Model::Operation.new.tap do |o|
        o.name = "CreateNetworkInsightsAccessScope"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: CreateNetworkInsightsAccessScopeRequest)
        o.output = Shapes::ShapeRef.new(shape: CreateNetworkInsightsAccessScopeResult)
      end)

      api.add_operation(:create_network_insights_path, Seahorse::Model::Operation.new.tap do |o|
        o.name = "CreateNetworkInsightsPath"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: CreateNetworkInsightsPathRequest)
        o.output = Shapes::ShapeRef.new(shape: CreateNetworkInsightsPathResult)
      end)

      api.add_operation(:create_network_interface, Seahorse::Model::Operation.new.tap do |o|
        o.name = "CreateNetworkInterface"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: CreateNetworkInterfaceRequest)
        o.output = Shapes::ShapeRef.new(shape: CreateNetworkInterfaceResult)
      end)

      api.add_operation(:create_network_interface_permission, Seahorse::Model::Operation.new.tap do |o|
        o.name = "CreateNetworkInterfacePermission"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: CreateNetworkInterfacePermissionRequest)
        o.output = Shapes::ShapeRef.new(shape: CreateNetworkInterfacePermissionResult)
      end)

      api.add_operation(:create_placement_group, Seahorse::Model::Operation.new.tap do |o|
        o.name = "CreatePlacementGroup"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: CreatePlacementGroupRequest)
        o.output = Shapes::ShapeRef.new(shape: CreatePlacementGroupResult)
      end)

      api.add_operation(:create_public_ipv_4_pool, Seahorse::Model::Operation.new.tap do |o|
        o.name = "CreatePublicIpv4Pool"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: CreatePublicIpv4PoolRequest)
        o.output = Shapes::ShapeRef.new(shape: CreatePublicIpv4PoolResult)
      end)

      api.add_operation(:create_replace_root_volume_task, Seahorse::Model::Operation.new.tap do |o|
        o.name = "CreateReplaceRootVolumeTask"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: CreateReplaceRootVolumeTaskRequest)
        o.output = Shapes::ShapeRef.new(shape: CreateReplaceRootVolumeTaskResult)
      end)

      api.add_operation(:create_reserved_instances_listing, Seahorse::Model::Operation.new.tap do |o|
        o.name = "CreateReservedInstancesListing"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: CreateReservedInstancesListingRequest)
        o.output = Shapes::ShapeRef.new(shape: CreateReservedInstancesListingResult)
      end)

      api.add_operation(:create_restore_image_task, Seahorse::Model::Operation.new.tap do |o|
        o.name = "CreateRestoreImageTask"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: CreateRestoreImageTaskRequest)
        o.output = Shapes::ShapeRef.new(shape: CreateRestoreImageTaskResult)
      end)

      api.add_operation(:create_route, Seahorse::Model::Operation.new.tap do |o|
        o.name = "CreateRoute"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: CreateRouteRequest)
        o.output = Shapes::ShapeRef.new(shape: CreateRouteResult)
      end)

      api.add_operation(:create_route_table, Seahorse::Model::Operation.new.tap do |o|
        o.name = "CreateRouteTable"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: CreateRouteTableRequest)
        o.output = Shapes::ShapeRef.new(shape: CreateRouteTableResult)
      end)

      api.add_operation(:create_security_group, Seahorse::Model::Operation.new.tap do |o|
        o.name = "CreateSecurityGroup"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: CreateSecurityGroupRequest)
        o.output = Shapes::ShapeRef.new(shape: CreateSecurityGroupResult)
      end)

      api.add_operation(:create_snapshot, Seahorse::Model::Operation.new.tap do |o|
        o.name = "CreateSnapshot"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: CreateSnapshotRequest)
        o.output = Shapes::ShapeRef.new(shape: Snapshot)
      end)

      api.add_operation(:create_snapshots, Seahorse::Model::Operation.new.tap do |o|
        o.name = "CreateSnapshots"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: CreateSnapshotsRequest)
        o.output = Shapes::ShapeRef.new(shape: CreateSnapshotsResult)
      end)

      api.add_operation(:create_spot_datafeed_subscription, Seahorse::Model::Operation.new.tap do |o|
        o.name = "CreateSpotDatafeedSubscription"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: CreateSpotDatafeedSubscriptionRequest)
        o.output = Shapes::ShapeRef.new(shape: CreateSpotDatafeedSubscriptionResult)
      end)

      api.add_operation(:create_store_image_task, Seahorse::Model::Operation.new.tap do |o|
        o.name = "CreateStoreImageTask"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: CreateStoreImageTaskRequest)
        o.output = Shapes::ShapeRef.new(shape: CreateStoreImageTaskResult)
      end)

      api.add_operation(:create_subnet, Seahorse::Model::Operation.new.tap do |o|
        o.name = "CreateSubnet"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: CreateSubnetRequest)
        o.output = Shapes::ShapeRef.new(shape: CreateSubnetResult)
      end)

      api.add_operation(:create_subnet_cidr_reservation, Seahorse::Model::Operation.new.tap do |o|
        o.name = "CreateSubnetCidrReservation"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: CreateSubnetCidrReservationRequest)
        o.output = Shapes::ShapeRef.new(shape: CreateSubnetCidrReservationResult)
      end)

      api.add_operation(:create_tags, Seahorse::Model::Operation.new.tap do |o|
        o.name = "CreateTags"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: CreateTagsRequest)
        o.output = Shapes::ShapeRef.new(shape: Shapes::StructureShape.new(struct_class: Aws::EmptyStructure))
      end)

      api.add_operation(:create_traffic_mirror_filter, Seahorse::Model::Operation.new.tap do |o|
        o.name = "CreateTrafficMirrorFilter"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: CreateTrafficMirrorFilterRequest)
        o.output = Shapes::ShapeRef.new(shape: CreateTrafficMirrorFilterResult)
      end)

      api.add_operation(:create_traffic_mirror_filter_rule, Seahorse::Model::Operation.new.tap do |o|
        o.name = "CreateTrafficMirrorFilterRule"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: CreateTrafficMirrorFilterRuleRequest)
        o.output = Shapes::ShapeRef.new(shape: CreateTrafficMirrorFilterRuleResult)
      end)

      api.add_operation(:create_traffic_mirror_session, Seahorse::Model::Operation.new.tap do |o|
        o.name = "CreateTrafficMirrorSession"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: CreateTrafficMirrorSessionRequest)
        o.output = Shapes::ShapeRef.new(shape: CreateTrafficMirrorSessionResult)
      end)

      api.add_operation(:create_traffic_mirror_target, Seahorse::Model::Operation.new.tap do |o|
        o.name = "CreateTrafficMirrorTarget"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: CreateTrafficMirrorTargetRequest)
        o.output = Shapes::ShapeRef.new(shape: CreateTrafficMirrorTargetResult)
      end)

      api.add_operation(:create_transit_gateway, Seahorse::Model::Operation.new.tap do |o|
        o.name = "CreateTransitGateway"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: CreateTransitGatewayRequest)
        o.output = Shapes::ShapeRef.new(shape: CreateTransitGatewayResult)
      end)

      api.add_operation(:create_transit_gateway_connect, Seahorse::Model::Operation.new.tap do |o|
        o.name = "CreateTransitGatewayConnect"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: CreateTransitGatewayConnectRequest)
        o.output = Shapes::ShapeRef.new(shape: CreateTransitGatewayConnectResult)
      end)

      api.add_operation(:create_transit_gateway_connect_peer, Seahorse::Model::Operation.new.tap do |o|
        o.name = "CreateTransitGatewayConnectPeer"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: CreateTransitGatewayConnectPeerRequest)
        o.output = Shapes::ShapeRef.new(shape: CreateTransitGatewayConnectPeerResult)
      end)

      api.add_operation(:create_transit_gateway_multicast_domain, Seahorse::Model::Operation.new.tap do |o|
        o.name = "CreateTransitGatewayMulticastDomain"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: CreateTransitGatewayMulticastDomainRequest)
        o.output = Shapes::ShapeRef.new(shape: CreateTransitGatewayMulticastDomainResult)
      end)

      api.add_operation(:create_transit_gateway_peering_attachment, Seahorse::Model::Operation.new.tap do |o|
        o.name = "CreateTransitGatewayPeeringAttachment"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: CreateTransitGatewayPeeringAttachmentRequest)
        o.output = Shapes::ShapeRef.new(shape: CreateTransitGatewayPeeringAttachmentResult)
      end)

      api.add_operation(:create_transit_gateway_policy_table, Seahorse::Model::Operation.new.tap do |o|
        o.name = "CreateTransitGatewayPolicyTable"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: CreateTransitGatewayPolicyTableRequest)
        o.output = Shapes::ShapeRef.new(shape: CreateTransitGatewayPolicyTableResult)
      end)

      api.add_operation(:create_transit_gateway_prefix_list_reference, Seahorse::Model::Operation.new.tap do |o|
        o.name = "CreateTransitGatewayPrefixListReference"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: CreateTransitGatewayPrefixListReferenceRequest)
        o.output = Shapes::ShapeRef.new(shape: CreateTransitGatewayPrefixListReferenceResult)
      end)

      api.add_operation(:create_transit_gateway_route, Seahorse::Model::Operation.new.tap do |o|
        o.name = "CreateTransitGatewayRoute"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: CreateTransitGatewayRouteRequest)
        o.output = Shapes::ShapeRef.new(shape: CreateTransitGatewayRouteResult)
      end)

      api.add_operation(:create_transit_gateway_route_table, Seahorse::Model::Operation.new.tap do |o|
        o.name = "CreateTransitGatewayRouteTable"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: CreateTransitGatewayRouteTableRequest)
        o.output = Shapes::ShapeRef.new(shape: CreateTransitGatewayRouteTableResult)
      end)

      api.add_operation(:create_transit_gateway_route_table_announcement, Seahorse::Model::Operation.new.tap do |o|
        o.name = "CreateTransitGatewayRouteTableAnnouncement"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: CreateTransitGatewayRouteTableAnnouncementRequest)
        o.output = Shapes::ShapeRef.new(shape: CreateTransitGatewayRouteTableAnnouncementResult)
      end)

      api.add_operation(:create_transit_gateway_vpc_attachment, Seahorse::Model::Operation.new.tap do |o|
        o.name = "CreateTransitGatewayVpcAttachment"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: CreateTransitGatewayVpcAttachmentRequest)
        o.output = Shapes::ShapeRef.new(shape: CreateTransitGatewayVpcAttachmentResult)
      end)

      api.add_operation(:create_verified_access_endpoint, Seahorse::Model::Operation.new.tap do |o|
        o.name = "CreateVerifiedAccessEndpoint"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: CreateVerifiedAccessEndpointRequest)
        o.output = Shapes::ShapeRef.new(shape: CreateVerifiedAccessEndpointResult)
      end)

      api.add_operation(:create_verified_access_group, Seahorse::Model::Operation.new.tap do |o|
        o.name = "CreateVerifiedAccessGroup"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: CreateVerifiedAccessGroupRequest)
        o.output = Shapes::ShapeRef.new(shape: CreateVerifiedAccessGroupResult)
      end)

      api.add_operation(:create_verified_access_instance, Seahorse::Model::Operation.new.tap do |o|
        o.name = "CreateVerifiedAccessInstance"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: CreateVerifiedAccessInstanceRequest)
        o.output = Shapes::ShapeRef.new(shape: CreateVerifiedAccessInstanceResult)
      end)

      api.add_operation(:create_verified_access_trust_provider, Seahorse::Model::Operation.new.tap do |o|
        o.name = "CreateVerifiedAccessTrustProvider"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: CreateVerifiedAccessTrustProviderRequest)
        o.output = Shapes::ShapeRef.new(shape: CreateVerifiedAccessTrustProviderResult)
      end)

      api.add_operation(:create_volume, Seahorse::Model::Operation.new.tap do |o|
        o.name = "CreateVolume"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: CreateVolumeRequest)
        o.output = Shapes::ShapeRef.new(shape: Volume)
      end)

      api.add_operation(:create_vpc, Seahorse::Model::Operation.new.tap do |o|
        o.name = "CreateVpc"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: CreateVpcRequest)
        o.output = Shapes::ShapeRef.new(shape: CreateVpcResult)
      end)

      api.add_operation(:create_vpc_block_public_access_exclusion, Seahorse::Model::Operation.new.tap do |o|
        o.name = "CreateVpcBlockPublicAccessExclusion"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: CreateVpcBlockPublicAccessExclusionRequest)
        o.output = Shapes::ShapeRef.new(shape: CreateVpcBlockPublicAccessExclusionResult)
      end)

      api.add_operation(:create_vpc_endpoint, Seahorse::Model::Operation.new.tap do |o|
        o.name = "CreateVpcEndpoint"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: CreateVpcEndpointRequest)
        o.output = Shapes::ShapeRef.new(shape: CreateVpcEndpointResult)
      end)

      api.add_operation(:create_vpc_endpoint_connection_notification, Seahorse::Model::Operation.new.tap do |o|
        o.name = "CreateVpcEndpointConnectionNotification"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: CreateVpcEndpointConnectionNotificationRequest)
        o.output = Shapes::ShapeRef.new(shape: CreateVpcEndpointConnectionNotificationResult)
      end)

      api.add_operation(:create_vpc_endpoint_service_configuration, Seahorse::Model::Operation.new.tap do |o|
        o.name = "CreateVpcEndpointServiceConfiguration"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: CreateVpcEndpointServiceConfigurationRequest)
        o.output = Shapes::ShapeRef.new(shape: CreateVpcEndpointServiceConfigurationResult)
      end)

      api.add_operation(:create_vpc_peering_connection, Seahorse::Model::Operation.new.tap do |o|
        o.name = "CreateVpcPeeringConnection"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: CreateVpcPeeringConnectionRequest)
        o.output = Shapes::ShapeRef.new(shape: CreateVpcPeeringConnectionResult)
      end)

      api.add_operation(:create_vpn_connection, Seahorse::Model::Operation.new.tap do |o|
        o.name = "CreateVpnConnection"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: CreateVpnConnectionRequest)
        o.output = Shapes::ShapeRef.new(shape: CreateVpnConnectionResult)
      end)

      api.add_operation(:create_vpn_connection_route, Seahorse::Model::Operation.new.tap do |o|
        o.name = "CreateVpnConnectionRoute"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: CreateVpnConnectionRouteRequest)
        o.output = Shapes::ShapeRef.new(shape: Shapes::StructureShape.new(struct_class: Aws::EmptyStructure))
      end)

      api.add_operation(:create_vpn_gateway, Seahorse::Model::Operation.new.tap do |o|
        o.name = "CreateVpnGateway"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: CreateVpnGatewayRequest)
        o.output = Shapes::ShapeRef.new(shape: CreateVpnGatewayResult)
      end)

      api.add_operation(:delete_carrier_gateway, Seahorse::Model::Operation.new.tap do |o|
        o.name = "DeleteCarrierGateway"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: DeleteCarrierGatewayRequest)
        o.output = Shapes::ShapeRef.new(shape: DeleteCarrierGatewayResult)
      end)

      api.add_operation(:delete_client_vpn_endpoint, Seahorse::Model::Operation.new.tap do |o|
        o.name = "DeleteClientVpnEndpoint"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: DeleteClientVpnEndpointRequest)
        o.output = Shapes::ShapeRef.new(shape: DeleteClientVpnEndpointResult)
      end)

      api.add_operation(:delete_client_vpn_route, Seahorse::Model::Operation.new.tap do |o|
        o.name = "DeleteClientVpnRoute"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: DeleteClientVpnRouteRequest)
        o.output = Shapes::ShapeRef.new(shape: DeleteClientVpnRouteResult)
      end)

      api.add_operation(:delete_coip_cidr, Seahorse::Model::Operation.new.tap do |o|
        o.name = "DeleteCoipCidr"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: DeleteCoipCidrRequest)
        o.output = Shapes::ShapeRef.new(shape: DeleteCoipCidrResult)
      end)

      api.add_operation(:delete_coip_pool, Seahorse::Model::Operation.new.tap do |o|
        o.name = "DeleteCoipPool"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: DeleteCoipPoolRequest)
        o.output = Shapes::ShapeRef.new(shape: DeleteCoipPoolResult)
      end)

      api.add_operation(:delete_customer_gateway, Seahorse::Model::Operation.new.tap do |o|
        o.name = "DeleteCustomerGateway"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: DeleteCustomerGatewayRequest)
        o.output = Shapes::ShapeRef.new(shape: Shapes::StructureShape.new(struct_class: Aws::EmptyStructure))
      end)

      api.add_operation(:delete_dhcp_options, Seahorse::Model::Operation.new.tap do |o|
        o.name = "DeleteDhcpOptions"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: DeleteDhcpOptionsRequest)
        o.output = Shapes::ShapeRef.new(shape: Shapes::StructureShape.new(struct_class: Aws::EmptyStructure))
      end)

      api.add_operation(:delete_egress_only_internet_gateway, Seahorse::Model::Operation.new.tap do |o|
        o.name = "DeleteEgressOnlyInternetGateway"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: DeleteEgressOnlyInternetGatewayRequest)
        o.output = Shapes::ShapeRef.new(shape: DeleteEgressOnlyInternetGatewayResult)
      end)

      api.add_operation(:delete_fleets, Seahorse::Model::Operation.new.tap do |o|
        o.name = "DeleteFleets"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: DeleteFleetsRequest)
        o.output = Shapes::ShapeRef.new(shape: DeleteFleetsResult)
      end)

      api.add_operation(:delete_flow_logs, Seahorse::Model::Operation.new.tap do |o|
        o.name = "DeleteFlowLogs"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: DeleteFlowLogsRequest)
        o.output = Shapes::ShapeRef.new(shape: DeleteFlowLogsResult)
      end)

      api.add_operation(:delete_fpga_image, Seahorse::Model::Operation.new.tap do |o|
        o.name = "DeleteFpgaImage"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: DeleteFpgaImageRequest)
        o.output = Shapes::ShapeRef.new(shape: DeleteFpgaImageResult)
      end)

      api.add_operation(:delete_instance_connect_endpoint, Seahorse::Model::Operation.new.tap do |o|
        o.name = "DeleteInstanceConnectEndpoint"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: DeleteInstanceConnectEndpointRequest)
        o.output = Shapes::ShapeRef.new(shape: DeleteInstanceConnectEndpointResult)
      end)

      api.add_operation(:delete_instance_event_window, Seahorse::Model::Operation.new.tap do |o|
        o.name = "DeleteInstanceEventWindow"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: DeleteInstanceEventWindowRequest)
        o.output = Shapes::ShapeRef.new(shape: DeleteInstanceEventWindowResult)
      end)

      api.add_operation(:delete_internet_gateway, Seahorse::Model::Operation.new.tap do |o|
        o.name = "DeleteInternetGateway"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: DeleteInternetGatewayRequest)
        o.output = Shapes::ShapeRef.new(shape: Shapes::StructureShape.new(struct_class: Aws::EmptyStructure))
      end)

      api.add_operation(:delete_ipam, Seahorse::Model::Operation.new.tap do |o|
        o.name = "DeleteIpam"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: DeleteIpamRequest)
        o.output = Shapes::ShapeRef.new(shape: DeleteIpamResult)
      end)

      api.add_operation(:delete_ipam_external_resource_verification_token, Seahorse::Model::Operation.new.tap do |o|
        o.name = "DeleteIpamExternalResourceVerificationToken"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: DeleteIpamExternalResourceVerificationTokenRequest)
        o.output = Shapes::ShapeRef.new(shape: DeleteIpamExternalResourceVerificationTokenResult)
      end)

      api.add_operation(:delete_ipam_pool, Seahorse::Model::Operation.new.tap do |o|
        o.name = "DeleteIpamPool"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: DeleteIpamPoolRequest)
        o.output = Shapes::ShapeRef.new(shape: DeleteIpamPoolResult)
      end)

      api.add_operation(:delete_ipam_resource_discovery, Seahorse::Model::Operation.new.tap do |o|
        o.name = "DeleteIpamResourceDiscovery"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: DeleteIpamResourceDiscoveryRequest)
        o.output = Shapes::ShapeRef.new(shape: DeleteIpamResourceDiscoveryResult)
      end)

      api.add_operation(:delete_ipam_scope, Seahorse::Model::Operation.new.tap do |o|
        o.name = "DeleteIpamScope"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: DeleteIpamScopeRequest)
        o.output = Shapes::ShapeRef.new(shape: DeleteIpamScopeResult)
      end)

      api.add_operation(:delete_key_pair, Seahorse::Model::Operation.new.tap do |o|
        o.name = "DeleteKeyPair"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: DeleteKeyPairRequest)
        o.output = Shapes::ShapeRef.new(shape: DeleteKeyPairResult)
      end)

      api.add_operation(:delete_launch_template, Seahorse::Model::Operation.new.tap do |o|
        o.name = "DeleteLaunchTemplate"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: DeleteLaunchTemplateRequest)
        o.output = Shapes::ShapeRef.new(shape: DeleteLaunchTemplateResult)
      end)

      api.add_operation(:delete_launch_template_versions, Seahorse::Model::Operation.new.tap do |o|
        o.name = "DeleteLaunchTemplateVersions"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: DeleteLaunchTemplateVersionsRequest)
        o.output = Shapes::ShapeRef.new(shape: DeleteLaunchTemplateVersionsResult)
      end)

      api.add_operation(:delete_local_gateway_route, Seahorse::Model::Operation.new.tap do |o|
        o.name = "DeleteLocalGatewayRoute"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: DeleteLocalGatewayRouteRequest)
        o.output = Shapes::ShapeRef.new(shape: DeleteLocalGatewayRouteResult)
      end)

      api.add_operation(:delete_local_gateway_route_table, Seahorse::Model::Operation.new.tap do |o|
        o.name = "DeleteLocalGatewayRouteTable"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: DeleteLocalGatewayRouteTableRequest)
        o.output = Shapes::ShapeRef.new(shape: DeleteLocalGatewayRouteTableResult)
      end)

      api.add_operation(:delete_local_gateway_route_table_virtual_interface_group_association, Seahorse::Model::Operation.new.tap do |o|
        o.name = "DeleteLocalGatewayRouteTableVirtualInterfaceGroupAssociation"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: DeleteLocalGatewayRouteTableVirtualInterfaceGroupAssociationRequest)
        o.output = Shapes::ShapeRef.new(shape: DeleteLocalGatewayRouteTableVirtualInterfaceGroupAssociationResult)
      end)

      api.add_operation(:delete_local_gateway_route_table_vpc_association, Seahorse::Model::Operation.new.tap do |o|
        o.name = "DeleteLocalGatewayRouteTableVpcAssociation"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: DeleteLocalGatewayRouteTableVpcAssociationRequest)
        o.output = Shapes::ShapeRef.new(shape: DeleteLocalGatewayRouteTableVpcAssociationResult)
      end)

      api.add_operation(:delete_managed_prefix_list, Seahorse::Model::Operation.new.tap do |o|
        o.name = "DeleteManagedPrefixList"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: DeleteManagedPrefixListRequest)
        o.output = Shapes::ShapeRef.new(shape: DeleteManagedPrefixListResult)
      end)

      api.add_operation(:delete_nat_gateway, Seahorse::Model::Operation.new.tap do |o|
        o.name = "DeleteNatGateway"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: DeleteNatGatewayRequest)
        o.output = Shapes::ShapeRef.new(shape: DeleteNatGatewayResult)
      end)

      api.add_operation(:delete_network_acl, Seahorse::Model::Operation.new.tap do |o|
        o.name = "DeleteNetworkAcl"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: DeleteNetworkAclRequest)
        o.output = Shapes::ShapeRef.new(shape: Shapes::StructureShape.new(struct_class: Aws::EmptyStructure))
      end)

      api.add_operation(:delete_network_acl_entry, Seahorse::Model::Operation.new.tap do |o|
        o.name = "DeleteNetworkAclEntry"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: DeleteNetworkAclEntryRequest)
        o.output = Shapes::ShapeRef.new(shape: Shapes::StructureShape.new(struct_class: Aws::EmptyStructure))
      end)

      api.add_operation(:delete_network_insights_access_scope, Seahorse::Model::Operation.new.tap do |o|
        o.name = "DeleteNetworkInsightsAccessScope"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: DeleteNetworkInsightsAccessScopeRequest)
        o.output = Shapes::ShapeRef.new(shape: DeleteNetworkInsightsAccessScopeResult)
      end)

      api.add_operation(:delete_network_insights_access_scope_analysis, Seahorse::Model::Operation.new.tap do |o|
        o.name = "DeleteNetworkInsightsAccessScopeAnalysis"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: DeleteNetworkInsightsAccessScopeAnalysisRequest)
        o.output = Shapes::ShapeRef.new(shape: DeleteNetworkInsightsAccessScopeAnalysisResult)
      end)

      api.add_operation(:delete_network_insights_analysis, Seahorse::Model::Operation.new.tap do |o|
        o.name = "DeleteNetworkInsightsAnalysis"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: DeleteNetworkInsightsAnalysisRequest)
        o.output = Shapes::ShapeRef.new(shape: DeleteNetworkInsightsAnalysisResult)
      end)

      api.add_operation(:delete_network_insights_path, Seahorse::Model::Operation.new.tap do |o|
        o.name = "DeleteNetworkInsightsPath"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: DeleteNetworkInsightsPathRequest)
        o.output = Shapes::ShapeRef.new(shape: DeleteNetworkInsightsPathResult)
      end)

      api.add_operation(:delete_network_interface, Seahorse::Model::Operation.new.tap do |o|
        o.name = "DeleteNetworkInterface"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: DeleteNetworkInterfaceRequest)
        o.output = Shapes::ShapeRef.new(shape: Shapes::StructureShape.new(struct_class: Aws::EmptyStructure))
      end)

      api.add_operation(:delete_network_interface_permission, Seahorse::Model::Operation.new.tap do |o|
        o.name = "DeleteNetworkInterfacePermission"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: DeleteNetworkInterfacePermissionRequest)
        o.output = Shapes::ShapeRef.new(shape: DeleteNetworkInterfacePermissionResult)
      end)

      api.add_operation(:delete_placement_group, Seahorse::Model::Operation.new.tap do |o|
        o.name = "DeletePlacementGroup"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: DeletePlacementGroupRequest)
        o.output = Shapes::ShapeRef.new(shape: Shapes::StructureShape.new(struct_class: Aws::EmptyStructure))
      end)

      api.add_operation(:delete_public_ipv_4_pool, Seahorse::Model::Operation.new.tap do |o|
        o.name = "DeletePublicIpv4Pool"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: DeletePublicIpv4PoolRequest)
        o.output = Shapes::ShapeRef.new(shape: DeletePublicIpv4PoolResult)
      end)

      api.add_operation(:delete_queued_reserved_instances, Seahorse::Model::Operation.new.tap do |o|
        o.name = "DeleteQueuedReservedInstances"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: DeleteQueuedReservedInstancesRequest)
        o.output = Shapes::ShapeRef.new(shape: DeleteQueuedReservedInstancesResult)
      end)

      api.add_operation(:delete_route, Seahorse::Model::Operation.new.tap do |o|
        o.name = "DeleteRoute"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: DeleteRouteRequest)
        o.output = Shapes::ShapeRef.new(shape: Shapes::StructureShape.new(struct_class: Aws::EmptyStructure))
      end)

      api.add_operation(:delete_route_table, Seahorse::Model::Operation.new.tap do |o|
        o.name = "DeleteRouteTable"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: DeleteRouteTableRequest)
        o.output = Shapes::ShapeRef.new(shape: Shapes::StructureShape.new(struct_class: Aws::EmptyStructure))
      end)

      api.add_operation(:delete_security_group, Seahorse::Model::Operation.new.tap do |o|
        o.name = "DeleteSecurityGroup"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: DeleteSecurityGroupRequest)
        o.output = Shapes::ShapeRef.new(shape: DeleteSecurityGroupResult)
      end)

      api.add_operation(:delete_snapshot, Seahorse::Model::Operation.new.tap do |o|
        o.name = "DeleteSnapshot"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: DeleteSnapshotRequest)
        o.output = Shapes::ShapeRef.new(shape: Shapes::StructureShape.new(struct_class: Aws::EmptyStructure))
      end)

      api.add_operation(:delete_spot_datafeed_subscription, Seahorse::Model::Operation.new.tap do |o|
        o.name = "DeleteSpotDatafeedSubscription"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: DeleteSpotDatafeedSubscriptionRequest)
        o.output = Shapes::ShapeRef.new(shape: Shapes::StructureShape.new(struct_class: Aws::EmptyStructure))
      end)

      api.add_operation(:delete_subnet, Seahorse::Model::Operation.new.tap do |o|
        o.name = "DeleteSubnet"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: DeleteSubnetRequest)
        o.output = Shapes::ShapeRef.new(shape: Shapes::StructureShape.new(struct_class: Aws::EmptyStructure))
      end)

      api.add_operation(:delete_subnet_cidr_reservation, Seahorse::Model::Operation.new.tap do |o|
        o.name = "DeleteSubnetCidrReservation"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: DeleteSubnetCidrReservationRequest)
        o.output = Shapes::ShapeRef.new(shape: DeleteSubnetCidrReservationResult)
      end)

      api.add_operation(:delete_tags, Seahorse::Model::Operation.new.tap do |o|
        o.name = "DeleteTags"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: DeleteTagsRequest)
        o.output = Shapes::ShapeRef.new(shape: Shapes::StructureShape.new(struct_class: Aws::EmptyStructure))
      end)

      api.add_operation(:delete_traffic_mirror_filter, Seahorse::Model::Operation.new.tap do |o|
        o.name = "DeleteTrafficMirrorFilter"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: DeleteTrafficMirrorFilterRequest)
        o.output = Shapes::ShapeRef.new(shape: DeleteTrafficMirrorFilterResult)
      end)

      api.add_operation(:delete_traffic_mirror_filter_rule, Seahorse::Model::Operation.new.tap do |o|
        o.name = "DeleteTrafficMirrorFilterRule"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: DeleteTrafficMirrorFilterRuleRequest)
        o.output = Shapes::ShapeRef.new(shape: DeleteTrafficMirrorFilterRuleResult)
      end)

      api.add_operation(:delete_traffic_mirror_session, Seahorse::Model::Operation.new.tap do |o|
        o.name = "DeleteTrafficMirrorSession"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: DeleteTrafficMirrorSessionRequest)
        o.output = Shapes::ShapeRef.new(shape: DeleteTrafficMirrorSessionResult)
      end)

      api.add_operation(:delete_traffic_mirror_target, Seahorse::Model::Operation.new.tap do |o|
        o.name = "DeleteTrafficMirrorTarget"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: DeleteTrafficMirrorTargetRequest)
        o.output = Shapes::ShapeRef.new(shape: DeleteTrafficMirrorTargetResult)
      end)

      api.add_operation(:delete_transit_gateway, Seahorse::Model::Operation.new.tap do |o|
        o.name = "DeleteTransitGateway"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: DeleteTransitGatewayRequest)
        o.output = Shapes::ShapeRef.new(shape: DeleteTransitGatewayResult)
      end)

      api.add_operation(:delete_transit_gateway_connect, Seahorse::Model::Operation.new.tap do |o|
        o.name = "DeleteTransitGatewayConnect"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: DeleteTransitGatewayConnectRequest)
        o.output = Shapes::ShapeRef.new(shape: DeleteTransitGatewayConnectResult)
      end)

      api.add_operation(:delete_transit_gateway_connect_peer, Seahorse::Model::Operation.new.tap do |o|
        o.name = "DeleteTransitGatewayConnectPeer"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: DeleteTransitGatewayConnectPeerRequest)
        o.output = Shapes::ShapeRef.new(shape: DeleteTransitGatewayConnectPeerResult)
      end)

      api.add_operation(:delete_transit_gateway_multicast_domain, Seahorse::Model::Operation.new.tap do |o|
        o.name = "DeleteTransitGatewayMulticastDomain"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: DeleteTransitGatewayMulticastDomainRequest)
        o.output = Shapes::ShapeRef.new(shape: DeleteTransitGatewayMulticastDomainResult)
      end)

      api.add_operation(:delete_transit_gateway_peering_attachment, Seahorse::Model::Operation.new.tap do |o|
        o.name = "DeleteTransitGatewayPeeringAttachment"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: DeleteTransitGatewayPeeringAttachmentRequest)
        o.output = Shapes::ShapeRef.new(shape: DeleteTransitGatewayPeeringAttachmentResult)
      end)

      api.add_operation(:delete_transit_gateway_policy_table, Seahorse::Model::Operation.new.tap do |o|
        o.name = "DeleteTransitGatewayPolicyTable"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: DeleteTransitGatewayPolicyTableRequest)
        o.output = Shapes::ShapeRef.new(shape: DeleteTransitGatewayPolicyTableResult)
      end)

      api.add_operation(:delete_transit_gateway_prefix_list_reference, Seahorse::Model::Operation.new.tap do |o|
        o.name = "DeleteTransitGatewayPrefixListReference"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: DeleteTransitGatewayPrefixListReferenceRequest)
        o.output = Shapes::ShapeRef.new(shape: DeleteTransitGatewayPrefixListReferenceResult)
      end)

      api.add_operation(:delete_transit_gateway_route, Seahorse::Model::Operation.new.tap do |o|
        o.name = "DeleteTransitGatewayRoute"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: DeleteTransitGatewayRouteRequest)
        o.output = Shapes::ShapeRef.new(shape: DeleteTransitGatewayRouteResult)
      end)

      api.add_operation(:delete_transit_gateway_route_table, Seahorse::Model::Operation.new.tap do |o|
        o.name = "DeleteTransitGatewayRouteTable"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: DeleteTransitGatewayRouteTableRequest)
        o.output = Shapes::ShapeRef.new(shape: DeleteTransitGatewayRouteTableResult)
      end)

      api.add_operation(:delete_transit_gateway_route_table_announcement, Seahorse::Model::Operation.new.tap do |o|
        o.name = "DeleteTransitGatewayRouteTableAnnouncement"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: DeleteTransitGatewayRouteTableAnnouncementRequest)
        o.output = Shapes::ShapeRef.new(shape: DeleteTransitGatewayRouteTableAnnouncementResult)
      end)

      api.add_operation(:delete_transit_gateway_vpc_attachment, Seahorse::Model::Operation.new.tap do |o|
        o.name = "DeleteTransitGatewayVpcAttachment"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: DeleteTransitGatewayVpcAttachmentRequest)
        o.output = Shapes::ShapeRef.new(shape: DeleteTransitGatewayVpcAttachmentResult)
      end)

      api.add_operation(:delete_verified_access_endpoint, Seahorse::Model::Operation.new.tap do |o|
        o.name = "DeleteVerifiedAccessEndpoint"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: DeleteVerifiedAccessEndpointRequest)
        o.output = Shapes::ShapeRef.new(shape: DeleteVerifiedAccessEndpointResult)
      end)

      api.add_operation(:delete_verified_access_group, Seahorse::Model::Operation.new.tap do |o|
        o.name = "DeleteVerifiedAccessGroup"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: DeleteVerifiedAccessGroupRequest)
        o.output = Shapes::ShapeRef.new(shape: DeleteVerifiedAccessGroupResult)
      end)

      api.add_operation(:delete_verified_access_instance, Seahorse::Model::Operation.new.tap do |o|
        o.name = "DeleteVerifiedAccessInstance"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: DeleteVerifiedAccessInstanceRequest)
        o.output = Shapes::ShapeRef.new(shape: DeleteVerifiedAccessInstanceResult)
      end)

      api.add_operation(:delete_verified_access_trust_provider, Seahorse::Model::Operation.new.tap do |o|
        o.name = "DeleteVerifiedAccessTrustProvider"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: DeleteVerifiedAccessTrustProviderRequest)
        o.output = Shapes::ShapeRef.new(shape: DeleteVerifiedAccessTrustProviderResult)
      end)

      api.add_operation(:delete_volume, Seahorse::Model::Operation.new.tap do |o|
        o.name = "DeleteVolume"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: DeleteVolumeRequest)
        o.output = Shapes::ShapeRef.new(shape: Shapes::StructureShape.new(struct_class: Aws::EmptyStructure))
      end)

      api.add_operation(:delete_vpc, Seahorse::Model::Operation.new.tap do |o|
        o.name = "DeleteVpc"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: DeleteVpcRequest)
        o.output = Shapes::ShapeRef.new(shape: Shapes::StructureShape.new(struct_class: Aws::EmptyStructure))
      end)

      api.add_operation(:delete_vpc_block_public_access_exclusion, Seahorse::Model::Operation.new.tap do |o|
        o.name = "DeleteVpcBlockPublicAccessExclusion"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: DeleteVpcBlockPublicAccessExclusionRequest)
        o.output = Shapes::ShapeRef.new(shape: DeleteVpcBlockPublicAccessExclusionResult)
      end)

      api.add_operation(:delete_vpc_endpoint_connection_notifications, Seahorse::Model::Operation.new.tap do |o|
        o.name = "DeleteVpcEndpointConnectionNotifications"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: DeleteVpcEndpointConnectionNotificationsRequest)
        o.output = Shapes::ShapeRef.new(shape: DeleteVpcEndpointConnectionNotificationsResult)
      end)

      api.add_operation(:delete_vpc_endpoint_service_configurations, Seahorse::Model::Operation.new.tap do |o|
        o.name = "DeleteVpcEndpointServiceConfigurations"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: DeleteVpcEndpointServiceConfigurationsRequest)
        o.output = Shapes::ShapeRef.new(shape: DeleteVpcEndpointServiceConfigurationsResult)
      end)

      api.add_operation(:delete_vpc_endpoints, Seahorse::Model::Operation.new.tap do |o|
        o.name = "DeleteVpcEndpoints"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: DeleteVpcEndpointsRequest)
        o.output = Shapes::ShapeRef.new(shape: DeleteVpcEndpointsResult)
      end)

      api.add_operation(:delete_vpc_peering_connection, Seahorse::Model::Operation.new.tap do |o|
        o.name = "DeleteVpcPeeringConnection"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: DeleteVpcPeeringConnectionRequest)
        o.output = Shapes::ShapeRef.new(shape: DeleteVpcPeeringConnectionResult)
      end)

      api.add_operation(:delete_vpn_connection, Seahorse::Model::Operation.new.tap do |o|
        o.name = "DeleteVpnConnection"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: DeleteVpnConnectionRequest)
        o.output = Shapes::ShapeRef.new(shape: Shapes::StructureShape.new(struct_class: Aws::EmptyStructure))
      end)

      api.add_operation(:delete_vpn_connection_route, Seahorse::Model::Operation.new.tap do |o|
        o.name = "DeleteVpnConnectionRoute"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: DeleteVpnConnectionRouteRequest)
        o.output = Shapes::ShapeRef.new(shape: Shapes::StructureShape.new(struct_class: Aws::EmptyStructure))
      end)

      api.add_operation(:delete_vpn_gateway, Seahorse::Model::Operation.new.tap do |o|
        o.name = "DeleteVpnGateway"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: DeleteVpnGatewayRequest)
        o.output = Shapes::ShapeRef.new(shape: Shapes::StructureShape.new(struct_class: Aws::EmptyStructure))
      end)

      api.add_operation(:deprovision_byoip_cidr, Seahorse::Model::Operation.new.tap do |o|
        o.name = "DeprovisionByoipCidr"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: DeprovisionByoipCidrRequest)
        o.output = Shapes::ShapeRef.new(shape: DeprovisionByoipCidrResult)
      end)

      api.add_operation(:deprovision_ipam_byoasn, Seahorse::Model::Operation.new.tap do |o|
        o.name = "DeprovisionIpamByoasn"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: DeprovisionIpamByoasnRequest)
        o.output = Shapes::ShapeRef.new(shape: DeprovisionIpamByoasnResult)
      end)

      api.add_operation(:deprovision_ipam_pool_cidr, Seahorse::Model::Operation.new.tap do |o|
        o.name = "DeprovisionIpamPoolCidr"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: DeprovisionIpamPoolCidrRequest)
        o.output = Shapes::ShapeRef.new(shape: DeprovisionIpamPoolCidrResult)
      end)

      api.add_operation(:deprovision_public_ipv_4_pool_cidr, Seahorse::Model::Operation.new.tap do |o|
        o.name = "DeprovisionPublicIpv4PoolCidr"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: DeprovisionPublicIpv4PoolCidrRequest)
        o.output = Shapes::ShapeRef.new(shape: DeprovisionPublicIpv4PoolCidrResult)
      end)

      api.add_operation(:deregister_image, Seahorse::Model::Operation.new.tap do |o|
        o.name = "DeregisterImage"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: DeregisterImageRequest)
        o.output = Shapes::ShapeRef.new(shape: DeregisterImageResult)
      end)

      api.add_operation(:deregister_instance_event_notification_attributes, Seahorse::Model::Operation.new.tap do |o|
        o.name = "DeregisterInstanceEventNotificationAttributes"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: DeregisterInstanceEventNotificationAttributesRequest)
        o.output = Shapes::ShapeRef.new(shape: DeregisterInstanceEventNotificationAttributesResult)
      end)

      api.add_operation(:deregister_transit_gateway_multicast_group_members, Seahorse::Model::Operation.new.tap do |o|
        o.name = "DeregisterTransitGatewayMulticastGroupMembers"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: DeregisterTransitGatewayMulticastGroupMembersRequest)
        o.output = Shapes::ShapeRef.new(shape: DeregisterTransitGatewayMulticastGroupMembersResult)
      end)

      api.add_operation(:deregister_transit_gateway_multicast_group_sources, Seahorse::Model::Operation.new.tap do |o|
        o.name = "DeregisterTransitGatewayMulticastGroupSources"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: DeregisterTransitGatewayMulticastGroupSourcesRequest)
        o.output = Shapes::ShapeRef.new(shape: DeregisterTransitGatewayMulticastGroupSourcesResult)
      end)

      api.add_operation(:describe_account_attributes, Seahorse::Model::Operation.new.tap do |o|
        o.name = "DescribeAccountAttributes"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: DescribeAccountAttributesRequest)
        o.output = Shapes::ShapeRef.new(shape: DescribeAccountAttributesResult)
      end)

      api.add_operation(:describe_address_transfers, Seahorse::Model::Operation.new.tap do |o|
        o.name = "DescribeAddressTransfers"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: DescribeAddressTransfersRequest)
        o.output = Shapes::ShapeRef.new(shape: DescribeAddressTransfersResult)
        o[:pager] = Aws::Pager.new(
          limit_key: "max_results",
          tokens: {
            "next_token" => "next_token"
          }
        )
      end)

      api.add_operation(:describe_addresses, Seahorse::Model::Operation.new.tap do |o|
        o.name = "DescribeAddresses"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: DescribeAddressesRequest)
        o.output = Shapes::ShapeRef.new(shape: DescribeAddressesResult)
      end)

      api.add_operation(:describe_addresses_attribute, Seahorse::Model::Operation.new.tap do |o|
        o.name = "DescribeAddressesAttribute"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: DescribeAddressesAttributeRequest)
        o.output = Shapes::ShapeRef.new(shape: DescribeAddressesAttributeResult)
        o[:pager] = Aws::Pager.new(
          limit_key: "max_results",
          tokens: {
            "next_token" => "next_token"
          }
        )
      end)

      api.add_operation(:describe_aggregate_id_format, Seahorse::Model::Operation.new.tap do |o|
        o.name = "DescribeAggregateIdFormat"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: DescribeAggregateIdFormatRequest)
        o.output = Shapes::ShapeRef.new(shape: DescribeAggregateIdFormatResult)
      end)

      api.add_operation(:describe_availability_zones, Seahorse::Model::Operation.new.tap do |o|
        o.name = "DescribeAvailabilityZones"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: DescribeAvailabilityZonesRequest)
        o.output = Shapes::ShapeRef.new(shape: DescribeAvailabilityZonesResult)
      end)

      api.add_operation(:describe_aws_network_performance_metric_subscriptions, Seahorse::Model::Operation.new.tap do |o|
        o.name = "DescribeAwsNetworkPerformanceMetricSubscriptions"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: DescribeAwsNetworkPerformanceMetricSubscriptionsRequest)
        o.output = Shapes::ShapeRef.new(shape: DescribeAwsNetworkPerformanceMetricSubscriptionsResult)
        o[:pager] = Aws::Pager.new(
          limit_key: "max_results",
          tokens: {
            "next_token" => "next_token"
          }
        )
      end)

      api.add_operation(:describe_bundle_tasks, Seahorse::Model::Operation.new.tap do |o|
        o.name = "DescribeBundleTasks"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: DescribeBundleTasksRequest)
        o.output = Shapes::ShapeRef.new(shape: DescribeBundleTasksResult)
      end)

      api.add_operation(:describe_byoip_cidrs, Seahorse::Model::Operation.new.tap do |o|
        o.name = "DescribeByoipCidrs"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: DescribeByoipCidrsRequest)
        o.output = Shapes::ShapeRef.new(shape: DescribeByoipCidrsResult)
        o[:pager] = Aws::Pager.new(
          limit_key: "max_results",
          tokens: {
            "next_token" => "next_token"
          }
        )
      end)

      api.add_operation(:describe_capacity_block_extension_history, Seahorse::Model::Operation.new.tap do |o|
        o.name = "DescribeCapacityBlockExtensionHistory"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: DescribeCapacityBlockExtensionHistoryRequest)
        o.output = Shapes::ShapeRef.new(shape: DescribeCapacityBlockExtensionHistoryResult)
        o[:pager] = Aws::Pager.new(
          limit_key: "max_results",
          tokens: {
            "next_token" => "next_token"
          }
        )
      end)

      api.add_operation(:describe_capacity_block_extension_offerings, Seahorse::Model::Operation.new.tap do |o|
        o.name = "DescribeCapacityBlockExtensionOfferings"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: DescribeCapacityBlockExtensionOfferingsRequest)
        o.output = Shapes::ShapeRef.new(shape: DescribeCapacityBlockExtensionOfferingsResult)
        o[:pager] = Aws::Pager.new(
          limit_key: "max_results",
          tokens: {
            "next_token" => "next_token"
          }
        )
      end)

      api.add_operation(:describe_capacity_block_offerings, Seahorse::Model::Operation.new.tap do |o|
        o.name = "DescribeCapacityBlockOfferings"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: DescribeCapacityBlockOfferingsRequest)
        o.output = Shapes::ShapeRef.new(shape: DescribeCapacityBlockOfferingsResult)
        o[:pager] = Aws::Pager.new(
          limit_key: "max_results",
          tokens: {
            "next_token" => "next_token"
          }
        )
      end)

      api.add_operation(:describe_capacity_reservation_billing_requests, Seahorse::Model::Operation.new.tap do |o|
        o.name = "DescribeCapacityReservationBillingRequests"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: DescribeCapacityReservationBillingRequestsRequest)
        o.output = Shapes::ShapeRef.new(shape: DescribeCapacityReservationBillingRequestsResult)
        o[:pager] = Aws::Pager.new(
          limit_key: "max_results",
          tokens: {
            "next_token" => "next_token"
          }
        )
      end)

      api.add_operation(:describe_capacity_reservation_fleets, Seahorse::Model::Operation.new.tap do |o|
        o.name = "DescribeCapacityReservationFleets"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: DescribeCapacityReservationFleetsRequest)
        o.output = Shapes::ShapeRef.new(shape: DescribeCapacityReservationFleetsResult)
        o[:pager] = Aws::Pager.new(
          limit_key: "max_results",
          tokens: {
            "next_token" => "next_token"
          }
        )
      end)

      api.add_operation(:describe_capacity_reservations, Seahorse::Model::Operation.new.tap do |o|
        o.name = "DescribeCapacityReservations"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: DescribeCapacityReservationsRequest)
        o.output = Shapes::ShapeRef.new(shape: DescribeCapacityReservationsResult)
        o[:pager] = Aws::Pager.new(
          limit_key: "max_results",
          tokens: {
            "next_token" => "next_token"
          }
        )
      end)

      api.add_operation(:describe_carrier_gateways, Seahorse::Model::Operation.new.tap do |o|
        o.name = "DescribeCarrierGateways"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: DescribeCarrierGatewaysRequest)
        o.output = Shapes::ShapeRef.new(shape: DescribeCarrierGatewaysResult)
        o[:pager] = Aws::Pager.new(
          limit_key: "max_results",
          tokens: {
            "next_token" => "next_token"
          }
        )
      end)

      api.add_operation(:describe_classic_link_instances, Seahorse::Model::Operation.new.tap do |o|
        o.name = "DescribeClassicLinkInstances"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: DescribeClassicLinkInstancesRequest)
        o.output = Shapes::ShapeRef.new(shape: DescribeClassicLinkInstancesResult)
        o[:pager] = Aws::Pager.new(
          limit_key: "max_results",
          tokens: {
            "next_token" => "next_token"
          }
        )
      end)

      api.add_operation(:describe_client_vpn_authorization_rules, Seahorse::Model::Operation.new.tap do |o|
        o.name = "DescribeClientVpnAuthorizationRules"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: DescribeClientVpnAuthorizationRulesRequest)
        o.output = Shapes::ShapeRef.new(shape: DescribeClientVpnAuthorizationRulesResult)
        o[:pager] = Aws::Pager.new(
          limit_key: "max_results",
          tokens: {
            "next_token" => "next_token"
          }
        )
      end)

      api.add_operation(:describe_client_vpn_connections, Seahorse::Model::Operation.new.tap do |o|
        o.name = "DescribeClientVpnConnections"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: DescribeClientVpnConnectionsRequest)
        o.output = Shapes::ShapeRef.new(shape: DescribeClientVpnConnectionsResult)
        o[:pager] = Aws::Pager.new(
          limit_key: "max_results",
          tokens: {
            "next_token" => "next_token"
          }
        )
      end)

      api.add_operation(:describe_client_vpn_endpoints, Seahorse::Model::Operation.new.tap do |o|
        o.name = "DescribeClientVpnEndpoints"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: DescribeClientVpnEndpointsRequest)
        o.output = Shapes::ShapeRef.new(shape: DescribeClientVpnEndpointsResult)
        o[:pager] = Aws::Pager.new(
          limit_key: "max_results",
          tokens: {
            "next_token" => "next_token"
          }
        )
      end)

      api.add_operation(:describe_client_vpn_routes, Seahorse::Model::Operation.new.tap do |o|
        o.name = "DescribeClientVpnRoutes"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: DescribeClientVpnRoutesRequest)
        o.output = Shapes::ShapeRef.new(shape: DescribeClientVpnRoutesResult)
        o[:pager] = Aws::Pager.new(
          limit_key: "max_results",
          tokens: {
            "next_token" => "next_token"
          }
        )
      end)

      api.add_operation(:describe_client_vpn_target_networks, Seahorse::Model::Operation.new.tap do |o|
        o.name = "DescribeClientVpnTargetNetworks"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: DescribeClientVpnTargetNetworksRequest)
        o.output = Shapes::ShapeRef.new(shape: DescribeClientVpnTargetNetworksResult)
        o[:pager] = Aws::Pager.new(
          limit_key: "max_results",
          tokens: {
            "next_token" => "next_token"
          }
        )
      end)

      api.add_operation(:describe_coip_pools, Seahorse::Model::Operation.new.tap do |o|
        o.name = "DescribeCoipPools"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: DescribeCoipPoolsRequest)
        o.output = Shapes::ShapeRef.new(shape: DescribeCoipPoolsResult)
        o[:pager] = Aws::Pager.new(
          limit_key: "max_results",
          tokens: {
            "next_token" => "next_token"
          }
        )
      end)

      api.add_operation(:describe_conversion_tasks, Seahorse::Model::Operation.new.tap do |o|
        o.name = "DescribeConversionTasks"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: DescribeConversionTasksRequest)
        o.output = Shapes::ShapeRef.new(shape: DescribeConversionTasksResult)
      end)

      api.add_operation(:describe_customer_gateways, Seahorse::Model::Operation.new.tap do |o|
        o.name = "DescribeCustomerGateways"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: DescribeCustomerGatewaysRequest)
        o.output = Shapes::ShapeRef.new(shape: DescribeCustomerGatewaysResult)
      end)

      api.add_operation(:describe_declarative_policies_reports, Seahorse::Model::Operation.new.tap do |o|
        o.name = "DescribeDeclarativePoliciesReports"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: DescribeDeclarativePoliciesReportsRequest)
        o.output = Shapes::ShapeRef.new(shape: DescribeDeclarativePoliciesReportsResult)
      end)

      api.add_operation(:describe_dhcp_options, Seahorse::Model::Operation.new.tap do |o|
        o.name = "DescribeDhcpOptions"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: DescribeDhcpOptionsRequest)
        o.output = Shapes::ShapeRef.new(shape: DescribeDhcpOptionsResult)
        o[:pager] = Aws::Pager.new(
          limit_key: "max_results",
          tokens: {
            "next_token" => "next_token"
          }
        )
      end)

      api.add_operation(:describe_egress_only_internet_gateways, Seahorse::Model::Operation.new.tap do |o|
        o.name = "DescribeEgressOnlyInternetGateways"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: DescribeEgressOnlyInternetGatewaysRequest)
        o.output = Shapes::ShapeRef.new(shape: DescribeEgressOnlyInternetGatewaysResult)
        o[:pager] = Aws::Pager.new(
          limit_key: "max_results",
          tokens: {
            "next_token" => "next_token"
          }
        )
      end)

      api.add_operation(:describe_elastic_gpus, Seahorse::Model::Operation.new.tap do |o|
        o.name = "DescribeElasticGpus"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: DescribeElasticGpusRequest)
        o.output = Shapes::ShapeRef.new(shape: DescribeElasticGpusResult)
      end)

      api.add_operation(:describe_export_image_tasks, Seahorse::Model::Operation.new.tap do |o|
        o.name = "DescribeExportImageTasks"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: DescribeExportImageTasksRequest)
        o.output = Shapes::ShapeRef.new(shape: DescribeExportImageTasksResult)
        o[:pager] = Aws::Pager.new(
          limit_key: "max_results",
          tokens: {
            "next_token" => "next_token"
          }
        )
      end)

      api.add_operation(:describe_export_tasks, Seahorse::Model::Operation.new.tap do |o|
        o.name = "DescribeExportTasks"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: DescribeExportTasksRequest)
        o.output = Shapes::ShapeRef.new(shape: DescribeExportTasksResult)
      end)

      api.add_operation(:describe_fast_launch_images, Seahorse::Model::Operation.new.tap do |o|
        o.name = "DescribeFastLaunchImages"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: DescribeFastLaunchImagesRequest)
        o.output = Shapes::ShapeRef.new(shape: DescribeFastLaunchImagesResult)
        o[:pager] = Aws::Pager.new(
          limit_key: "max_results",
          tokens: {
            "next_token" => "next_token"
          }
        )
      end)

      api.add_operation(:describe_fast_snapshot_restores, Seahorse::Model::Operation.new.tap do |o|
        o.name = "DescribeFastSnapshotRestores"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: DescribeFastSnapshotRestoresRequest)
        o.output = Shapes::ShapeRef.new(shape: DescribeFastSnapshotRestoresResult)
        o[:pager] = Aws::Pager.new(
          limit_key: "max_results",
          tokens: {
            "next_token" => "next_token"
          }
        )
      end)

      api.add_operation(:describe_fleet_history, Seahorse::Model::Operation.new.tap do |o|
        o.name = "DescribeFleetHistory"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: DescribeFleetHistoryRequest)
        o.output = Shapes::ShapeRef.new(shape: DescribeFleetHistoryResult)
      end)

      api.add_operation(:describe_fleet_instances, Seahorse::Model::Operation.new.tap do |o|
        o.name = "DescribeFleetInstances"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: DescribeFleetInstancesRequest)
        o.output = Shapes::ShapeRef.new(shape: DescribeFleetInstancesResult)
      end)

      api.add_operation(:describe_fleets, Seahorse::Model::Operation.new.tap do |o|
        o.name = "DescribeFleets"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: DescribeFleetsRequest)
        o.output = Shapes::ShapeRef.new(shape: DescribeFleetsResult)
        o[:pager] = Aws::Pager.new(
          limit_key: "max_results",
          tokens: {
            "next_token" => "next_token"
          }
        )
      end)

      api.add_operation(:describe_flow_logs, Seahorse::Model::Operation.new.tap do |o|
        o.name = "DescribeFlowLogs"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: DescribeFlowLogsRequest)
        o.output = Shapes::ShapeRef.new(shape: DescribeFlowLogsResult)
        o[:pager] = Aws::Pager.new(
          limit_key: "max_results",
          tokens: {
            "next_token" => "next_token"
          }
        )
      end)

      api.add_operation(:describe_fpga_image_attribute, Seahorse::Model::Operation.new.tap do |o|
        o.name = "DescribeFpgaImageAttribute"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: DescribeFpgaImageAttributeRequest)
        o.output = Shapes::ShapeRef.new(shape: DescribeFpgaImageAttributeResult)
      end)

      api.add_operation(:describe_fpga_images, Seahorse::Model::Operation.new.tap do |o|
        o.name = "DescribeFpgaImages"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: DescribeFpgaImagesRequest)
        o.output = Shapes::ShapeRef.new(shape: DescribeFpgaImagesResult)
        o[:pager] = Aws::Pager.new(
          limit_key: "max_results",
          tokens: {
            "next_token" => "next_token"
          }
        )
      end)

      api.add_operation(:describe_host_reservation_offerings, Seahorse::Model::Operation.new.tap do |o|
        o.name = "DescribeHostReservationOfferings"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: DescribeHostReservationOfferingsRequest)
        o.output = Shapes::ShapeRef.new(shape: DescribeHostReservationOfferingsResult)
        o[:pager] = Aws::Pager.new(
          limit_key: "max_results",
          tokens: {
            "next_token" => "next_token"
          }
        )
      end)

      api.add_operation(:describe_host_reservations, Seahorse::Model::Operation.new.tap do |o|
        o.name = "DescribeHostReservations"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: DescribeHostReservationsRequest)
        o.output = Shapes::ShapeRef.new(shape: DescribeHostReservationsResult)
        o[:pager] = Aws::Pager.new(
          limit_key: "max_results",
          tokens: {
            "next_token" => "next_token"
          }
        )
      end)

      api.add_operation(:describe_hosts, Seahorse::Model::Operation.new.tap do |o|
        o.name = "DescribeHosts"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: DescribeHostsRequest)
        o.output = Shapes::ShapeRef.new(shape: DescribeHostsResult)
        o[:pager] = Aws::Pager.new(
          limit_key: "max_results",
          tokens: {
            "next_token" => "next_token"
          }
        )
      end)

      api.add_operation(:describe_iam_instance_profile_associations, Seahorse::Model::Operation.new.tap do |o|
        o.name = "DescribeIamInstanceProfileAssociations"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: DescribeIamInstanceProfileAssociationsRequest)
        o.output = Shapes::ShapeRef.new(shape: DescribeIamInstanceProfileAssociationsResult)
        o[:pager] = Aws::Pager.new(
          limit_key: "max_results",
          tokens: {
            "next_token" => "next_token"
          }
        )
      end)

      api.add_operation(:describe_id_format, Seahorse::Model::Operation.new.tap do |o|
        o.name = "DescribeIdFormat"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: DescribeIdFormatRequest)
        o.output = Shapes::ShapeRef.new(shape: DescribeIdFormatResult)
      end)

      api.add_operation(:describe_identity_id_format, Seahorse::Model::Operation.new.tap do |o|
        o.name = "DescribeIdentityIdFormat"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: DescribeIdentityIdFormatRequest)
        o.output = Shapes::ShapeRef.new(shape: DescribeIdentityIdFormatResult)
      end)

      api.add_operation(:describe_image_attribute, Seahorse::Model::Operation.new.tap do |o|
        o.name = "DescribeImageAttribute"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: DescribeImageAttributeRequest)
        o.output = Shapes::ShapeRef.new(shape: ImageAttribute)
      end)

      api.add_operation(:describe_images, Seahorse::Model::Operation.new.tap do |o|
        o.name = "DescribeImages"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: DescribeImagesRequest)
        o.output = Shapes::ShapeRef.new(shape: DescribeImagesResult)
        o[:pager] = Aws::Pager.new(
          limit_key: "max_results",
          tokens: {
            "next_token" => "next_token"
          }
        )
      end)

      api.add_operation(:describe_import_image_tasks, Seahorse::Model::Operation.new.tap do |o|
        o.name = "DescribeImportImageTasks"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: DescribeImportImageTasksRequest)
        o.output = Shapes::ShapeRef.new(shape: DescribeImportImageTasksResult)
        o[:pager] = Aws::Pager.new(
          limit_key: "max_results",
          tokens: {
            "next_token" => "next_token"
          }
        )
      end)

      api.add_operation(:describe_import_snapshot_tasks, Seahorse::Model::Operation.new.tap do |o|
        o.name = "DescribeImportSnapshotTasks"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: DescribeImportSnapshotTasksRequest)
        o.output = Shapes::ShapeRef.new(shape: DescribeImportSnapshotTasksResult)
        o[:pager] = Aws::Pager.new(
          limit_key: "max_results",
          tokens: {
            "next_token" => "next_token"
          }
        )
      end)

      api.add_operation(:describe_instance_attribute, Seahorse::Model::Operation.new.tap do |o|
        o.name = "DescribeInstanceAttribute"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: DescribeInstanceAttributeRequest)
        o.output = Shapes::ShapeRef.new(shape: InstanceAttribute)
      end)

      api.add_operation(:describe_instance_connect_endpoints, Seahorse::Model::Operation.new.tap do |o|
        o.name = "DescribeInstanceConnectEndpoints"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: DescribeInstanceConnectEndpointsRequest)
        o.output = Shapes::ShapeRef.new(shape: DescribeInstanceConnectEndpointsResult)
        o[:pager] = Aws::Pager.new(
          limit_key: "max_results",
          tokens: {
            "next_token" => "next_token"
          }
        )
      end)

      api.add_operation(:describe_instance_credit_specifications, Seahorse::Model::Operation.new.tap do |o|
        o.name = "DescribeInstanceCreditSpecifications"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: DescribeInstanceCreditSpecificationsRequest)
        o.output = Shapes::ShapeRef.new(shape: DescribeInstanceCreditSpecificationsResult)
        o[:pager] = Aws::Pager.new(
          limit_key: "max_results",
          tokens: {
            "next_token" => "next_token"
          }
        )
      end)

      api.add_operation(:describe_instance_event_notification_attributes, Seahorse::Model::Operation.new.tap do |o|
        o.name = "DescribeInstanceEventNotificationAttributes"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: DescribeInstanceEventNotificationAttributesRequest)
        o.output = Shapes::ShapeRef.new(shape: DescribeInstanceEventNotificationAttributesResult)
      end)

      api.add_operation(:describe_instance_event_windows, Seahorse::Model::Operation.new.tap do |o|
        o.name = "DescribeInstanceEventWindows"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: DescribeInstanceEventWindowsRequest)
        o.output = Shapes::ShapeRef.new(shape: DescribeInstanceEventWindowsResult)
        o[:pager] = Aws::Pager.new(
          limit_key: "max_results",
          tokens: {
            "next_token" => "next_token"
          }
        )
      end)

      api.add_operation(:describe_instance_image_metadata, Seahorse::Model::Operation.new.tap do |o|
        o.name = "DescribeInstanceImageMetadata"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: DescribeInstanceImageMetadataRequest)
        o.output = Shapes::ShapeRef.new(shape: DescribeInstanceImageMetadataResult)
        o[:pager] = Aws::Pager.new(
          limit_key: "max_results",
          tokens: {
            "next_token" => "next_token"
          }
        )
      end)

      api.add_operation(:describe_instance_status, Seahorse::Model::Operation.new.tap do |o|
        o.name = "DescribeInstanceStatus"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: DescribeInstanceStatusRequest)
        o.output = Shapes::ShapeRef.new(shape: DescribeInstanceStatusResult)
        o[:pager] = Aws::Pager.new(
          limit_key: "max_results",
          tokens: {
            "next_token" => "next_token"
          }
        )
      end)

      api.add_operation(:describe_instance_topology, Seahorse::Model::Operation.new.tap do |o|
        o.name = "DescribeInstanceTopology"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: DescribeInstanceTopologyRequest)
        o.output = Shapes::ShapeRef.new(shape: DescribeInstanceTopologyResult)
        o[:pager] = Aws::Pager.new(
          limit_key: "max_results",
          tokens: {
            "next_token" => "next_token"
          }
        )
      end)

      api.add_operation(:describe_instance_type_offerings, Seahorse::Model::Operation.new.tap do |o|
        o.name = "DescribeInstanceTypeOfferings"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: DescribeInstanceTypeOfferingsRequest)
        o.output = Shapes::ShapeRef.new(shape: DescribeInstanceTypeOfferingsResult)
        o[:pager] = Aws::Pager.new(
          limit_key: "max_results",
          tokens: {
            "next_token" => "next_token"
          }
        )
      end)

      api.add_operation(:describe_instance_types, Seahorse::Model::Operation.new.tap do |o|
        o.name = "DescribeInstanceTypes"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: DescribeInstanceTypesRequest)
        o.output = Shapes::ShapeRef.new(shape: DescribeInstanceTypesResult)
        o[:pager] = Aws::Pager.new(
          limit_key: "max_results",
          tokens: {
            "next_token" => "next_token"
          }
        )
      end)

      api.add_operation(:describe_instances, Seahorse::Model::Operation.new.tap do |o|
        o.name = "DescribeInstances"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: DescribeInstancesRequest)
        o.output = Shapes::ShapeRef.new(shape: DescribeInstancesResult)
        o[:pager] = Aws::Pager.new(
          limit_key: "max_results",
          tokens: {
            "next_token" => "next_token"
          }
        )
      end)

      api.add_operation(:describe_internet_gateways, Seahorse::Model::Operation.new.tap do |o|
        o.name = "DescribeInternetGateways"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: DescribeInternetGatewaysRequest)
        o.output = Shapes::ShapeRef.new(shape: DescribeInternetGatewaysResult)
        o[:pager] = Aws::Pager.new(
          limit_key: "max_results",
          tokens: {
            "next_token" => "next_token"
          }
        )
      end)

      api.add_operation(:describe_ipam_byoasn, Seahorse::Model::Operation.new.tap do |o|
        o.name = "DescribeIpamByoasn"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: DescribeIpamByoasnRequest)
        o.output = Shapes::ShapeRef.new(shape: DescribeIpamByoasnResult)
      end)

      api.add_operation(:describe_ipam_external_resource_verification_tokens, Seahorse::Model::Operation.new.tap do |o|
        o.name = "DescribeIpamExternalResourceVerificationTokens"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: DescribeIpamExternalResourceVerificationTokensRequest)
        o.output = Shapes::ShapeRef.new(shape: DescribeIpamExternalResourceVerificationTokensResult)
      end)

      api.add_operation(:describe_ipam_pools, Seahorse::Model::Operation.new.tap do |o|
        o.name = "DescribeIpamPools"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: DescribeIpamPoolsRequest)
        o.output = Shapes::ShapeRef.new(shape: DescribeIpamPoolsResult)
        o[:pager] = Aws::Pager.new(
          limit_key: "max_results",
          tokens: {
            "next_token" => "next_token"
          }
        )
      end)

      api.add_operation(:describe_ipam_resource_discoveries, Seahorse::Model::Operation.new.tap do |o|
        o.name = "DescribeIpamResourceDiscoveries"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: DescribeIpamResourceDiscoveriesRequest)
        o.output = Shapes::ShapeRef.new(shape: DescribeIpamResourceDiscoveriesResult)
        o[:pager] = Aws::Pager.new(
          limit_key: "max_results",
          tokens: {
            "next_token" => "next_token"
          }
        )
      end)

      api.add_operation(:describe_ipam_resource_discovery_associations, Seahorse::Model::Operation.new.tap do |o|
        o.name = "DescribeIpamResourceDiscoveryAssociations"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: DescribeIpamResourceDiscoveryAssociationsRequest)
        o.output = Shapes::ShapeRef.new(shape: DescribeIpamResourceDiscoveryAssociationsResult)
        o[:pager] = Aws::Pager.new(
          limit_key: "max_results",
          tokens: {
            "next_token" => "next_token"
          }
        )
      end)

      api.add_operation(:describe_ipam_scopes, Seahorse::Model::Operation.new.tap do |o|
        o.name = "DescribeIpamScopes"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: DescribeIpamScopesRequest)
        o.output = Shapes::ShapeRef.new(shape: DescribeIpamScopesResult)
        o[:pager] = Aws::Pager.new(
          limit_key: "max_results",
          tokens: {
            "next_token" => "next_token"
          }
        )
      end)

      api.add_operation(:describe_ipams, Seahorse::Model::Operation.new.tap do |o|
        o.name = "DescribeIpams"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: DescribeIpamsRequest)
        o.output = Shapes::ShapeRef.new(shape: DescribeIpamsResult)
        o[:pager] = Aws::Pager.new(
          limit_key: "max_results",
          tokens: {
            "next_token" => "next_token"
          }
        )
      end)

      api.add_operation(:describe_ipv_6_pools, Seahorse::Model::Operation.new.tap do |o|
        o.name = "DescribeIpv6Pools"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: DescribeIpv6PoolsRequest)
        o.output = Shapes::ShapeRef.new(shape: DescribeIpv6PoolsResult)
        o[:pager] = Aws::Pager.new(
          limit_key: "max_results",
          tokens: {
            "next_token" => "next_token"
          }
        )
      end)

      api.add_operation(:describe_key_pairs, Seahorse::Model::Operation.new.tap do |o|
        o.name = "DescribeKeyPairs"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: DescribeKeyPairsRequest)
        o.output = Shapes::ShapeRef.new(shape: DescribeKeyPairsResult)
      end)

      api.add_operation(:describe_launch_template_versions, Seahorse::Model::Operation.new.tap do |o|
        o.name = "DescribeLaunchTemplateVersions"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: DescribeLaunchTemplateVersionsRequest)
        o.output = Shapes::ShapeRef.new(shape: DescribeLaunchTemplateVersionsResult)
        o[:pager] = Aws::Pager.new(
          limit_key: "max_results",
          tokens: {
            "next_token" => "next_token"
          }
        )
      end)

      api.add_operation(:describe_launch_templates, Seahorse::Model::Operation.new.tap do |o|
        o.name = "DescribeLaunchTemplates"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: DescribeLaunchTemplatesRequest)
        o.output = Shapes::ShapeRef.new(shape: DescribeLaunchTemplatesResult)
        o[:pager] = Aws::Pager.new(
          limit_key: "max_results",
          tokens: {
            "next_token" => "next_token"
          }
        )
      end)

      api.add_operation(:describe_local_gateway_route_table_virtual_interface_group_associations, Seahorse::Model::Operation.new.tap do |o|
        o.name = "DescribeLocalGatewayRouteTableVirtualInterfaceGroupAssociations"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: DescribeLocalGatewayRouteTableVirtualInterfaceGroupAssociationsRequest)
        o.output = Shapes::ShapeRef.new(shape: DescribeLocalGatewayRouteTableVirtualInterfaceGroupAssociationsResult)
        o[:pager] = Aws::Pager.new(
          limit_key: "max_results",
          tokens: {
            "next_token" => "next_token"
          }
        )
      end)

      api.add_operation(:describe_local_gateway_route_table_vpc_associations, Seahorse::Model::Operation.new.tap do |o|
        o.name = "DescribeLocalGatewayRouteTableVpcAssociations"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: DescribeLocalGatewayRouteTableVpcAssociationsRequest)
        o.output = Shapes::ShapeRef.new(shape: DescribeLocalGatewayRouteTableVpcAssociationsResult)
        o[:pager] = Aws::Pager.new(
          limit_key: "max_results",
          tokens: {
            "next_token" => "next_token"
          }
        )
      end)

      api.add_operation(:describe_local_gateway_route_tables, Seahorse::Model::Operation.new.tap do |o|
        o.name = "DescribeLocalGatewayRouteTables"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: DescribeLocalGatewayRouteTablesRequest)
        o.output = Shapes::ShapeRef.new(shape: DescribeLocalGatewayRouteTablesResult)
        o[:pager] = Aws::Pager.new(
          limit_key: "max_results",
          tokens: {
            "next_token" => "next_token"
          }
        )
      end)

      api.add_operation(:describe_local_gateway_virtual_interface_groups, Seahorse::Model::Operation.new.tap do |o|
        o.name = "DescribeLocalGatewayVirtualInterfaceGroups"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: DescribeLocalGatewayVirtualInterfaceGroupsRequest)
        o.output = Shapes::ShapeRef.new(shape: DescribeLocalGatewayVirtualInterfaceGroupsResult)
        o[:pager] = Aws::Pager.new(
          limit_key: "max_results",
          tokens: {
            "next_token" => "next_token"
          }
        )
      end)

      api.add_operation(:describe_local_gateway_virtual_interfaces, Seahorse::Model::Operation.new.tap do |o|
        o.name = "DescribeLocalGatewayVirtualInterfaces"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: DescribeLocalGatewayVirtualInterfacesRequest)
        o.output = Shapes::ShapeRef.new(shape: DescribeLocalGatewayVirtualInterfacesResult)
        o[:pager] = Aws::Pager.new(
          limit_key: "max_results",
          tokens: {
            "next_token" => "next_token"
          }
        )
      end)

      api.add_operation(:describe_local_gateways, Seahorse::Model::Operation.new.tap do |o|
        o.name = "DescribeLocalGateways"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: DescribeLocalGatewaysRequest)
        o.output = Shapes::ShapeRef.new(shape: DescribeLocalGatewaysResult)
        o[:pager] = Aws::Pager.new(
          limit_key: "max_results",
          tokens: {
            "next_token" => "next_token"
          }
        )
      end)

      api.add_operation(:describe_locked_snapshots, Seahorse::Model::Operation.new.tap do |o|
        o.name = "DescribeLockedSnapshots"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: DescribeLockedSnapshotsRequest)
        o.output = Shapes::ShapeRef.new(shape: DescribeLockedSnapshotsResult)
      end)

      api.add_operation(:describe_mac_hosts, Seahorse::Model::Operation.new.tap do |o|
        o.name = "DescribeMacHosts"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: DescribeMacHostsRequest)
        o.output = Shapes::ShapeRef.new(shape: DescribeMacHostsResult)
        o[:pager] = Aws::Pager.new(
          limit_key: "max_results",
          tokens: {
            "next_token" => "next_token"
          }
        )
      end)

      api.add_operation(:describe_managed_prefix_lists, Seahorse::Model::Operation.new.tap do |o|
        o.name = "DescribeManagedPrefixLists"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: DescribeManagedPrefixListsRequest)
        o.output = Shapes::ShapeRef.new(shape: DescribeManagedPrefixListsResult)
        o[:pager] = Aws::Pager.new(
          limit_key: "max_results",
          tokens: {
            "next_token" => "next_token"
          }
        )
      end)

      api.add_operation(:describe_moving_addresses, Seahorse::Model::Operation.new.tap do |o|
        o.name = "DescribeMovingAddresses"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: DescribeMovingAddressesRequest)
        o.output = Shapes::ShapeRef.new(shape: DescribeMovingAddressesResult)
        o[:pager] = Aws::Pager.new(
          limit_key: "max_results",
          tokens: {
            "next_token" => "next_token"
          }
        )
      end)

      api.add_operation(:describe_nat_gateways, Seahorse::Model::Operation.new.tap do |o|
        o.name = "DescribeNatGateways"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: DescribeNatGatewaysRequest)
        o.output = Shapes::ShapeRef.new(shape: DescribeNatGatewaysResult)
        o[:pager] = Aws::Pager.new(
          limit_key: "max_results",
          tokens: {
            "next_token" => "next_token"
          }
        )
      end)

      api.add_operation(:describe_network_acls, Seahorse::Model::Operation.new.tap do |o|
        o.name = "DescribeNetworkAcls"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: DescribeNetworkAclsRequest)
        o.output = Shapes::ShapeRef.new(shape: DescribeNetworkAclsResult)
        o[:pager] = Aws::Pager.new(
          limit_key: "max_results",
          tokens: {
            "next_token" => "next_token"
          }
        )
      end)

      api.add_operation(:describe_network_insights_access_scope_analyses, Seahorse::Model::Operation.new.tap do |o|
        o.name = "DescribeNetworkInsightsAccessScopeAnalyses"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: DescribeNetworkInsightsAccessScopeAnalysesRequest)
        o.output = Shapes::ShapeRef.new(shape: DescribeNetworkInsightsAccessScopeAnalysesResult)
        o[:pager] = Aws::Pager.new(
          limit_key: "max_results",
          tokens: {
            "next_token" => "next_token"
          }
        )
      end)

      api.add_operation(:describe_network_insights_access_scopes, Seahorse::Model::Operation.new.tap do |o|
        o.name = "DescribeNetworkInsightsAccessScopes"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: DescribeNetworkInsightsAccessScopesRequest)
        o.output = Shapes::ShapeRef.new(shape: DescribeNetworkInsightsAccessScopesResult)
        o[:pager] = Aws::Pager.new(
          limit_key: "max_results",
          tokens: {
            "next_token" => "next_token"
          }
        )
      end)

      api.add_operation(:describe_network_insights_analyses, Seahorse::Model::Operation.new.tap do |o|
        o.name = "DescribeNetworkInsightsAnalyses"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: DescribeNetworkInsightsAnalysesRequest)
        o.output = Shapes::ShapeRef.new(shape: DescribeNetworkInsightsAnalysesResult)
        o[:pager] = Aws::Pager.new(
          limit_key: "max_results",
          tokens: {
            "next_token" => "next_token"
          }
        )
      end)

      api.add_operation(:describe_network_insights_paths, Seahorse::Model::Operation.new.tap do |o|
        o.name = "DescribeNetworkInsightsPaths"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: DescribeNetworkInsightsPathsRequest)
        o.output = Shapes::ShapeRef.new(shape: DescribeNetworkInsightsPathsResult)
        o[:pager] = Aws::Pager.new(
          limit_key: "max_results",
          tokens: {
            "next_token" => "next_token"
          }
        )
      end)

      api.add_operation(:describe_network_interface_attribute, Seahorse::Model::Operation.new.tap do |o|
        o.name = "DescribeNetworkInterfaceAttribute"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: DescribeNetworkInterfaceAttributeRequest)
        o.output = Shapes::ShapeRef.new(shape: DescribeNetworkInterfaceAttributeResult)
      end)

      api.add_operation(:describe_network_interface_permissions, Seahorse::Model::Operation.new.tap do |o|
        o.name = "DescribeNetworkInterfacePermissions"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: DescribeNetworkInterfacePermissionsRequest)
        o.output = Shapes::ShapeRef.new(shape: DescribeNetworkInterfacePermissionsResult)
        o[:pager] = Aws::Pager.new(
          limit_key: "max_results",
          tokens: {
            "next_token" => "next_token"
          }
        )
      end)

      api.add_operation(:describe_network_interfaces, Seahorse::Model::Operation.new.tap do |o|
        o.name = "DescribeNetworkInterfaces"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: DescribeNetworkInterfacesRequest)
        o.output = Shapes::ShapeRef.new(shape: DescribeNetworkInterfacesResult)
        o[:pager] = Aws::Pager.new(
          limit_key: "max_results",
          tokens: {
            "next_token" => "next_token"
          }
        )
      end)

      api.add_operation(:describe_placement_groups, Seahorse::Model::Operation.new.tap do |o|
        o.name = "DescribePlacementGroups"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: DescribePlacementGroupsRequest)
        o.output = Shapes::ShapeRef.new(shape: DescribePlacementGroupsResult)
      end)

      api.add_operation(:describe_prefix_lists, Seahorse::Model::Operation.new.tap do |o|
        o.name = "DescribePrefixLists"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: DescribePrefixListsRequest)
        o.output = Shapes::ShapeRef.new(shape: DescribePrefixListsResult)
        o[:pager] = Aws::Pager.new(
          limit_key: "max_results",
          tokens: {
            "next_token" => "next_token"
          }
        )
      end)

      api.add_operation(:describe_principal_id_format, Seahorse::Model::Operation.new.tap do |o|
        o.name = "DescribePrincipalIdFormat"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: DescribePrincipalIdFormatRequest)
        o.output = Shapes::ShapeRef.new(shape: DescribePrincipalIdFormatResult)
        o[:pager] = Aws::Pager.new(
          limit_key: "max_results",
          tokens: {
            "next_token" => "next_token"
          }
        )
      end)

      api.add_operation(:describe_public_ipv_4_pools, Seahorse::Model::Operation.new.tap do |o|
        o.name = "DescribePublicIpv4Pools"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: DescribePublicIpv4PoolsRequest)
        o.output = Shapes::ShapeRef.new(shape: DescribePublicIpv4PoolsResult)
        o[:pager] = Aws::Pager.new(
          limit_key: "max_results",
          tokens: {
            "next_token" => "next_token"
          }
        )
      end)

      api.add_operation(:describe_regions, Seahorse::Model::Operation.new.tap do |o|
        o.name = "DescribeRegions"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: DescribeRegionsRequest)
        o.output = Shapes::ShapeRef.new(shape: DescribeRegionsResult)
      end)

      api.add_operation(:describe_replace_root_volume_tasks, Seahorse::Model::Operation.new.tap do |o|
        o.name = "DescribeReplaceRootVolumeTasks"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: DescribeReplaceRootVolumeTasksRequest)
        o.output = Shapes::ShapeRef.new(shape: DescribeReplaceRootVolumeTasksResult)
        o[:pager] = Aws::Pager.new(
          limit_key: "max_results",
          tokens: {
            "next_token" => "next_token"
          }
        )
      end)

      api.add_operation(:describe_reserved_instances, Seahorse::Model::Operation.new.tap do |o|
        o.name = "DescribeReservedInstances"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: DescribeReservedInstancesRequest)
        o.output = Shapes::ShapeRef.new(shape: DescribeReservedInstancesResult)
      end)

      api.add_operation(:describe_reserved_instances_listings, Seahorse::Model::Operation.new.tap do |o|
        o.name = "DescribeReservedInstancesListings"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: DescribeReservedInstancesListingsRequest)
        o.output = Shapes::ShapeRef.new(shape: DescribeReservedInstancesListingsResult)
      end)

      api.add_operation(:describe_reserved_instances_modifications, Seahorse::Model::Operation.new.tap do |o|
        o.name = "DescribeReservedInstancesModifications"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: DescribeReservedInstancesModificationsRequest)
        o.output = Shapes::ShapeRef.new(shape: DescribeReservedInstancesModificationsResult)
        o[:pager] = Aws::Pager.new(
          tokens: {
            "next_token" => "next_token"
          }
        )
      end)

      api.add_operation(:describe_reserved_instances_offerings, Seahorse::Model::Operation.new.tap do |o|
        o.name = "DescribeReservedInstancesOfferings"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: DescribeReservedInstancesOfferingsRequest)
        o.output = Shapes::ShapeRef.new(shape: DescribeReservedInstancesOfferingsResult)
        o[:pager] = Aws::Pager.new(
          limit_key: "max_results",
          tokens: {
            "next_token" => "next_token"
          }
        )
      end)

      api.add_operation(:describe_route_tables, Seahorse::Model::Operation.new.tap do |o|
        o.name = "DescribeRouteTables"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: DescribeRouteTablesRequest)
        o.output = Shapes::ShapeRef.new(shape: DescribeRouteTablesResult)
        o[:pager] = Aws::Pager.new(
          limit_key: "max_results",
          tokens: {
            "next_token" => "next_token"
          }
        )
      end)

      api.add_operation(:describe_scheduled_instance_availability, Seahorse::Model::Operation.new.tap do |o|
        o.name = "DescribeScheduledInstanceAvailability"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: DescribeScheduledInstanceAvailabilityRequest)
        o.output = Shapes::ShapeRef.new(shape: DescribeScheduledInstanceAvailabilityResult)
        o[:pager] = Aws::Pager.new(
          limit_key: "max_results",
          tokens: {
            "next_token" => "next_token"
          }
        )
      end)

      api.add_operation(:describe_scheduled_instances, Seahorse::Model::Operation.new.tap do |o|
        o.name = "DescribeScheduledInstances"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: DescribeScheduledInstancesRequest)
        o.output = Shapes::ShapeRef.new(shape: DescribeScheduledInstancesResult)
        o[:pager] = Aws::Pager.new(
          limit_key: "max_results",
          tokens: {
            "next_token" => "next_token"
          }
        )
      end)

      api.add_operation(:describe_security_group_references, Seahorse::Model::Operation.new.tap do |o|
        o.name = "DescribeSecurityGroupReferences"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: DescribeSecurityGroupReferencesRequest)
        o.output = Shapes::ShapeRef.new(shape: DescribeSecurityGroupReferencesResult)
      end)

      api.add_operation(:describe_security_group_rules, Seahorse::Model::Operation.new.tap do |o|
        o.name = "DescribeSecurityGroupRules"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: DescribeSecurityGroupRulesRequest)
        o.output = Shapes::ShapeRef.new(shape: DescribeSecurityGroupRulesResult)
        o[:pager] = Aws::Pager.new(
          limit_key: "max_results",
          tokens: {
            "next_token" => "next_token"
          }
        )
      end)

      api.add_operation(:describe_security_group_vpc_associations, Seahorse::Model::Operation.new.tap do |o|
        o.name = "DescribeSecurityGroupVpcAssociations"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: DescribeSecurityGroupVpcAssociationsRequest)
        o.output = Shapes::ShapeRef.new(shape: DescribeSecurityGroupVpcAssociationsResult)
        o[:pager] = Aws::Pager.new(
          limit_key: "max_results",
          tokens: {
            "next_token" => "next_token"
          }
        )
      end)

      api.add_operation(:describe_security_groups, Seahorse::Model::Operation.new.tap do |o|
        o.name = "DescribeSecurityGroups"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: DescribeSecurityGroupsRequest)
        o.output = Shapes::ShapeRef.new(shape: DescribeSecurityGroupsResult)
        o[:pager] = Aws::Pager.new(
          limit_key: "max_results",
          tokens: {
            "next_token" => "next_token"
          }
        )
      end)

      api.add_operation(:describe_snapshot_attribute, Seahorse::Model::Operation.new.tap do |o|
        o.name = "DescribeSnapshotAttribute"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: DescribeSnapshotAttributeRequest)
        o.output = Shapes::ShapeRef.new(shape: DescribeSnapshotAttributeResult)
      end)

      api.add_operation(:describe_snapshot_tier_status, Seahorse::Model::Operation.new.tap do |o|
        o.name = "DescribeSnapshotTierStatus"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: DescribeSnapshotTierStatusRequest)
        o.output = Shapes::ShapeRef.new(shape: DescribeSnapshotTierStatusResult)
        o[:pager] = Aws::Pager.new(
          limit_key: "max_results",
          tokens: {
            "next_token" => "next_token"
          }
        )
      end)

      api.add_operation(:describe_snapshots, Seahorse::Model::Operation.new.tap do |o|
        o.name = "DescribeSnapshots"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: DescribeSnapshotsRequest)
        o.output = Shapes::ShapeRef.new(shape: DescribeSnapshotsResult)
        o[:pager] = Aws::Pager.new(
          limit_key: "max_results",
          tokens: {
            "next_token" => "next_token"
          }
        )
      end)

      api.add_operation(:describe_spot_datafeed_subscription, Seahorse::Model::Operation.new.tap do |o|
        o.name = "DescribeSpotDatafeedSubscription"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: DescribeSpotDatafeedSubscriptionRequest)
        o.output = Shapes::ShapeRef.new(shape: DescribeSpotDatafeedSubscriptionResult)
      end)

      api.add_operation(:describe_spot_fleet_instances, Seahorse::Model::Operation.new.tap do |o|
        o.name = "DescribeSpotFleetInstances"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: DescribeSpotFleetInstancesRequest)
        o.output = Shapes::ShapeRef.new(shape: DescribeSpotFleetInstancesResponse)
      end)

      api.add_operation(:describe_spot_fleet_request_history, Seahorse::Model::Operation.new.tap do |o|
        o.name = "DescribeSpotFleetRequestHistory"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: DescribeSpotFleetRequestHistoryRequest)
        o.output = Shapes::ShapeRef.new(shape: DescribeSpotFleetRequestHistoryResponse)
      end)

      api.add_operation(:describe_spot_fleet_requests, Seahorse::Model::Operation.new.tap do |o|
        o.name = "DescribeSpotFleetRequests"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: DescribeSpotFleetRequestsRequest)
        o.output = Shapes::ShapeRef.new(shape: DescribeSpotFleetRequestsResponse)
        o[:pager] = Aws::Pager.new(
          limit_key: "max_results",
          tokens: {
            "next_token" => "next_token"
          }
        )
      end)

      api.add_operation(:describe_spot_instance_requests, Seahorse::Model::Operation.new.tap do |o|
        o.name = "DescribeSpotInstanceRequests"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: DescribeSpotInstanceRequestsRequest)
        o.output = Shapes::ShapeRef.new(shape: DescribeSpotInstanceRequestsResult)
        o[:pager] = Aws::Pager.new(
          limit_key: "max_results",
          tokens: {
            "next_token" => "next_token"
          }
        )
      end)

      api.add_operation(:describe_spot_price_history, Seahorse::Model::Operation.new.tap do |o|
        o.name = "DescribeSpotPriceHistory"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: DescribeSpotPriceHistoryRequest)
        o.output = Shapes::ShapeRef.new(shape: DescribeSpotPriceHistoryResult)
        o[:pager] = Aws::Pager.new(
          limit_key: "max_results",
          tokens: {
            "next_token" => "next_token"
          }
        )
      end)

      api.add_operation(:describe_stale_security_groups, Seahorse::Model::Operation.new.tap do |o|
        o.name = "DescribeStaleSecurityGroups"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: DescribeStaleSecurityGroupsRequest)
        o.output = Shapes::ShapeRef.new(shape: DescribeStaleSecurityGroupsResult)
        o[:pager] = Aws::Pager.new(
          limit_key: "max_results",
          tokens: {
            "next_token" => "next_token"
          }
        )
      end)

      api.add_operation(:describe_store_image_tasks, Seahorse::Model::Operation.new.tap do |o|
        o.name = "DescribeStoreImageTasks"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: DescribeStoreImageTasksRequest)
        o.output = Shapes::ShapeRef.new(shape: DescribeStoreImageTasksResult)
        o[:pager] = Aws::Pager.new(
          limit_key: "max_results",
          tokens: {
            "next_token" => "next_token"
          }
        )
      end)

      api.add_operation(:describe_subnets, Seahorse::Model::Operation.new.tap do |o|
        o.name = "DescribeSubnets"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: DescribeSubnetsRequest)
        o.output = Shapes::ShapeRef.new(shape: DescribeSubnetsResult)
        o[:pager] = Aws::Pager.new(
          limit_key: "max_results",
          tokens: {
            "next_token" => "next_token"
          }
        )
      end)

      api.add_operation(:describe_tags, Seahorse::Model::Operation.new.tap do |o|
        o.name = "DescribeTags"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: DescribeTagsRequest)
        o.output = Shapes::ShapeRef.new(shape: DescribeTagsResult)
        o[:pager] = Aws::Pager.new(
          limit_key: "max_results",
          tokens: {
            "next_token" => "next_token"
          }
        )
      end)

      api.add_operation(:describe_traffic_mirror_filter_rules, Seahorse::Model::Operation.new.tap do |o|
        o.name = "DescribeTrafficMirrorFilterRules"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: DescribeTrafficMirrorFilterRulesRequest)
        o.output = Shapes::ShapeRef.new(shape: DescribeTrafficMirrorFilterRulesResult)
      end)

      api.add_operation(:describe_traffic_mirror_filters, Seahorse::Model::Operation.new.tap do |o|
        o.name = "DescribeTrafficMirrorFilters"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: DescribeTrafficMirrorFiltersRequest)
        o.output = Shapes::ShapeRef.new(shape: DescribeTrafficMirrorFiltersResult)
        o[:pager] = Aws::Pager.new(
          limit_key: "max_results",
          tokens: {
            "next_token" => "next_token"
          }
        )
      end)

      api.add_operation(:describe_traffic_mirror_sessions, Seahorse::Model::Operation.new.tap do |o|
        o.name = "DescribeTrafficMirrorSessions"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: DescribeTrafficMirrorSessionsRequest)
        o.output = Shapes::ShapeRef.new(shape: DescribeTrafficMirrorSessionsResult)
        o[:pager] = Aws::Pager.new(
          limit_key: "max_results",
          tokens: {
            "next_token" => "next_token"
          }
        )
      end)

      api.add_operation(:describe_traffic_mirror_targets, Seahorse::Model::Operation.new.tap do |o|
        o.name = "DescribeTrafficMirrorTargets"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: DescribeTrafficMirrorTargetsRequest)
        o.output = Shapes::ShapeRef.new(shape: DescribeTrafficMirrorTargetsResult)
        o[:pager] = Aws::Pager.new(
          limit_key: "max_results",
          tokens: {
            "next_token" => "next_token"
          }
        )
      end)

      api.add_operation(:describe_transit_gateway_attachments, Seahorse::Model::Operation.new.tap do |o|
        o.name = "DescribeTransitGatewayAttachments"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: DescribeTransitGatewayAttachmentsRequest)
        o.output = Shapes::ShapeRef.new(shape: DescribeTransitGatewayAttachmentsResult)
        o[:pager] = Aws::Pager.new(
          limit_key: "max_results",
          tokens: {
            "next_token" => "next_token"
          }
        )
      end)

      api.add_operation(:describe_transit_gateway_connect_peers, Seahorse::Model::Operation.new.tap do |o|
        o.name = "DescribeTransitGatewayConnectPeers"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: DescribeTransitGatewayConnectPeersRequest)
        o.output = Shapes::ShapeRef.new(shape: DescribeTransitGatewayConnectPeersResult)
        o[:pager] = Aws::Pager.new(
          limit_key: "max_results",
          tokens: {
            "next_token" => "next_token"
          }
        )
      end)

      api.add_operation(:describe_transit_gateway_connects, Seahorse::Model::Operation.new.tap do |o|
        o.name = "DescribeTransitGatewayConnects"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: DescribeTransitGatewayConnectsRequest)
        o.output = Shapes::ShapeRef.new(shape: DescribeTransitGatewayConnectsResult)
        o[:pager] = Aws::Pager.new(
          limit_key: "max_results",
          tokens: {
            "next_token" => "next_token"
          }
        )
      end)

      api.add_operation(:describe_transit_gateway_multicast_domains, Seahorse::Model::Operation.new.tap do |o|
        o.name = "DescribeTransitGatewayMulticastDomains"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: DescribeTransitGatewayMulticastDomainsRequest)
        o.output = Shapes::ShapeRef.new(shape: DescribeTransitGatewayMulticastDomainsResult)
        o[:pager] = Aws::Pager.new(
          limit_key: "max_results",
          tokens: {
            "next_token" => "next_token"
          }
        )
      end)

      api.add_operation(:describe_transit_gateway_peering_attachments, Seahorse::Model::Operation.new.tap do |o|
        o.name = "DescribeTransitGatewayPeeringAttachments"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: DescribeTransitGatewayPeeringAttachmentsRequest)
        o.output = Shapes::ShapeRef.new(shape: DescribeTransitGatewayPeeringAttachmentsResult)
        o[:pager] = Aws::Pager.new(
          limit_key: "max_results",
          tokens: {
            "next_token" => "next_token"
          }
        )
      end)

      api.add_operation(:describe_transit_gateway_policy_tables, Seahorse::Model::Operation.new.tap do |o|
        o.name = "DescribeTransitGatewayPolicyTables"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: DescribeTransitGatewayPolicyTablesRequest)
        o.output = Shapes::ShapeRef.new(shape: DescribeTransitGatewayPolicyTablesResult)
        o[:pager] = Aws::Pager.new(
          limit_key: "max_results",
          tokens: {
            "next_token" => "next_token"
          }
        )
      end)

      api.add_operation(:describe_transit_gateway_route_table_announcements, Seahorse::Model::Operation.new.tap do |o|
        o.name = "DescribeTransitGatewayRouteTableAnnouncements"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: DescribeTransitGatewayRouteTableAnnouncementsRequest)
        o.output = Shapes::ShapeRef.new(shape: DescribeTransitGatewayRouteTableAnnouncementsResult)
        o[:pager] = Aws::Pager.new(
          limit_key: "max_results",
          tokens: {
            "next_token" => "next_token"
          }
        )
      end)

      api.add_operation(:describe_transit_gateway_route_tables, Seahorse::Model::Operation.new.tap do |o|
        o.name = "DescribeTransitGatewayRouteTables"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: DescribeTransitGatewayRouteTablesRequest)
        o.output = Shapes::ShapeRef.new(shape: DescribeTransitGatewayRouteTablesResult)
        o[:pager] = Aws::Pager.new(
          limit_key: "max_results",
          tokens: {
            "next_token" => "next_token"
          }
        )
      end)

      api.add_operation(:describe_transit_gateway_vpc_attachments, Seahorse::Model::Operation.new.tap do |o|
        o.name = "DescribeTransitGatewayVpcAttachments"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: DescribeTransitGatewayVpcAttachmentsRequest)
        o.output = Shapes::ShapeRef.new(shape: DescribeTransitGatewayVpcAttachmentsResult)
        o[:pager] = Aws::Pager.new(
          limit_key: "max_results",
          tokens: {
            "next_token" => "next_token"
          }
        )
      end)

      api.add_operation(:describe_transit_gateways, Seahorse::Model::Operation.new.tap do |o|
        o.name = "DescribeTransitGateways"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: DescribeTransitGatewaysRequest)
        o.output = Shapes::ShapeRef.new(shape: DescribeTransitGatewaysResult)
        o[:pager] = Aws::Pager.new(
          limit_key: "max_results",
          tokens: {
            "next_token" => "next_token"
          }
        )
      end)

      api.add_operation(:describe_trunk_interface_associations, Seahorse::Model::Operation.new.tap do |o|
        o.name = "DescribeTrunkInterfaceAssociations"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: DescribeTrunkInterfaceAssociationsRequest)
        o.output = Shapes::ShapeRef.new(shape: DescribeTrunkInterfaceAssociationsResult)
        o[:pager] = Aws::Pager.new(
          limit_key: "max_results",
          tokens: {
            "next_token" => "next_token"
          }
        )
      end)

      api.add_operation(:describe_verified_access_endpoints, Seahorse::Model::Operation.new.tap do |o|
        o.name = "DescribeVerifiedAccessEndpoints"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: DescribeVerifiedAccessEndpointsRequest)
        o.output = Shapes::ShapeRef.new(shape: DescribeVerifiedAccessEndpointsResult)
        o[:pager] = Aws::Pager.new(
          limit_key: "max_results",
          tokens: {
            "next_token" => "next_token"
          }
        )
      end)

      api.add_operation(:describe_verified_access_groups, Seahorse::Model::Operation.new.tap do |o|
        o.name = "DescribeVerifiedAccessGroups"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: DescribeVerifiedAccessGroupsRequest)
        o.output = Shapes::ShapeRef.new(shape: DescribeVerifiedAccessGroupsResult)
        o[:pager] = Aws::Pager.new(
          limit_key: "max_results",
          tokens: {
            "next_token" => "next_token"
          }
        )
      end)

      api.add_operation(:describe_verified_access_instance_logging_configurations, Seahorse::Model::Operation.new.tap do |o|
        o.name = "DescribeVerifiedAccessInstanceLoggingConfigurations"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: DescribeVerifiedAccessInstanceLoggingConfigurationsRequest)
        o.output = Shapes::ShapeRef.new(shape: DescribeVerifiedAccessInstanceLoggingConfigurationsResult)
        o[:pager] = Aws::Pager.new(
          limit_key: "max_results",
          tokens: {
            "next_token" => "next_token"
          }
        )
      end)

      api.add_operation(:describe_verified_access_instances, Seahorse::Model::Operation.new.tap do |o|
        o.name = "DescribeVerifiedAccessInstances"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: DescribeVerifiedAccessInstancesRequest)
        o.output = Shapes::ShapeRef.new(shape: DescribeVerifiedAccessInstancesResult)
        o[:pager] = Aws::Pager.new(
          limit_key: "max_results",
          tokens: {
            "next_token" => "next_token"
          }
        )
      end)

      api.add_operation(:describe_verified_access_trust_providers, Seahorse::Model::Operation.new.tap do |o|
        o.name = "DescribeVerifiedAccessTrustProviders"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: DescribeVerifiedAccessTrustProvidersRequest)
        o.output = Shapes::ShapeRef.new(shape: DescribeVerifiedAccessTrustProvidersResult)
        o[:pager] = Aws::Pager.new(
          limit_key: "max_results",
          tokens: {
            "next_token" => "next_token"
          }
        )
      end)

      api.add_operation(:describe_volume_attribute, Seahorse::Model::Operation.new.tap do |o|
        o.name = "DescribeVolumeAttribute"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: DescribeVolumeAttributeRequest)
        o.output = Shapes::ShapeRef.new(shape: DescribeVolumeAttributeResult)
      end)

      api.add_operation(:describe_volume_status, Seahorse::Model::Operation.new.tap do |o|
        o.name = "DescribeVolumeStatus"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: DescribeVolumeStatusRequest)
        o.output = Shapes::ShapeRef.new(shape: DescribeVolumeStatusResult)
        o[:pager] = Aws::Pager.new(
          limit_key: "max_results",
          tokens: {
            "next_token" => "next_token"
          }
        )
      end)

      api.add_operation(:describe_volumes, Seahorse::Model::Operation.new.tap do |o|
        o.name = "DescribeVolumes"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: DescribeVolumesRequest)
        o.output = Shapes::ShapeRef.new(shape: DescribeVolumesResult)
        o[:pager] = Aws::Pager.new(
          limit_key: "max_results",
          tokens: {
            "next_token" => "next_token"
          }
        )
      end)

      api.add_operation(:describe_volumes_modifications, Seahorse::Model::Operation.new.tap do |o|
        o.name = "DescribeVolumesModifications"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: DescribeVolumesModificationsRequest)
        o.output = Shapes::ShapeRef.new(shape: DescribeVolumesModificationsResult)
        o[:pager] = Aws::Pager.new(
          limit_key: "max_results",
          tokens: {
            "next_token" => "next_token"
          }
        )
      end)

      api.add_operation(:describe_vpc_attribute, Seahorse::Model::Operation.new.tap do |o|
        o.name = "DescribeVpcAttribute"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: DescribeVpcAttributeRequest)
        o.output = Shapes::ShapeRef.new(shape: DescribeVpcAttributeResult)
      end)

      api.add_operation(:describe_vpc_block_public_access_exclusions, Seahorse::Model::Operation.new.tap do |o|
        o.name = "DescribeVpcBlockPublicAccessExclusions"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: DescribeVpcBlockPublicAccessExclusionsRequest)
        o.output = Shapes::ShapeRef.new(shape: DescribeVpcBlockPublicAccessExclusionsResult)
      end)

      api.add_operation(:describe_vpc_block_public_access_options, Seahorse::Model::Operation.new.tap do |o|
        o.name = "DescribeVpcBlockPublicAccessOptions"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: DescribeVpcBlockPublicAccessOptionsRequest)
        o.output = Shapes::ShapeRef.new(shape: DescribeVpcBlockPublicAccessOptionsResult)
      end)

      api.add_operation(:describe_vpc_classic_link, Seahorse::Model::Operation.new.tap do |o|
        o.name = "DescribeVpcClassicLink"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: DescribeVpcClassicLinkRequest)
        o.output = Shapes::ShapeRef.new(shape: DescribeVpcClassicLinkResult)
      end)

      api.add_operation(:describe_vpc_classic_link_dns_support, Seahorse::Model::Operation.new.tap do |o|
        o.name = "DescribeVpcClassicLinkDnsSupport"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: DescribeVpcClassicLinkDnsSupportRequest)
        o.output = Shapes::ShapeRef.new(shape: DescribeVpcClassicLinkDnsSupportResult)
        o[:pager] = Aws::Pager.new(
          limit_key: "max_results",
          tokens: {
            "next_token" => "next_token"
          }
        )
      end)

      api.add_operation(:describe_vpc_endpoint_associations, Seahorse::Model::Operation.new.tap do |o|
        o.name = "DescribeVpcEndpointAssociations"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: DescribeVpcEndpointAssociationsRequest)
        o.output = Shapes::ShapeRef.new(shape: DescribeVpcEndpointAssociationsResult)
      end)

      api.add_operation(:describe_vpc_endpoint_connection_notifications, Seahorse::Model::Operation.new.tap do |o|
        o.name = "DescribeVpcEndpointConnectionNotifications"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: DescribeVpcEndpointConnectionNotificationsRequest)
        o.output = Shapes::ShapeRef.new(shape: DescribeVpcEndpointConnectionNotificationsResult)
        o[:pager] = Aws::Pager.new(
          limit_key: "max_results",
          tokens: {
            "next_token" => "next_token"
          }
        )
      end)

      api.add_operation(:describe_vpc_endpoint_connections, Seahorse::Model::Operation.new.tap do |o|
        o.name = "DescribeVpcEndpointConnections"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: DescribeVpcEndpointConnectionsRequest)
        o.output = Shapes::ShapeRef.new(shape: DescribeVpcEndpointConnectionsResult)
        o[:pager] = Aws::Pager.new(
          limit_key: "max_results",
          tokens: {
            "next_token" => "next_token"
          }
        )
      end)

      api.add_operation(:describe_vpc_endpoint_service_configurations, Seahorse::Model::Operation.new.tap do |o|
        o.name = "DescribeVpcEndpointServiceConfigurations"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: DescribeVpcEndpointServiceConfigurationsRequest)
        o.output = Shapes::ShapeRef.new(shape: DescribeVpcEndpointServiceConfigurationsResult)
        o[:pager] = Aws::Pager.new(
          limit_key: "max_results",
          tokens: {
            "next_token" => "next_token"
          }
        )
      end)

      api.add_operation(:describe_vpc_endpoint_service_permissions, Seahorse::Model::Operation.new.tap do |o|
        o.name = "DescribeVpcEndpointServicePermissions"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: DescribeVpcEndpointServicePermissionsRequest)
        o.output = Shapes::ShapeRef.new(shape: DescribeVpcEndpointServicePermissionsResult)
        o[:pager] = Aws::Pager.new(
          limit_key: "max_results",
          tokens: {
            "next_token" => "next_token"
          }
        )
      end)

      api.add_operation(:describe_vpc_endpoint_services, Seahorse::Model::Operation.new.tap do |o|
        o.name = "DescribeVpcEndpointServices"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: DescribeVpcEndpointServicesRequest)
        o.output = Shapes::ShapeRef.new(shape: DescribeVpcEndpointServicesResult)
      end)

      api.add_operation(:describe_vpc_endpoints, Seahorse::Model::Operation.new.tap do |o|
        o.name = "DescribeVpcEndpoints"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: DescribeVpcEndpointsRequest)
        o.output = Shapes::ShapeRef.new(shape: DescribeVpcEndpointsResult)
        o[:pager] = Aws::Pager.new(
          limit_key: "max_results",
          tokens: {
            "next_token" => "next_token"
          }
        )
      end)

      api.add_operation(:describe_vpc_peering_connections, Seahorse::Model::Operation.new.tap do |o|
        o.name = "DescribeVpcPeeringConnections"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: DescribeVpcPeeringConnectionsRequest)
        o.output = Shapes::ShapeRef.new(shape: DescribeVpcPeeringConnectionsResult)
        o[:pager] = Aws::Pager.new(
          limit_key: "max_results",
          tokens: {
            "next_token" => "next_token"
          }
        )
      end)

      api.add_operation(:describe_vpcs, Seahorse::Model::Operation.new.tap do |o|
        o.name = "DescribeVpcs"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: DescribeVpcsRequest)
        o.output = Shapes::ShapeRef.new(shape: DescribeVpcsResult)
        o[:pager] = Aws::Pager.new(
          limit_key: "max_results",
          tokens: {
            "next_token" => "next_token"
          }
        )
      end)

      api.add_operation(:describe_vpn_connections, Seahorse::Model::Operation.new.tap do |o|
        o.name = "DescribeVpnConnections"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: DescribeVpnConnectionsRequest)
        o.output = Shapes::ShapeRef.new(shape: DescribeVpnConnectionsResult)
      end)

      api.add_operation(:describe_vpn_gateways, Seahorse::Model::Operation.new.tap do |o|
        o.name = "DescribeVpnGateways"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: DescribeVpnGatewaysRequest)
        o.output = Shapes::ShapeRef.new(shape: DescribeVpnGatewaysResult)
      end)

      api.add_operation(:detach_classic_link_vpc, Seahorse::Model::Operation.new.tap do |o|
        o.name = "DetachClassicLinkVpc"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: DetachClassicLinkVpcRequest)
        o.output = Shapes::ShapeRef.new(shape: DetachClassicLinkVpcResult)
      end)

      api.add_operation(:detach_internet_gateway, Seahorse::Model::Operation.new.tap do |o|
        o.name = "DetachInternetGateway"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: DetachInternetGatewayRequest)
        o.output = Shapes::ShapeRef.new(shape: Shapes::StructureShape.new(struct_class: Aws::EmptyStructure))
      end)

      api.add_operation(:detach_network_interface, Seahorse::Model::Operation.new.tap do |o|
        o.name = "DetachNetworkInterface"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: DetachNetworkInterfaceRequest)
        o.output = Shapes::ShapeRef.new(shape: Shapes::StructureShape.new(struct_class: Aws::EmptyStructure))
      end)

      api.add_operation(:detach_verified_access_trust_provider, Seahorse::Model::Operation.new.tap do |o|
        o.name = "DetachVerifiedAccessTrustProvider"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: DetachVerifiedAccessTrustProviderRequest)
        o.output = Shapes::ShapeRef.new(shape: DetachVerifiedAccessTrustProviderResult)
      end)

      api.add_operation(:detach_volume, Seahorse::Model::Operation.new.tap do |o|
        o.name = "DetachVolume"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: DetachVolumeRequest)
        o.output = Shapes::ShapeRef.new(shape: VolumeAttachment)
      end)

      api.add_operation(:detach_vpn_gateway, Seahorse::Model::Operation.new.tap do |o|
        o.name = "DetachVpnGateway"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: DetachVpnGatewayRequest)
        o.output = Shapes::ShapeRef.new(shape: Shapes::StructureShape.new(struct_class: Aws::EmptyStructure))
      end)

      api.add_operation(:disable_address_transfer, Seahorse::Model::Operation.new.tap do |o|
        o.name = "DisableAddressTransfer"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: DisableAddressTransferRequest)
        o.output = Shapes::ShapeRef.new(shape: DisableAddressTransferResult)
      end)

      api.add_operation(:disable_allowed_images_settings, Seahorse::Model::Operation.new.tap do |o|
        o.name = "DisableAllowedImagesSettings"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: DisableAllowedImagesSettingsRequest)
        o.output = Shapes::ShapeRef.new(shape: DisableAllowedImagesSettingsResult)
      end)

      api.add_operation(:disable_aws_network_performance_metric_subscription, Seahorse::Model::Operation.new.tap do |o|
        o.name = "DisableAwsNetworkPerformanceMetricSubscription"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: DisableAwsNetworkPerformanceMetricSubscriptionRequest)
        o.output = Shapes::ShapeRef.new(shape: DisableAwsNetworkPerformanceMetricSubscriptionResult)
      end)

      api.add_operation(:disable_ebs_encryption_by_default, Seahorse::Model::Operation.new.tap do |o|
        o.name = "DisableEbsEncryptionByDefault"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: DisableEbsEncryptionByDefaultRequest)
        o.output = Shapes::ShapeRef.new(shape: DisableEbsEncryptionByDefaultResult)
      end)

      api.add_operation(:disable_fast_launch, Seahorse::Model::Operation.new.tap do |o|
        o.name = "DisableFastLaunch"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: DisableFastLaunchRequest)
        o.output = Shapes::ShapeRef.new(shape: DisableFastLaunchResult)
      end)

      api.add_operation(:disable_fast_snapshot_restores, Seahorse::Model::Operation.new.tap do |o|
        o.name = "DisableFastSnapshotRestores"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: DisableFastSnapshotRestoresRequest)
        o.output = Shapes::ShapeRef.new(shape: DisableFastSnapshotRestoresResult)
      end)

      api.add_operation(:disable_image, Seahorse::Model::Operation.new.tap do |o|
        o.name = "DisableImage"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: DisableImageRequest)
        o.output = Shapes::ShapeRef.new(shape: DisableImageResult)
      end)

      api.add_operation(:disable_image_block_public_access, Seahorse::Model::Operation.new.tap do |o|
        o.name = "DisableImageBlockPublicAccess"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: DisableImageBlockPublicAccessRequest)
        o.output = Shapes::ShapeRef.new(shape: DisableImageBlockPublicAccessResult)
      end)

      api.add_operation(:disable_image_deprecation, Seahorse::Model::Operation.new.tap do |o|
        o.name = "DisableImageDeprecation"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: DisableImageDeprecationRequest)
        o.output = Shapes::ShapeRef.new(shape: DisableImageDeprecationResult)
      end)

      api.add_operation(:disable_image_deregistration_protection, Seahorse::Model::Operation.new.tap do |o|
        o.name = "DisableImageDeregistrationProtection"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: DisableImageDeregistrationProtectionRequest)
        o.output = Shapes::ShapeRef.new(shape: DisableImageDeregistrationProtectionResult)
      end)

      api.add_operation(:disable_ipam_organization_admin_account, Seahorse::Model::Operation.new.tap do |o|
        o.name = "DisableIpamOrganizationAdminAccount"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: DisableIpamOrganizationAdminAccountRequest)
        o.output = Shapes::ShapeRef.new(shape: DisableIpamOrganizationAdminAccountResult)
      end)

      api.add_operation(:disable_serial_console_access, Seahorse::Model::Operation.new.tap do |o|
        o.name = "DisableSerialConsoleAccess"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: DisableSerialConsoleAccessRequest)
        o.output = Shapes::ShapeRef.new(shape: DisableSerialConsoleAccessResult)
      end)

      api.add_operation(:disable_snapshot_block_public_access, Seahorse::Model::Operation.new.tap do |o|
        o.name = "DisableSnapshotBlockPublicAccess"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: DisableSnapshotBlockPublicAccessRequest)
        o.output = Shapes::ShapeRef.new(shape: DisableSnapshotBlockPublicAccessResult)
      end)

      api.add_operation(:disable_transit_gateway_route_table_propagation, Seahorse::Model::Operation.new.tap do |o|
        o.name = "DisableTransitGatewayRouteTablePropagation"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: DisableTransitGatewayRouteTablePropagationRequest)
        o.output = Shapes::ShapeRef.new(shape: DisableTransitGatewayRouteTablePropagationResult)
      end)

      api.add_operation(:disable_vgw_route_propagation, Seahorse::Model::Operation.new.tap do |o|
        o.name = "DisableVgwRoutePropagation"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: DisableVgwRoutePropagationRequest)
        o.output = Shapes::ShapeRef.new(shape: Shapes::StructureShape.new(struct_class: Aws::EmptyStructure))
      end)

      api.add_operation(:disable_vpc_classic_link, Seahorse::Model::Operation.new.tap do |o|
        o.name = "DisableVpcClassicLink"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: DisableVpcClassicLinkRequest)
        o.output = Shapes::ShapeRef.new(shape: DisableVpcClassicLinkResult)
      end)

      api.add_operation(:disable_vpc_classic_link_dns_support, Seahorse::Model::Operation.new.tap do |o|
        o.name = "DisableVpcClassicLinkDnsSupport"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: DisableVpcClassicLinkDnsSupportRequest)
        o.output = Shapes::ShapeRef.new(shape: DisableVpcClassicLinkDnsSupportResult)
      end)

      api.add_operation(:disassociate_address, Seahorse::Model::Operation.new.tap do |o|
        o.name = "DisassociateAddress"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: DisassociateAddressRequest)
        o.output = Shapes::ShapeRef.new(shape: Shapes::StructureShape.new(struct_class: Aws::EmptyStructure))
      end)

      api.add_operation(:disassociate_capacity_reservation_billing_owner, Seahorse::Model::Operation.new.tap do |o|
        o.name = "DisassociateCapacityReservationBillingOwner"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: DisassociateCapacityReservationBillingOwnerRequest)
        o.output = Shapes::ShapeRef.new(shape: DisassociateCapacityReservationBillingOwnerResult)
      end)

      api.add_operation(:disassociate_client_vpn_target_network, Seahorse::Model::Operation.new.tap do |o|
        o.name = "DisassociateClientVpnTargetNetwork"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: DisassociateClientVpnTargetNetworkRequest)
        o.output = Shapes::ShapeRef.new(shape: DisassociateClientVpnTargetNetworkResult)
      end)

      api.add_operation(:disassociate_enclave_certificate_iam_role, Seahorse::Model::Operation.new.tap do |o|
        o.name = "DisassociateEnclaveCertificateIamRole"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: DisassociateEnclaveCertificateIamRoleRequest)
        o.output = Shapes::ShapeRef.new(shape: DisassociateEnclaveCertificateIamRoleResult)
      end)

      api.add_operation(:disassociate_iam_instance_profile, Seahorse::Model::Operation.new.tap do |o|
        o.name = "DisassociateIamInstanceProfile"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: DisassociateIamInstanceProfileRequest)
        o.output = Shapes::ShapeRef.new(shape: DisassociateIamInstanceProfileResult)
      end)

      api.add_operation(:disassociate_instance_event_window, Seahorse::Model::Operation.new.tap do |o|
        o.name = "DisassociateInstanceEventWindow"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: DisassociateInstanceEventWindowRequest)
        o.output = Shapes::ShapeRef.new(shape: DisassociateInstanceEventWindowResult)
      end)

      api.add_operation(:disassociate_ipam_byoasn, Seahorse::Model::Operation.new.tap do |o|
        o.name = "DisassociateIpamByoasn"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: DisassociateIpamByoasnRequest)
        o.output = Shapes::ShapeRef.new(shape: DisassociateIpamByoasnResult)
      end)

      api.add_operation(:disassociate_ipam_resource_discovery, Seahorse::Model::Operation.new.tap do |o|
        o.name = "DisassociateIpamResourceDiscovery"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: DisassociateIpamResourceDiscoveryRequest)
        o.output = Shapes::ShapeRef.new(shape: DisassociateIpamResourceDiscoveryResult)
      end)

      api.add_operation(:disassociate_nat_gateway_address, Seahorse::Model::Operation.new.tap do |o|
        o.name = "DisassociateNatGatewayAddress"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: DisassociateNatGatewayAddressRequest)
        o.output = Shapes::ShapeRef.new(shape: DisassociateNatGatewayAddressResult)
      end)

      api.add_operation(:disassociate_route_table, Seahorse::Model::Operation.new.tap do |o|
        o.name = "DisassociateRouteTable"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: DisassociateRouteTableRequest)
        o.output = Shapes::ShapeRef.new(shape: Shapes::StructureShape.new(struct_class: Aws::EmptyStructure))
      end)

      api.add_operation(:disassociate_security_group_vpc, Seahorse::Model::Operation.new.tap do |o|
        o.name = "DisassociateSecurityGroupVpc"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: DisassociateSecurityGroupVpcRequest)
        o.output = Shapes::ShapeRef.new(shape: DisassociateSecurityGroupVpcResult)
      end)

      api.add_operation(:disassociate_subnet_cidr_block, Seahorse::Model::Operation.new.tap do |o|
        o.name = "DisassociateSubnetCidrBlock"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: DisassociateSubnetCidrBlockRequest)
        o.output = Shapes::ShapeRef.new(shape: DisassociateSubnetCidrBlockResult)
      end)

      api.add_operation(:disassociate_transit_gateway_multicast_domain, Seahorse::Model::Operation.new.tap do |o|
        o.name = "DisassociateTransitGatewayMulticastDomain"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: DisassociateTransitGatewayMulticastDomainRequest)
        o.output = Shapes::ShapeRef.new(shape: DisassociateTransitGatewayMulticastDomainResult)
      end)

      api.add_operation(:disassociate_transit_gateway_policy_table, Seahorse::Model::Operation.new.tap do |o|
        o.name = "DisassociateTransitGatewayPolicyTable"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: DisassociateTransitGatewayPolicyTableRequest)
        o.output = Shapes::ShapeRef.new(shape: DisassociateTransitGatewayPolicyTableResult)
      end)

      api.add_operation(:disassociate_transit_gateway_route_table, Seahorse::Model::Operation.new.tap do |o|
        o.name = "DisassociateTransitGatewayRouteTable"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: DisassociateTransitGatewayRouteTableRequest)
        o.output = Shapes::ShapeRef.new(shape: DisassociateTransitGatewayRouteTableResult)
      end)

      api.add_operation(:disassociate_trunk_interface, Seahorse::Model::Operation.new.tap do |o|
        o.name = "DisassociateTrunkInterface"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: DisassociateTrunkInterfaceRequest)
        o.output = Shapes::ShapeRef.new(shape: DisassociateTrunkInterfaceResult)
      end)

      api.add_operation(:disassociate_vpc_cidr_block, Seahorse::Model::Operation.new.tap do |o|
        o.name = "DisassociateVpcCidrBlock"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: DisassociateVpcCidrBlockRequest)
        o.output = Shapes::ShapeRef.new(shape: DisassociateVpcCidrBlockResult)
      end)

      api.add_operation(:enable_address_transfer, Seahorse::Model::Operation.new.tap do |o|
        o.name = "EnableAddressTransfer"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: EnableAddressTransferRequest)
        o.output = Shapes::ShapeRef.new(shape: EnableAddressTransferResult)
      end)

      api.add_operation(:enable_allowed_images_settings, Seahorse::Model::Operation.new.tap do |o|
        o.name = "EnableAllowedImagesSettings"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: EnableAllowedImagesSettingsRequest)
        o.output = Shapes::ShapeRef.new(shape: EnableAllowedImagesSettingsResult)
      end)

      api.add_operation(:enable_aws_network_performance_metric_subscription, Seahorse::Model::Operation.new.tap do |o|
        o.name = "EnableAwsNetworkPerformanceMetricSubscription"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: EnableAwsNetworkPerformanceMetricSubscriptionRequest)
        o.output = Shapes::ShapeRef.new(shape: EnableAwsNetworkPerformanceMetricSubscriptionResult)
      end)

      api.add_operation(:enable_ebs_encryption_by_default, Seahorse::Model::Operation.new.tap do |o|
        o.name = "EnableEbsEncryptionByDefault"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: EnableEbsEncryptionByDefaultRequest)
        o.output = Shapes::ShapeRef.new(shape: EnableEbsEncryptionByDefaultResult)
      end)

      api.add_operation(:enable_fast_launch, Seahorse::Model::Operation.new.tap do |o|
        o.name = "EnableFastLaunch"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: EnableFastLaunchRequest)
        o.output = Shapes::ShapeRef.new(shape: EnableFastLaunchResult)
      end)

      api.add_operation(:enable_fast_snapshot_restores, Seahorse::Model::Operation.new.tap do |o|
        o.name = "EnableFastSnapshotRestores"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: EnableFastSnapshotRestoresRequest)
        o.output = Shapes::ShapeRef.new(shape: EnableFastSnapshotRestoresResult)
      end)

      api.add_operation(:enable_image, Seahorse::Model::Operation.new.tap do |o|
        o.name = "EnableImage"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: EnableImageRequest)
        o.output = Shapes::ShapeRef.new(shape: EnableImageResult)
      end)

      api.add_operation(:enable_image_block_public_access, Seahorse::Model::Operation.new.tap do |o|
        o.name = "EnableImageBlockPublicAccess"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: EnableImageBlockPublicAccessRequest)
        o.output = Shapes::ShapeRef.new(shape: EnableImageBlockPublicAccessResult)
      end)

      api.add_operation(:enable_image_deprecation, Seahorse::Model::Operation.new.tap do |o|
        o.name = "EnableImageDeprecation"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: EnableImageDeprecationRequest)
        o.output = Shapes::ShapeRef.new(shape: EnableImageDeprecationResult)
      end)

      api.add_operation(:enable_image_deregistration_protection, Seahorse::Model::Operation.new.tap do |o|
        o.name = "EnableImageDeregistrationProtection"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: EnableImageDeregistrationProtectionRequest)
        o.output = Shapes::ShapeRef.new(shape: EnableImageDeregistrationProtectionResult)
      end)

      api.add_operation(:enable_ipam_organization_admin_account, Seahorse::Model::Operation.new.tap do |o|
        o.name = "EnableIpamOrganizationAdminAccount"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: EnableIpamOrganizationAdminAccountRequest)
        o.output = Shapes::ShapeRef.new(shape: EnableIpamOrganizationAdminAccountResult)
      end)

      api.add_operation(:enable_reachability_analyzer_organization_sharing, Seahorse::Model::Operation.new.tap do |o|
        o.name = "EnableReachabilityAnalyzerOrganizationSharing"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: EnableReachabilityAnalyzerOrganizationSharingRequest)
        o.output = Shapes::ShapeRef.new(shape: EnableReachabilityAnalyzerOrganizationSharingResult)
      end)

      api.add_operation(:enable_serial_console_access, Seahorse::Model::Operation.new.tap do |o|
        o.name = "EnableSerialConsoleAccess"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: EnableSerialConsoleAccessRequest)
        o.output = Shapes::ShapeRef.new(shape: EnableSerialConsoleAccessResult)
      end)

      api.add_operation(:enable_snapshot_block_public_access, Seahorse::Model::Operation.new.tap do |o|
        o.name = "EnableSnapshotBlockPublicAccess"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: EnableSnapshotBlockPublicAccessRequest)
        o.output = Shapes::ShapeRef.new(shape: EnableSnapshotBlockPublicAccessResult)
      end)

      api.add_operation(:enable_transit_gateway_route_table_propagation, Seahorse::Model::Operation.new.tap do |o|
        o.name = "EnableTransitGatewayRouteTablePropagation"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: EnableTransitGatewayRouteTablePropagationRequest)
        o.output = Shapes::ShapeRef.new(shape: EnableTransitGatewayRouteTablePropagationResult)
      end)

      api.add_operation(:enable_vgw_route_propagation, Seahorse::Model::Operation.new.tap do |o|
        o.name = "EnableVgwRoutePropagation"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: EnableVgwRoutePropagationRequest)
        o.output = Shapes::ShapeRef.new(shape: Shapes::StructureShape.new(struct_class: Aws::EmptyStructure))
      end)

      api.add_operation(:enable_volume_io, Seahorse::Model::Operation.new.tap do |o|
        o.name = "EnableVolumeIO"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: EnableVolumeIORequest)
        o.output = Shapes::ShapeRef.new(shape: Shapes::StructureShape.new(struct_class: Aws::EmptyStructure))
      end)

      api.add_operation(:enable_vpc_classic_link, Seahorse::Model::Operation.new.tap do |o|
        o.name = "EnableVpcClassicLink"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: EnableVpcClassicLinkRequest)
        o.output = Shapes::ShapeRef.new(shape: EnableVpcClassicLinkResult)
      end)

      api.add_operation(:enable_vpc_classic_link_dns_support, Seahorse::Model::Operation.new.tap do |o|
        o.name = "EnableVpcClassicLinkDnsSupport"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: EnableVpcClassicLinkDnsSupportRequest)
        o.output = Shapes::ShapeRef.new(shape: EnableVpcClassicLinkDnsSupportResult)
      end)

      api.add_operation(:export_client_vpn_client_certificate_revocation_list, Seahorse::Model::Operation.new.tap do |o|
        o.name = "ExportClientVpnClientCertificateRevocationList"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: ExportClientVpnClientCertificateRevocationListRequest)
        o.output = Shapes::ShapeRef.new(shape: ExportClientVpnClientCertificateRevocationListResult)
      end)

      api.add_operation(:export_client_vpn_client_configuration, Seahorse::Model::Operation.new.tap do |o|
        o.name = "ExportClientVpnClientConfiguration"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: ExportClientVpnClientConfigurationRequest)
        o.output = Shapes::ShapeRef.new(shape: ExportClientVpnClientConfigurationResult)
      end)

      api.add_operation(:export_image, Seahorse::Model::Operation.new.tap do |o|
        o.name = "ExportImage"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: ExportImageRequest)
        o.output = Shapes::ShapeRef.new(shape: ExportImageResult)
      end)

      api.add_operation(:export_transit_gateway_routes, Seahorse::Model::Operation.new.tap do |o|
        o.name = "ExportTransitGatewayRoutes"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: ExportTransitGatewayRoutesRequest)
        o.output = Shapes::ShapeRef.new(shape: ExportTransitGatewayRoutesResult)
      end)

      api.add_operation(:export_verified_access_instance_client_configuration, Seahorse::Model::Operation.new.tap do |o|
        o.name = "ExportVerifiedAccessInstanceClientConfiguration"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: ExportVerifiedAccessInstanceClientConfigurationRequest)
        o.output = Shapes::ShapeRef.new(shape: ExportVerifiedAccessInstanceClientConfigurationResult)
      end)

      api.add_operation(:get_allowed_images_settings, Seahorse::Model::Operation.new.tap do |o|
        o.name = "GetAllowedImagesSettings"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: GetAllowedImagesSettingsRequest)
        o.output = Shapes::ShapeRef.new(shape: GetAllowedImagesSettingsResult)
      end)

      api.add_operation(:get_associated_enclave_certificate_iam_roles, Seahorse::Model::Operation.new.tap do |o|
        o.name = "GetAssociatedEnclaveCertificateIamRoles"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: GetAssociatedEnclaveCertificateIamRolesRequest)
        o.output = Shapes::ShapeRef.new(shape: GetAssociatedEnclaveCertificateIamRolesResult)
      end)

      api.add_operation(:get_associated_ipv_6_pool_cidrs, Seahorse::Model::Operation.new.tap do |o|
        o.name = "GetAssociatedIpv6PoolCidrs"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: GetAssociatedIpv6PoolCidrsRequest)
        o.output = Shapes::ShapeRef.new(shape: GetAssociatedIpv6PoolCidrsResult)
        o[:pager] = Aws::Pager.new(
          limit_key: "max_results",
          tokens: {
            "next_token" => "next_token"
          }
        )
      end)

      api.add_operation(:get_aws_network_performance_data, Seahorse::Model::Operation.new.tap do |o|
        o.name = "GetAwsNetworkPerformanceData"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: GetAwsNetworkPerformanceDataRequest)
        o.output = Shapes::ShapeRef.new(shape: GetAwsNetworkPerformanceDataResult)
        o[:pager] = Aws::Pager.new(
          limit_key: "max_results",
          tokens: {
            "next_token" => "next_token"
          }
        )
      end)

      api.add_operation(:get_capacity_reservation_usage, Seahorse::Model::Operation.new.tap do |o|
        o.name = "GetCapacityReservationUsage"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: GetCapacityReservationUsageRequest)
        o.output = Shapes::ShapeRef.new(shape: GetCapacityReservationUsageResult)
      end)

      api.add_operation(:get_coip_pool_usage, Seahorse::Model::Operation.new.tap do |o|
        o.name = "GetCoipPoolUsage"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: GetCoipPoolUsageRequest)
        o.output = Shapes::ShapeRef.new(shape: GetCoipPoolUsageResult)
      end)

      api.add_operation(:get_console_output, Seahorse::Model::Operation.new.tap do |o|
        o.name = "GetConsoleOutput"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: GetConsoleOutputRequest)
        o.output = Shapes::ShapeRef.new(shape: GetConsoleOutputResult)
      end)

      api.add_operation(:get_console_screenshot, Seahorse::Model::Operation.new.tap do |o|
        o.name = "GetConsoleScreenshot"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: GetConsoleScreenshotRequest)
        o.output = Shapes::ShapeRef.new(shape: GetConsoleScreenshotResult)
      end)

      api.add_operation(:get_declarative_policies_report_summary, Seahorse::Model::Operation.new.tap do |o|
        o.name = "GetDeclarativePoliciesReportSummary"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: GetDeclarativePoliciesReportSummaryRequest)
        o.output = Shapes::ShapeRef.new(shape: GetDeclarativePoliciesReportSummaryResult)
      end)

      api.add_operation(:get_default_credit_specification, Seahorse::Model::Operation.new.tap do |o|
        o.name = "GetDefaultCreditSpecification"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: GetDefaultCreditSpecificationRequest)
        o.output = Shapes::ShapeRef.new(shape: GetDefaultCreditSpecificationResult)
      end)

      api.add_operation(:get_ebs_default_kms_key_id, Seahorse::Model::Operation.new.tap do |o|
        o.name = "GetEbsDefaultKmsKeyId"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: GetEbsDefaultKmsKeyIdRequest)
        o.output = Shapes::ShapeRef.new(shape: GetEbsDefaultKmsKeyIdResult)
      end)

      api.add_operation(:get_ebs_encryption_by_default, Seahorse::Model::Operation.new.tap do |o|
        o.name = "GetEbsEncryptionByDefault"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: GetEbsEncryptionByDefaultRequest)
        o.output = Shapes::ShapeRef.new(shape: GetEbsEncryptionByDefaultResult)
      end)

      api.add_operation(:get_flow_logs_integration_template, Seahorse::Model::Operation.new.tap do |o|
        o.name = "GetFlowLogsIntegrationTemplate"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: GetFlowLogsIntegrationTemplateRequest)
        o.output = Shapes::ShapeRef.new(shape: GetFlowLogsIntegrationTemplateResult)
      end)

      api.add_operation(:get_groups_for_capacity_reservation, Seahorse::Model::Operation.new.tap do |o|
        o.name = "GetGroupsForCapacityReservation"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: GetGroupsForCapacityReservationRequest)
        o.output = Shapes::ShapeRef.new(shape: GetGroupsForCapacityReservationResult)
        o[:pager] = Aws::Pager.new(
          limit_key: "max_results",
          tokens: {
            "next_token" => "next_token"
          }
        )
      end)

      api.add_operation(:get_host_reservation_purchase_preview, Seahorse::Model::Operation.new.tap do |o|
        o.name = "GetHostReservationPurchasePreview"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: GetHostReservationPurchasePreviewRequest)
        o.output = Shapes::ShapeRef.new(shape: GetHostReservationPurchasePreviewResult)
      end)

      api.add_operation(:get_image_block_public_access_state, Seahorse::Model::Operation.new.tap do |o|
        o.name = "GetImageBlockPublicAccessState"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: GetImageBlockPublicAccessStateRequest)
        o.output = Shapes::ShapeRef.new(shape: GetImageBlockPublicAccessStateResult)
      end)

      api.add_operation(:get_instance_metadata_defaults, Seahorse::Model::Operation.new.tap do |o|
        o.name = "GetInstanceMetadataDefaults"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: GetInstanceMetadataDefaultsRequest)
        o.output = Shapes::ShapeRef.new(shape: GetInstanceMetadataDefaultsResult)
      end)

      api.add_operation(:get_instance_tpm_ek_pub, Seahorse::Model::Operation.new.tap do |o|
        o.name = "GetInstanceTpmEkPub"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: GetInstanceTpmEkPubRequest)
        o.output = Shapes::ShapeRef.new(shape: GetInstanceTpmEkPubResult)
      end)

      api.add_operation(:get_instance_types_from_instance_requirements, Seahorse::Model::Operation.new.tap do |o|
        o.name = "GetInstanceTypesFromInstanceRequirements"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: GetInstanceTypesFromInstanceRequirementsRequest)
        o.output = Shapes::ShapeRef.new(shape: GetInstanceTypesFromInstanceRequirementsResult)
        o[:pager] = Aws::Pager.new(
          limit_key: "max_results",
          tokens: {
            "next_token" => "next_token"
          }
        )
      end)

      api.add_operation(:get_instance_uefi_data, Seahorse::Model::Operation.new.tap do |o|
        o.name = "GetInstanceUefiData"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: GetInstanceUefiDataRequest)
        o.output = Shapes::ShapeRef.new(shape: GetInstanceUefiDataResult)
      end)

      api.add_operation(:get_ipam_address_history, Seahorse::Model::Operation.new.tap do |o|
        o.name = "GetIpamAddressHistory"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: GetIpamAddressHistoryRequest)
        o.output = Shapes::ShapeRef.new(shape: GetIpamAddressHistoryResult)
        o[:pager] = Aws::Pager.new(
          limit_key: "max_results",
          tokens: {
            "next_token" => "next_token"
          }
        )
      end)

      api.add_operation(:get_ipam_discovered_accounts, Seahorse::Model::Operation.new.tap do |o|
        o.name = "GetIpamDiscoveredAccounts"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: GetIpamDiscoveredAccountsRequest)
        o.output = Shapes::ShapeRef.new(shape: GetIpamDiscoveredAccountsResult)
        o[:pager] = Aws::Pager.new(
          limit_key: "max_results",
          tokens: {
            "next_token" => "next_token"
          }
        )
      end)

      api.add_operation(:get_ipam_discovered_public_addresses, Seahorse::Model::Operation.new.tap do |o|
        o.name = "GetIpamDiscoveredPublicAddresses"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: GetIpamDiscoveredPublicAddressesRequest)
        o.output = Shapes::ShapeRef.new(shape: GetIpamDiscoveredPublicAddressesResult)
      end)

      api.add_operation(:get_ipam_discovered_resource_cidrs, Seahorse::Model::Operation.new.tap do |o|
        o.name = "GetIpamDiscoveredResourceCidrs"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: GetIpamDiscoveredResourceCidrsRequest)
        o.output = Shapes::ShapeRef.new(shape: GetIpamDiscoveredResourceCidrsResult)
        o[:pager] = Aws::Pager.new(
          limit_key: "max_results",
          tokens: {
            "next_token" => "next_token"
          }
        )
      end)

      api.add_operation(:get_ipam_pool_allocations, Seahorse::Model::Operation.new.tap do |o|
        o.name = "GetIpamPoolAllocations"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: GetIpamPoolAllocationsRequest)
        o.output = Shapes::ShapeRef.new(shape: GetIpamPoolAllocationsResult)
        o[:pager] = Aws::Pager.new(
          limit_key: "max_results",
          tokens: {
            "next_token" => "next_token"
          }
        )
      end)

      api.add_operation(:get_ipam_pool_cidrs, Seahorse::Model::Operation.new.tap do |o|
        o.name = "GetIpamPoolCidrs"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: GetIpamPoolCidrsRequest)
        o.output = Shapes::ShapeRef.new(shape: GetIpamPoolCidrsResult)
        o[:pager] = Aws::Pager.new(
          limit_key: "max_results",
          tokens: {
            "next_token" => "next_token"
          }
        )
      end)

      api.add_operation(:get_ipam_resource_cidrs, Seahorse::Model::Operation.new.tap do |o|
        o.name = "GetIpamResourceCidrs"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: GetIpamResourceCidrsRequest)
        o.output = Shapes::ShapeRef.new(shape: GetIpamResourceCidrsResult)
        o[:pager] = Aws::Pager.new(
          limit_key: "max_results",
          tokens: {
            "next_token" => "next_token"
          }
        )
      end)

      api.add_operation(:get_launch_template_data, Seahorse::Model::Operation.new.tap do |o|
        o.name = "GetLaunchTemplateData"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: GetLaunchTemplateDataRequest)
        o.output = Shapes::ShapeRef.new(shape: GetLaunchTemplateDataResult)
      end)

      api.add_operation(:get_managed_prefix_list_associations, Seahorse::Model::Operation.new.tap do |o|
        o.name = "GetManagedPrefixListAssociations"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: GetManagedPrefixListAssociationsRequest)
        o.output = Shapes::ShapeRef.new(shape: GetManagedPrefixListAssociationsResult)
        o[:pager] = Aws::Pager.new(
          limit_key: "max_results",
          tokens: {
            "next_token" => "next_token"
          }
        )
      end)

      api.add_operation(:get_managed_prefix_list_entries, Seahorse::Model::Operation.new.tap do |o|
        o.name = "GetManagedPrefixListEntries"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: GetManagedPrefixListEntriesRequest)
        o.output = Shapes::ShapeRef.new(shape: GetManagedPrefixListEntriesResult)
        o[:pager] = Aws::Pager.new(
          limit_key: "max_results",
          tokens: {
            "next_token" => "next_token"
          }
        )
      end)

      api.add_operation(:get_network_insights_access_scope_analysis_findings, Seahorse::Model::Operation.new.tap do |o|
        o.name = "GetNetworkInsightsAccessScopeAnalysisFindings"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: GetNetworkInsightsAccessScopeAnalysisFindingsRequest)
        o.output = Shapes::ShapeRef.new(shape: GetNetworkInsightsAccessScopeAnalysisFindingsResult)
        o[:pager] = Aws::Pager.new(
          limit_key: "max_results",
          tokens: {
            "next_token" => "next_token"
          }
        )
      end)

      api.add_operation(:get_network_insights_access_scope_content, Seahorse::Model::Operation.new.tap do |o|
        o.name = "GetNetworkInsightsAccessScopeContent"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: GetNetworkInsightsAccessScopeContentRequest)
        o.output = Shapes::ShapeRef.new(shape: GetNetworkInsightsAccessScopeContentResult)
      end)

      api.add_operation(:get_password_data, Seahorse::Model::Operation.new.tap do |o|
        o.name = "GetPasswordData"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: GetPasswordDataRequest)
        o.output = Shapes::ShapeRef.new(shape: GetPasswordDataResult)
      end)

      api.add_operation(:get_reserved_instances_exchange_quote, Seahorse::Model::Operation.new.tap do |o|
        o.name = "GetReservedInstancesExchangeQuote"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: GetReservedInstancesExchangeQuoteRequest)
        o.output = Shapes::ShapeRef.new(shape: GetReservedInstancesExchangeQuoteResult)
      end)

      api.add_operation(:get_security_groups_for_vpc, Seahorse::Model::Operation.new.tap do |o|
        o.name = "GetSecurityGroupsForVpc"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: GetSecurityGroupsForVpcRequest)
        o.output = Shapes::ShapeRef.new(shape: GetSecurityGroupsForVpcResult)
        o[:pager] = Aws::Pager.new(
          limit_key: "max_results",
          tokens: {
            "next_token" => "next_token"
          }
        )
      end)

      api.add_operation(:get_serial_console_access_status, Seahorse::Model::Operation.new.tap do |o|
        o.name = "GetSerialConsoleAccessStatus"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: GetSerialConsoleAccessStatusRequest)
        o.output = Shapes::ShapeRef.new(shape: GetSerialConsoleAccessStatusResult)
      end)

      api.add_operation(:get_snapshot_block_public_access_state, Seahorse::Model::Operation.new.tap do |o|
        o.name = "GetSnapshotBlockPublicAccessState"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: GetSnapshotBlockPublicAccessStateRequest)
        o.output = Shapes::ShapeRef.new(shape: GetSnapshotBlockPublicAccessStateResult)
      end)

      api.add_operation(:get_spot_placement_scores, Seahorse::Model::Operation.new.tap do |o|
        o.name = "GetSpotPlacementScores"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: GetSpotPlacementScoresRequest)
        o.output = Shapes::ShapeRef.new(shape: GetSpotPlacementScoresResult)
        o[:pager] = Aws::Pager.new(
          limit_key: "max_results",
          tokens: {
            "next_token" => "next_token"
          }
        )
      end)

      api.add_operation(:get_subnet_cidr_reservations, Seahorse::Model::Operation.new.tap do |o|
        o.name = "GetSubnetCidrReservations"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: GetSubnetCidrReservationsRequest)
        o.output = Shapes::ShapeRef.new(shape: GetSubnetCidrReservationsResult)
      end)

      api.add_operation(:get_transit_gateway_attachment_propagations, Seahorse::Model::Operation.new.tap do |o|
        o.name = "GetTransitGatewayAttachmentPropagations"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: GetTransitGatewayAttachmentPropagationsRequest)
        o.output = Shapes::ShapeRef.new(shape: GetTransitGatewayAttachmentPropagationsResult)
        o[:pager] = Aws::Pager.new(
          limit_key: "max_results",
          tokens: {
            "next_token" => "next_token"
          }
        )
      end)

      api.add_operation(:get_transit_gateway_multicast_domain_associations, Seahorse::Model::Operation.new.tap do |o|
        o.name = "GetTransitGatewayMulticastDomainAssociations"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: GetTransitGatewayMulticastDomainAssociationsRequest)
        o.output = Shapes::ShapeRef.new(shape: GetTransitGatewayMulticastDomainAssociationsResult)
        o[:pager] = Aws::Pager.new(
          limit_key: "max_results",
          tokens: {
            "next_token" => "next_token"
          }
        )
      end)

      api.add_operation(:get_transit_gateway_policy_table_associations, Seahorse::Model::Operation.new.tap do |o|
        o.name = "GetTransitGatewayPolicyTableAssociations"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: GetTransitGatewayPolicyTableAssociationsRequest)
        o.output = Shapes::ShapeRef.new(shape: GetTransitGatewayPolicyTableAssociationsResult)
        o[:pager] = Aws::Pager.new(
          limit_key: "max_results",
          tokens: {
            "next_token" => "next_token"
          }
        )
      end)

      api.add_operation(:get_transit_gateway_policy_table_entries, Seahorse::Model::Operation.new.tap do |o|
        o.name = "GetTransitGatewayPolicyTableEntries"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: GetTransitGatewayPolicyTableEntriesRequest)
        o.output = Shapes::ShapeRef.new(shape: GetTransitGatewayPolicyTableEntriesResult)
      end)

      api.add_operation(:get_transit_gateway_prefix_list_references, Seahorse::Model::Operation.new.tap do |o|
        o.name = "GetTransitGatewayPrefixListReferences"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: GetTransitGatewayPrefixListReferencesRequest)
        o.output = Shapes::ShapeRef.new(shape: GetTransitGatewayPrefixListReferencesResult)
        o[:pager] = Aws::Pager.new(
          limit_key: "max_results",
          tokens: {
            "next_token" => "next_token"
          }
        )
      end)

      api.add_operation(:get_transit_gateway_route_table_associations, Seahorse::Model::Operation.new.tap do |o|
        o.name = "GetTransitGatewayRouteTableAssociations"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: GetTransitGatewayRouteTableAssociationsRequest)
        o.output = Shapes::ShapeRef.new(shape: GetTransitGatewayRouteTableAssociationsResult)
        o[:pager] = Aws::Pager.new(
          limit_key: "max_results",
          tokens: {
            "next_token" => "next_token"
          }
        )
      end)

      api.add_operation(:get_transit_gateway_route_table_propagations, Seahorse::Model::Operation.new.tap do |o|
        o.name = "GetTransitGatewayRouteTablePropagations"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: GetTransitGatewayRouteTablePropagationsRequest)
        o.output = Shapes::ShapeRef.new(shape: GetTransitGatewayRouteTablePropagationsResult)
        o[:pager] = Aws::Pager.new(
          limit_key: "max_results",
          tokens: {
            "next_token" => "next_token"
          }
        )
      end)

      api.add_operation(:get_verified_access_endpoint_policy, Seahorse::Model::Operation.new.tap do |o|
        o.name = "GetVerifiedAccessEndpointPolicy"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: GetVerifiedAccessEndpointPolicyRequest)
        o.output = Shapes::ShapeRef.new(shape: GetVerifiedAccessEndpointPolicyResult)
      end)

      api.add_operation(:get_verified_access_endpoint_targets, Seahorse::Model::Operation.new.tap do |o|
        o.name = "GetVerifiedAccessEndpointTargets"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: GetVerifiedAccessEndpointTargetsRequest)
        o.output = Shapes::ShapeRef.new(shape: GetVerifiedAccessEndpointTargetsResult)
      end)

      api.add_operation(:get_verified_access_group_policy, Seahorse::Model::Operation.new.tap do |o|
        o.name = "GetVerifiedAccessGroupPolicy"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: GetVerifiedAccessGroupPolicyRequest)
        o.output = Shapes::ShapeRef.new(shape: GetVerifiedAccessGroupPolicyResult)
      end)

      api.add_operation(:get_vpn_connection_device_sample_configuration, Seahorse::Model::Operation.new.tap do |o|
        o.name = "GetVpnConnectionDeviceSampleConfiguration"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: GetVpnConnectionDeviceSampleConfigurationRequest)
        o.output = Shapes::ShapeRef.new(shape: GetVpnConnectionDeviceSampleConfigurationResult)
      end)

      api.add_operation(:get_vpn_connection_device_types, Seahorse::Model::Operation.new.tap do |o|
        o.name = "GetVpnConnectionDeviceTypes"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: GetVpnConnectionDeviceTypesRequest)
        o.output = Shapes::ShapeRef.new(shape: GetVpnConnectionDeviceTypesResult)
        o[:pager] = Aws::Pager.new(
          limit_key: "max_results",
          tokens: {
            "next_token" => "next_token"
          }
        )
      end)

      api.add_operation(:get_vpn_tunnel_replacement_status, Seahorse::Model::Operation.new.tap do |o|
        o.name = "GetVpnTunnelReplacementStatus"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: GetVpnTunnelReplacementStatusRequest)
        o.output = Shapes::ShapeRef.new(shape: GetVpnTunnelReplacementStatusResult)
      end)

      api.add_operation(:import_client_vpn_client_certificate_revocation_list, Seahorse::Model::Operation.new.tap do |o|
        o.name = "ImportClientVpnClientCertificateRevocationList"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: ImportClientVpnClientCertificateRevocationListRequest)
        o.output = Shapes::ShapeRef.new(shape: ImportClientVpnClientCertificateRevocationListResult)
      end)

      api.add_operation(:import_image, Seahorse::Model::Operation.new.tap do |o|
        o.name = "ImportImage"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: ImportImageRequest)
        o.output = Shapes::ShapeRef.new(shape: ImportImageResult)
      end)

      api.add_operation(:import_instance, Seahorse::Model::Operation.new.tap do |o|
        o.name = "ImportInstance"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: ImportInstanceRequest)
        o.output = Shapes::ShapeRef.new(shape: ImportInstanceResult)
      end)

      api.add_operation(:import_key_pair, Seahorse::Model::Operation.new.tap do |o|
        o.name = "ImportKeyPair"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: ImportKeyPairRequest)
        o.output = Shapes::ShapeRef.new(shape: ImportKeyPairResult)
      end)

      api.add_operation(:import_snapshot, Seahorse::Model::Operation.new.tap do |o|
        o.name = "ImportSnapshot"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: ImportSnapshotRequest)
        o.output = Shapes::ShapeRef.new(shape: ImportSnapshotResult)
      end)

      api.add_operation(:import_volume, Seahorse::Model::Operation.new.tap do |o|
        o.name = "ImportVolume"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: ImportVolumeRequest)
        o.output = Shapes::ShapeRef.new(shape: ImportVolumeResult)
      end)

      api.add_operation(:list_images_in_recycle_bin, Seahorse::Model::Operation.new.tap do |o|
        o.name = "ListImagesInRecycleBin"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: ListImagesInRecycleBinRequest)
        o.output = Shapes::ShapeRef.new(shape: ListImagesInRecycleBinResult)
        o[:pager] = Aws::Pager.new(
          limit_key: "max_results",
          tokens: {
            "next_token" => "next_token"
          }
        )
      end)

      api.add_operation(:list_snapshots_in_recycle_bin, Seahorse::Model::Operation.new.tap do |o|
        o.name = "ListSnapshotsInRecycleBin"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: ListSnapshotsInRecycleBinRequest)
        o.output = Shapes::ShapeRef.new(shape: ListSnapshotsInRecycleBinResult)
        o[:pager] = Aws::Pager.new(
          limit_key: "max_results",
          tokens: {
            "next_token" => "next_token"
          }
        )
      end)

      api.add_operation(:lock_snapshot, Seahorse::Model::Operation.new.tap do |o|
        o.name = "LockSnapshot"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: LockSnapshotRequest)
        o.output = Shapes::ShapeRef.new(shape: LockSnapshotResult)
      end)

      api.add_operation(:modify_address_attribute, Seahorse::Model::Operation.new.tap do |o|
        o.name = "ModifyAddressAttribute"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: ModifyAddressAttributeRequest)
        o.output = Shapes::ShapeRef.new(shape: ModifyAddressAttributeResult)
      end)

      api.add_operation(:modify_availability_zone_group, Seahorse::Model::Operation.new.tap do |o|
        o.name = "ModifyAvailabilityZoneGroup"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: ModifyAvailabilityZoneGroupRequest)
        o.output = Shapes::ShapeRef.new(shape: ModifyAvailabilityZoneGroupResult)
      end)

      api.add_operation(:modify_capacity_reservation, Seahorse::Model::Operation.new.tap do |o|
        o.name = "ModifyCapacityReservation"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: ModifyCapacityReservationRequest)
        o.output = Shapes::ShapeRef.new(shape: ModifyCapacityReservationResult)
      end)

      api.add_operation(:modify_capacity_reservation_fleet, Seahorse::Model::Operation.new.tap do |o|
        o.name = "ModifyCapacityReservationFleet"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: ModifyCapacityReservationFleetRequest)
        o.output = Shapes::ShapeRef.new(shape: ModifyCapacityReservationFleetResult)
      end)

      api.add_operation(:modify_client_vpn_endpoint, Seahorse::Model::Operation.new.tap do |o|
        o.name = "ModifyClientVpnEndpoint"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: ModifyClientVpnEndpointRequest)
        o.output = Shapes::ShapeRef.new(shape: ModifyClientVpnEndpointResult)
      end)

      api.add_operation(:modify_default_credit_specification, Seahorse::Model::Operation.new.tap do |o|
        o.name = "ModifyDefaultCreditSpecification"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: ModifyDefaultCreditSpecificationRequest)
        o.output = Shapes::ShapeRef.new(shape: ModifyDefaultCreditSpecificationResult)
      end)

      api.add_operation(:modify_ebs_default_kms_key_id, Seahorse::Model::Operation.new.tap do |o|
        o.name = "ModifyEbsDefaultKmsKeyId"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: ModifyEbsDefaultKmsKeyIdRequest)
        o.output = Shapes::ShapeRef.new(shape: ModifyEbsDefaultKmsKeyIdResult)
      end)

      api.add_operation(:modify_fleet, Seahorse::Model::Operation.new.tap do |o|
        o.name = "ModifyFleet"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: ModifyFleetRequest)
        o.output = Shapes::ShapeRef.new(shape: ModifyFleetResult)
      end)

      api.add_operation(:modify_fpga_image_attribute, Seahorse::Model::Operation.new.tap do |o|
        o.name = "ModifyFpgaImageAttribute"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: ModifyFpgaImageAttributeRequest)
        o.output = Shapes::ShapeRef.new(shape: ModifyFpgaImageAttributeResult)
      end)

      api.add_operation(:modify_hosts, Seahorse::Model::Operation.new.tap do |o|
        o.name = "ModifyHosts"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: ModifyHostsRequest)
        o.output = Shapes::ShapeRef.new(shape: ModifyHostsResult)
      end)

      api.add_operation(:modify_id_format, Seahorse::Model::Operation.new.tap do |o|
        o.name = "ModifyIdFormat"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: ModifyIdFormatRequest)
        o.output = Shapes::ShapeRef.new(shape: Shapes::StructureShape.new(struct_class: Aws::EmptyStructure))
      end)

      api.add_operation(:modify_identity_id_format, Seahorse::Model::Operation.new.tap do |o|
        o.name = "ModifyIdentityIdFormat"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: ModifyIdentityIdFormatRequest)
        o.output = Shapes::ShapeRef.new(shape: Shapes::StructureShape.new(struct_class: Aws::EmptyStructure))
      end)

      api.add_operation(:modify_image_attribute, Seahorse::Model::Operation.new.tap do |o|
        o.name = "ModifyImageAttribute"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: ModifyImageAttributeRequest)
        o.output = Shapes::ShapeRef.new(shape: Shapes::StructureShape.new(struct_class: Aws::EmptyStructure))
      end)

      api.add_operation(:modify_instance_attribute, Seahorse::Model::Operation.new.tap do |o|
        o.name = "ModifyInstanceAttribute"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: ModifyInstanceAttributeRequest)
        o.output = Shapes::ShapeRef.new(shape: Shapes::StructureShape.new(struct_class: Aws::EmptyStructure))
      end)

      api.add_operation(:modify_instance_capacity_reservation_attributes, Seahorse::Model::Operation.new.tap do |o|
        o.name = "ModifyInstanceCapacityReservationAttributes"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: ModifyInstanceCapacityReservationAttributesRequest)
        o.output = Shapes::ShapeRef.new(shape: ModifyInstanceCapacityReservationAttributesResult)
      end)

      api.add_operation(:modify_instance_cpu_options, Seahorse::Model::Operation.new.tap do |o|
        o.name = "ModifyInstanceCpuOptions"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: ModifyInstanceCpuOptionsRequest)
        o.output = Shapes::ShapeRef.new(shape: ModifyInstanceCpuOptionsResult)
      end)

      api.add_operation(:modify_instance_credit_specification, Seahorse::Model::Operation.new.tap do |o|
        o.name = "ModifyInstanceCreditSpecification"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: ModifyInstanceCreditSpecificationRequest)
        o.output = Shapes::ShapeRef.new(shape: ModifyInstanceCreditSpecificationResult)
      end)

      api.add_operation(:modify_instance_event_start_time, Seahorse::Model::Operation.new.tap do |o|
        o.name = "ModifyInstanceEventStartTime"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: ModifyInstanceEventStartTimeRequest)
        o.output = Shapes::ShapeRef.new(shape: ModifyInstanceEventStartTimeResult)
      end)

      api.add_operation(:modify_instance_event_window, Seahorse::Model::Operation.new.tap do |o|
        o.name = "ModifyInstanceEventWindow"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: ModifyInstanceEventWindowRequest)
        o.output = Shapes::ShapeRef.new(shape: ModifyInstanceEventWindowResult)
      end)

      api.add_operation(:modify_instance_maintenance_options, Seahorse::Model::Operation.new.tap do |o|
        o.name = "ModifyInstanceMaintenanceOptions"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: ModifyInstanceMaintenanceOptionsRequest)
        o.output = Shapes::ShapeRef.new(shape: ModifyInstanceMaintenanceOptionsResult)
      end)

      api.add_operation(:modify_instance_metadata_defaults, Seahorse::Model::Operation.new.tap do |o|
        o.name = "ModifyInstanceMetadataDefaults"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: ModifyInstanceMetadataDefaultsRequest)
        o.output = Shapes::ShapeRef.new(shape: ModifyInstanceMetadataDefaultsResult)
      end)

      api.add_operation(:modify_instance_metadata_options, Seahorse::Model::Operation.new.tap do |o|
        o.name = "ModifyInstanceMetadataOptions"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: ModifyInstanceMetadataOptionsRequest)
        o.output = Shapes::ShapeRef.new(shape: ModifyInstanceMetadataOptionsResult)
      end)

      api.add_operation(:modify_instance_network_performance_options, Seahorse::Model::Operation.new.tap do |o|
        o.name = "ModifyInstanceNetworkPerformanceOptions"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: ModifyInstanceNetworkPerformanceRequest)
        o.output = Shapes::ShapeRef.new(shape: ModifyInstanceNetworkPerformanceResult)
      end)

      api.add_operation(:modify_instance_placement, Seahorse::Model::Operation.new.tap do |o|
        o.name = "ModifyInstancePlacement"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: ModifyInstancePlacementRequest)
        o.output = Shapes::ShapeRef.new(shape: ModifyInstancePlacementResult)
      end)

      api.add_operation(:modify_ipam, Seahorse::Model::Operation.new.tap do |o|
        o.name = "ModifyIpam"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: ModifyIpamRequest)
        o.output = Shapes::ShapeRef.new(shape: ModifyIpamResult)
      end)

      api.add_operation(:modify_ipam_pool, Seahorse::Model::Operation.new.tap do |o|
        o.name = "ModifyIpamPool"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: ModifyIpamPoolRequest)
        o.output = Shapes::ShapeRef.new(shape: ModifyIpamPoolResult)
      end)

      api.add_operation(:modify_ipam_resource_cidr, Seahorse::Model::Operation.new.tap do |o|
        o.name = "ModifyIpamResourceCidr"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: ModifyIpamResourceCidrRequest)
        o.output = Shapes::ShapeRef.new(shape: ModifyIpamResourceCidrResult)
      end)

      api.add_operation(:modify_ipam_resource_discovery, Seahorse::Model::Operation.new.tap do |o|
        o.name = "ModifyIpamResourceDiscovery"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: ModifyIpamResourceDiscoveryRequest)
        o.output = Shapes::ShapeRef.new(shape: ModifyIpamResourceDiscoveryResult)
      end)

      api.add_operation(:modify_ipam_scope, Seahorse::Model::Operation.new.tap do |o|
        o.name = "ModifyIpamScope"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: ModifyIpamScopeRequest)
        o.output = Shapes::ShapeRef.new(shape: ModifyIpamScopeResult)
      end)

      api.add_operation(:modify_launch_template, Seahorse::Model::Operation.new.tap do |o|
        o.name = "ModifyLaunchTemplate"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: ModifyLaunchTemplateRequest)
        o.output = Shapes::ShapeRef.new(shape: ModifyLaunchTemplateResult)
      end)

      api.add_operation(:modify_local_gateway_route, Seahorse::Model::Operation.new.tap do |o|
        o.name = "ModifyLocalGatewayRoute"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: ModifyLocalGatewayRouteRequest)
        o.output = Shapes::ShapeRef.new(shape: ModifyLocalGatewayRouteResult)
      end)

      api.add_operation(:modify_managed_prefix_list, Seahorse::Model::Operation.new.tap do |o|
        o.name = "ModifyManagedPrefixList"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: ModifyManagedPrefixListRequest)
        o.output = Shapes::ShapeRef.new(shape: ModifyManagedPrefixListResult)
      end)

      api.add_operation(:modify_network_interface_attribute, Seahorse::Model::Operation.new.tap do |o|
        o.name = "ModifyNetworkInterfaceAttribute"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: ModifyNetworkInterfaceAttributeRequest)
        o.output = Shapes::ShapeRef.new(shape: Shapes::StructureShape.new(struct_class: Aws::EmptyStructure))
      end)

      api.add_operation(:modify_private_dns_name_options, Seahorse::Model::Operation.new.tap do |o|
        o.name = "ModifyPrivateDnsNameOptions"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: ModifyPrivateDnsNameOptionsRequest)
        o.output = Shapes::ShapeRef.new(shape: ModifyPrivateDnsNameOptionsResult)
      end)

      api.add_operation(:modify_reserved_instances, Seahorse::Model::Operation.new.tap do |o|
        o.name = "ModifyReservedInstances"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: ModifyReservedInstancesRequest)
        o.output = Shapes::ShapeRef.new(shape: ModifyReservedInstancesResult)
      end)

      api.add_operation(:modify_security_group_rules, Seahorse::Model::Operation.new.tap do |o|
        o.name = "ModifySecurityGroupRules"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: ModifySecurityGroupRulesRequest)
        o.output = Shapes::ShapeRef.new(shape: ModifySecurityGroupRulesResult)
      end)

      api.add_operation(:modify_snapshot_attribute, Seahorse::Model::Operation.new.tap do |o|
        o.name = "ModifySnapshotAttribute"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: ModifySnapshotAttributeRequest)
        o.output = Shapes::ShapeRef.new(shape: Shapes::StructureShape.new(struct_class: Aws::EmptyStructure))
      end)

      api.add_operation(:modify_snapshot_tier, Seahorse::Model::Operation.new.tap do |o|
        o.name = "ModifySnapshotTier"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: ModifySnapshotTierRequest)
        o.output = Shapes::ShapeRef.new(shape: ModifySnapshotTierResult)
      end)

      api.add_operation(:modify_spot_fleet_request, Seahorse::Model::Operation.new.tap do |o|
        o.name = "ModifySpotFleetRequest"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: ModifySpotFleetRequestRequest)
        o.output = Shapes::ShapeRef.new(shape: ModifySpotFleetRequestResponse)
      end)

      api.add_operation(:modify_subnet_attribute, Seahorse::Model::Operation.new.tap do |o|
        o.name = "ModifySubnetAttribute"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: ModifySubnetAttributeRequest)
        o.output = Shapes::ShapeRef.new(shape: Shapes::StructureShape.new(struct_class: Aws::EmptyStructure))
      end)

      api.add_operation(:modify_traffic_mirror_filter_network_services, Seahorse::Model::Operation.new.tap do |o|
        o.name = "ModifyTrafficMirrorFilterNetworkServices"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: ModifyTrafficMirrorFilterNetworkServicesRequest)
        o.output = Shapes::ShapeRef.new(shape: ModifyTrafficMirrorFilterNetworkServicesResult)
      end)

      api.add_operation(:modify_traffic_mirror_filter_rule, Seahorse::Model::Operation.new.tap do |o|
        o.name = "ModifyTrafficMirrorFilterRule"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: ModifyTrafficMirrorFilterRuleRequest)
        o.output = Shapes::ShapeRef.new(shape: ModifyTrafficMirrorFilterRuleResult)
      end)

      api.add_operation(:modify_traffic_mirror_session, Seahorse::Model::Operation.new.tap do |o|
        o.name = "ModifyTrafficMirrorSession"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: ModifyTrafficMirrorSessionRequest)
        o.output = Shapes::ShapeRef.new(shape: ModifyTrafficMirrorSessionResult)
      end)

      api.add_operation(:modify_transit_gateway, Seahorse::Model::Operation.new.tap do |o|
        o.name = "ModifyTransitGateway"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: ModifyTransitGatewayRequest)
        o.output = Shapes::ShapeRef.new(shape: ModifyTransitGatewayResult)
      end)

      api.add_operation(:modify_transit_gateway_prefix_list_reference, Seahorse::Model::Operation.new.tap do |o|
        o.name = "ModifyTransitGatewayPrefixListReference"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: ModifyTransitGatewayPrefixListReferenceRequest)
        o.output = Shapes::ShapeRef.new(shape: ModifyTransitGatewayPrefixListReferenceResult)
      end)

      api.add_operation(:modify_transit_gateway_vpc_attachment, Seahorse::Model::Operation.new.tap do |o|
        o.name = "ModifyTransitGatewayVpcAttachment"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: ModifyTransitGatewayVpcAttachmentRequest)
        o.output = Shapes::ShapeRef.new(shape: ModifyTransitGatewayVpcAttachmentResult)
      end)

      api.add_operation(:modify_verified_access_endpoint, Seahorse::Model::Operation.new.tap do |o|
        o.name = "ModifyVerifiedAccessEndpoint"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: ModifyVerifiedAccessEndpointRequest)
        o.output = Shapes::ShapeRef.new(shape: ModifyVerifiedAccessEndpointResult)
      end)

      api.add_operation(:modify_verified_access_endpoint_policy, Seahorse::Model::Operation.new.tap do |o|
        o.name = "ModifyVerifiedAccessEndpointPolicy"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: ModifyVerifiedAccessEndpointPolicyRequest)
        o.output = Shapes::ShapeRef.new(shape: ModifyVerifiedAccessEndpointPolicyResult)
      end)

      api.add_operation(:modify_verified_access_group, Seahorse::Model::Operation.new.tap do |o|
        o.name = "ModifyVerifiedAccessGroup"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: ModifyVerifiedAccessGroupRequest)
        o.output = Shapes::ShapeRef.new(shape: ModifyVerifiedAccessGroupResult)
      end)

      api.add_operation(:modify_verified_access_group_policy, Seahorse::Model::Operation.new.tap do |o|
        o.name = "ModifyVerifiedAccessGroupPolicy"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: ModifyVerifiedAccessGroupPolicyRequest)
        o.output = Shapes::ShapeRef.new(shape: ModifyVerifiedAccessGroupPolicyResult)
      end)

      api.add_operation(:modify_verified_access_instance, Seahorse::Model::Operation.new.tap do |o|
        o.name = "ModifyVerifiedAccessInstance"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: ModifyVerifiedAccessInstanceRequest)
        o.output = Shapes::ShapeRef.new(shape: ModifyVerifiedAccessInstanceResult)
      end)

      api.add_operation(:modify_verified_access_instance_logging_configuration, Seahorse::Model::Operation.new.tap do |o|
        o.name = "ModifyVerifiedAccessInstanceLoggingConfiguration"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: ModifyVerifiedAccessInstanceLoggingConfigurationRequest)
        o.output = Shapes::ShapeRef.new(shape: ModifyVerifiedAccessInstanceLoggingConfigurationResult)
      end)

      api.add_operation(:modify_verified_access_trust_provider, Seahorse::Model::Operation.new.tap do |o|
        o.name = "ModifyVerifiedAccessTrustProvider"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: ModifyVerifiedAccessTrustProviderRequest)
        o.output = Shapes::ShapeRef.new(shape: ModifyVerifiedAccessTrustProviderResult)
      end)

      api.add_operation(:modify_volume, Seahorse::Model::Operation.new.tap do |o|
        o.name = "ModifyVolume"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: ModifyVolumeRequest)
        o.output = Shapes::ShapeRef.new(shape: ModifyVolumeResult)
      end)

      api.add_operation(:modify_volume_attribute, Seahorse::Model::Operation.new.tap do |o|
        o.name = "ModifyVolumeAttribute"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: ModifyVolumeAttributeRequest)
        o.output = Shapes::ShapeRef.new(shape: Shapes::StructureShape.new(struct_class: Aws::EmptyStructure))
      end)

      api.add_operation(:modify_vpc_attribute, Seahorse::Model::Operation.new.tap do |o|
        o.name = "ModifyVpcAttribute"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: ModifyVpcAttributeRequest)
        o.output = Shapes::ShapeRef.new(shape: Shapes::StructureShape.new(struct_class: Aws::EmptyStructure))
      end)

      api.add_operation(:modify_vpc_block_public_access_exclusion, Seahorse::Model::Operation.new.tap do |o|
        o.name = "ModifyVpcBlockPublicAccessExclusion"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: ModifyVpcBlockPublicAccessExclusionRequest)
        o.output = Shapes::ShapeRef.new(shape: ModifyVpcBlockPublicAccessExclusionResult)
      end)

      api.add_operation(:modify_vpc_block_public_access_options, Seahorse::Model::Operation.new.tap do |o|
        o.name = "ModifyVpcBlockPublicAccessOptions"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: ModifyVpcBlockPublicAccessOptionsRequest)
        o.output = Shapes::ShapeRef.new(shape: ModifyVpcBlockPublicAccessOptionsResult)
      end)

      api.add_operation(:modify_vpc_endpoint, Seahorse::Model::Operation.new.tap do |o|
        o.name = "ModifyVpcEndpoint"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: ModifyVpcEndpointRequest)
        o.output = Shapes::ShapeRef.new(shape: ModifyVpcEndpointResult)
      end)

      api.add_operation(:modify_vpc_endpoint_connection_notification, Seahorse::Model::Operation.new.tap do |o|
        o.name = "ModifyVpcEndpointConnectionNotification"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: ModifyVpcEndpointConnectionNotificationRequest)
        o.output = Shapes::ShapeRef.new(shape: ModifyVpcEndpointConnectionNotificationResult)
      end)

      api.add_operation(:modify_vpc_endpoint_service_configuration, Seahorse::Model::Operation.new.tap do |o|
        o.name = "ModifyVpcEndpointServiceConfiguration"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: ModifyVpcEndpointServiceConfigurationRequest)
        o.output = Shapes::ShapeRef.new(shape: ModifyVpcEndpointServiceConfigurationResult)
      end)

      api.add_operation(:modify_vpc_endpoint_service_payer_responsibility, Seahorse::Model::Operation.new.tap do |o|
        o.name = "ModifyVpcEndpointServicePayerResponsibility"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: ModifyVpcEndpointServicePayerResponsibilityRequest)
        o.output = Shapes::ShapeRef.new(shape: ModifyVpcEndpointServicePayerResponsibilityResult)
      end)

      api.add_operation(:modify_vpc_endpoint_service_permissions, Seahorse::Model::Operation.new.tap do |o|
        o.name = "ModifyVpcEndpointServicePermissions"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: ModifyVpcEndpointServicePermissionsRequest)
        o.output = Shapes::ShapeRef.new(shape: ModifyVpcEndpointServicePermissionsResult)
      end)

      api.add_operation(:modify_vpc_peering_connection_options, Seahorse::Model::Operation.new.tap do |o|
        o.name = "ModifyVpcPeeringConnectionOptions"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: ModifyVpcPeeringConnectionOptionsRequest)
        o.output = Shapes::ShapeRef.new(shape: ModifyVpcPeeringConnectionOptionsResult)
      end)

      api.add_operation(:modify_vpc_tenancy, Seahorse::Model::Operation.new.tap do |o|
        o.name = "ModifyVpcTenancy"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: ModifyVpcTenancyRequest)
        o.output = Shapes::ShapeRef.new(shape: ModifyVpcTenancyResult)
      end)

      api.add_operation(:modify_vpn_connection, Seahorse::Model::Operation.new.tap do |o|
        o.name = "ModifyVpnConnection"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: ModifyVpnConnectionRequest)
        o.output = Shapes::ShapeRef.new(shape: ModifyVpnConnectionResult)
      end)

      api.add_operation(:modify_vpn_connection_options, Seahorse::Model::Operation.new.tap do |o|
        o.name = "ModifyVpnConnectionOptions"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: ModifyVpnConnectionOptionsRequest)
        o.output = Shapes::ShapeRef.new(shape: ModifyVpnConnectionOptionsResult)
      end)

      api.add_operation(:modify_vpn_tunnel_certificate, Seahorse::Model::Operation.new.tap do |o|
        o.name = "ModifyVpnTunnelCertificate"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: ModifyVpnTunnelCertificateRequest)
        o.output = Shapes::ShapeRef.new(shape: ModifyVpnTunnelCertificateResult)
      end)

      api.add_operation(:modify_vpn_tunnel_options, Seahorse::Model::Operation.new.tap do |o|
        o.name = "ModifyVpnTunnelOptions"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: ModifyVpnTunnelOptionsRequest)
        o.output = Shapes::ShapeRef.new(shape: ModifyVpnTunnelOptionsResult)
      end)

      api.add_operation(:monitor_instances, Seahorse::Model::Operation.new.tap do |o|
        o.name = "MonitorInstances"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: MonitorInstancesRequest)
        o.output = Shapes::ShapeRef.new(shape: MonitorInstancesResult)
      end)

      api.add_operation(:move_address_to_vpc, Seahorse::Model::Operation.new.tap do |o|
        o.name = "MoveAddressToVpc"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: MoveAddressToVpcRequest)
        o.output = Shapes::ShapeRef.new(shape: MoveAddressToVpcResult)
      end)

      api.add_operation(:move_byoip_cidr_to_ipam, Seahorse::Model::Operation.new.tap do |o|
        o.name = "MoveByoipCidrToIpam"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: MoveByoipCidrToIpamRequest)
        o.output = Shapes::ShapeRef.new(shape: MoveByoipCidrToIpamResult)
      end)

      api.add_operation(:move_capacity_reservation_instances, Seahorse::Model::Operation.new.tap do |o|
        o.name = "MoveCapacityReservationInstances"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: MoveCapacityReservationInstancesRequest)
        o.output = Shapes::ShapeRef.new(shape: MoveCapacityReservationInstancesResult)
      end)

      api.add_operation(:provision_byoip_cidr, Seahorse::Model::Operation.new.tap do |o|
        o.name = "ProvisionByoipCidr"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: ProvisionByoipCidrRequest)
        o.output = Shapes::ShapeRef.new(shape: ProvisionByoipCidrResult)
      end)

      api.add_operation(:provision_ipam_byoasn, Seahorse::Model::Operation.new.tap do |o|
        o.name = "ProvisionIpamByoasn"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: ProvisionIpamByoasnRequest)
        o.output = Shapes::ShapeRef.new(shape: ProvisionIpamByoasnResult)
      end)

      api.add_operation(:provision_ipam_pool_cidr, Seahorse::Model::Operation.new.tap do |o|
        o.name = "ProvisionIpamPoolCidr"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: ProvisionIpamPoolCidrRequest)
        o.output = Shapes::ShapeRef.new(shape: ProvisionIpamPoolCidrResult)
      end)

      api.add_operation(:provision_public_ipv_4_pool_cidr, Seahorse::Model::Operation.new.tap do |o|
        o.name = "ProvisionPublicIpv4PoolCidr"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: ProvisionPublicIpv4PoolCidrRequest)
        o.output = Shapes::ShapeRef.new(shape: ProvisionPublicIpv4PoolCidrResult)
      end)

      api.add_operation(:purchase_capacity_block, Seahorse::Model::Operation.new.tap do |o|
        o.name = "PurchaseCapacityBlock"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: PurchaseCapacityBlockRequest)
        o.output = Shapes::ShapeRef.new(shape: PurchaseCapacityBlockResult)
      end)

      api.add_operation(:purchase_capacity_block_extension, Seahorse::Model::Operation.new.tap do |o|
        o.name = "PurchaseCapacityBlockExtension"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: PurchaseCapacityBlockExtensionRequest)
        o.output = Shapes::ShapeRef.new(shape: PurchaseCapacityBlockExtensionResult)
      end)

      api.add_operation(:purchase_host_reservation, Seahorse::Model::Operation.new.tap do |o|
        o.name = "PurchaseHostReservation"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: PurchaseHostReservationRequest)
        o.output = Shapes::ShapeRef.new(shape: PurchaseHostReservationResult)
      end)

      api.add_operation(:purchase_reserved_instances_offering, Seahorse::Model::Operation.new.tap do |o|
        o.name = "PurchaseReservedInstancesOffering"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: PurchaseReservedInstancesOfferingRequest)
        o.output = Shapes::ShapeRef.new(shape: PurchaseReservedInstancesOfferingResult)
      end)

      api.add_operation(:purchase_scheduled_instances, Seahorse::Model::Operation.new.tap do |o|
        o.name = "PurchaseScheduledInstances"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: PurchaseScheduledInstancesRequest)
        o.output = Shapes::ShapeRef.new(shape: PurchaseScheduledInstancesResult)
      end)

      api.add_operation(:reboot_instances, Seahorse::Model::Operation.new.tap do |o|
        o.name = "RebootInstances"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: RebootInstancesRequest)
        o.output = Shapes::ShapeRef.new(shape: Shapes::StructureShape.new(struct_class: Aws::EmptyStructure))
      end)

      api.add_operation(:register_image, Seahorse::Model::Operation.new.tap do |o|
        o.name = "RegisterImage"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: RegisterImageRequest)
        o.output = Shapes::ShapeRef.new(shape: RegisterImageResult)
      end)

      api.add_operation(:register_instance_event_notification_attributes, Seahorse::Model::Operation.new.tap do |o|
        o.name = "RegisterInstanceEventNotificationAttributes"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: RegisterInstanceEventNotificationAttributesRequest)
        o.output = Shapes::ShapeRef.new(shape: RegisterInstanceEventNotificationAttributesResult)
      end)

      api.add_operation(:register_transit_gateway_multicast_group_members, Seahorse::Model::Operation.new.tap do |o|
        o.name = "RegisterTransitGatewayMulticastGroupMembers"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: RegisterTransitGatewayMulticastGroupMembersRequest)
        o.output = Shapes::ShapeRef.new(shape: RegisterTransitGatewayMulticastGroupMembersResult)
      end)

      api.add_operation(:register_transit_gateway_multicast_group_sources, Seahorse::Model::Operation.new.tap do |o|
        o.name = "RegisterTransitGatewayMulticastGroupSources"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: RegisterTransitGatewayMulticastGroupSourcesRequest)
        o.output = Shapes::ShapeRef.new(shape: RegisterTransitGatewayMulticastGroupSourcesResult)
      end)

      api.add_operation(:reject_capacity_reservation_billing_ownership, Seahorse::Model::Operation.new.tap do |o|
        o.name = "RejectCapacityReservationBillingOwnership"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: RejectCapacityReservationBillingOwnershipRequest)
        o.output = Shapes::ShapeRef.new(shape: RejectCapacityReservationBillingOwnershipResult)
      end)

      api.add_operation(:reject_transit_gateway_multicast_domain_associations, Seahorse::Model::Operation.new.tap do |o|
        o.name = "RejectTransitGatewayMulticastDomainAssociations"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: RejectTransitGatewayMulticastDomainAssociationsRequest)
        o.output = Shapes::ShapeRef.new(shape: RejectTransitGatewayMulticastDomainAssociationsResult)
      end)

      api.add_operation(:reject_transit_gateway_peering_attachment, Seahorse::Model::Operation.new.tap do |o|
        o.name = "RejectTransitGatewayPeeringAttachment"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: RejectTransitGatewayPeeringAttachmentRequest)
        o.output = Shapes::ShapeRef.new(shape: RejectTransitGatewayPeeringAttachmentResult)
      end)

      api.add_operation(:reject_transit_gateway_vpc_attachment, Seahorse::Model::Operation.new.tap do |o|
        o.name = "RejectTransitGatewayVpcAttachment"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: RejectTransitGatewayVpcAttachmentRequest)
        o.output = Shapes::ShapeRef.new(shape: RejectTransitGatewayVpcAttachmentResult)
      end)

      api.add_operation(:reject_vpc_endpoint_connections, Seahorse::Model::Operation.new.tap do |o|
        o.name = "RejectVpcEndpointConnections"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: RejectVpcEndpointConnectionsRequest)
        o.output = Shapes::ShapeRef.new(shape: RejectVpcEndpointConnectionsResult)
      end)

      api.add_operation(:reject_vpc_peering_connection, Seahorse::Model::Operation.new.tap do |o|
        o.name = "RejectVpcPeeringConnection"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: RejectVpcPeeringConnectionRequest)
        o.output = Shapes::ShapeRef.new(shape: RejectVpcPeeringConnectionResult)
      end)

      api.add_operation(:release_address, Seahorse::Model::Operation.new.tap do |o|
        o.name = "ReleaseAddress"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: ReleaseAddressRequest)
        o.output = Shapes::ShapeRef.new(shape: Shapes::StructureShape.new(struct_class: Aws::EmptyStructure))
      end)

      api.add_operation(:release_hosts, Seahorse::Model::Operation.new.tap do |o|
        o.name = "ReleaseHosts"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: ReleaseHostsRequest)
        o.output = Shapes::ShapeRef.new(shape: ReleaseHostsResult)
      end)

      api.add_operation(:release_ipam_pool_allocation, Seahorse::Model::Operation.new.tap do |o|
        o.name = "ReleaseIpamPoolAllocation"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: ReleaseIpamPoolAllocationRequest)
        o.output = Shapes::ShapeRef.new(shape: ReleaseIpamPoolAllocationResult)
      end)

      api.add_operation(:replace_iam_instance_profile_association, Seahorse::Model::Operation.new.tap do |o|
        o.name = "ReplaceIamInstanceProfileAssociation"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: ReplaceIamInstanceProfileAssociationRequest)
        o.output = Shapes::ShapeRef.new(shape: ReplaceIamInstanceProfileAssociationResult)
      end)

      api.add_operation(:replace_image_criteria_in_allowed_images_settings, Seahorse::Model::Operation.new.tap do |o|
        o.name = "ReplaceImageCriteriaInAllowedImagesSettings"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: ReplaceImageCriteriaInAllowedImagesSettingsRequest)
        o.output = Shapes::ShapeRef.new(shape: ReplaceImageCriteriaInAllowedImagesSettingsResult)
      end)

      api.add_operation(:replace_network_acl_association, Seahorse::Model::Operation.new.tap do |o|
        o.name = "ReplaceNetworkAclAssociation"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: ReplaceNetworkAclAssociationRequest)
        o.output = Shapes::ShapeRef.new(shape: ReplaceNetworkAclAssociationResult)
      end)

      api.add_operation(:replace_network_acl_entry, Seahorse::Model::Operation.new.tap do |o|
        o.name = "ReplaceNetworkAclEntry"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: ReplaceNetworkAclEntryRequest)
        o.output = Shapes::ShapeRef.new(shape: Shapes::StructureShape.new(struct_class: Aws::EmptyStructure))
      end)

      api.add_operation(:replace_route, Seahorse::Model::Operation.new.tap do |o|
        o.name = "ReplaceRoute"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: ReplaceRouteRequest)
        o.output = Shapes::ShapeRef.new(shape: Shapes::StructureShape.new(struct_class: Aws::EmptyStructure))
      end)

      api.add_operation(:replace_route_table_association, Seahorse::Model::Operation.new.tap do |o|
        o.name = "ReplaceRouteTableAssociation"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: ReplaceRouteTableAssociationRequest)
        o.output = Shapes::ShapeRef.new(shape: ReplaceRouteTableAssociationResult)
      end)

      api.add_operation(:replace_transit_gateway_route, Seahorse::Model::Operation.new.tap do |o|
        o.name = "ReplaceTransitGatewayRoute"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: ReplaceTransitGatewayRouteRequest)
        o.output = Shapes::ShapeRef.new(shape: ReplaceTransitGatewayRouteResult)
      end)

      api.add_operation(:replace_vpn_tunnel, Seahorse::Model::Operation.new.tap do |o|
        o.name = "ReplaceVpnTunnel"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: ReplaceVpnTunnelRequest)
        o.output = Shapes::ShapeRef.new(shape: ReplaceVpnTunnelResult)
      end)

      api.add_operation(:report_instance_status, Seahorse::Model::Operation.new.tap do |o|
        o.name = "ReportInstanceStatus"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: ReportInstanceStatusRequest)
        o.output = Shapes::ShapeRef.new(shape: Shapes::StructureShape.new(struct_class: Aws::EmptyStructure))
      end)

      api.add_operation(:request_spot_fleet, Seahorse::Model::Operation.new.tap do |o|
        o.name = "RequestSpotFleet"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: RequestSpotFleetRequest)
        o.output = Shapes::ShapeRef.new(shape: RequestSpotFleetResponse)
      end)

      api.add_operation(:request_spot_instances, Seahorse::Model::Operation.new.tap do |o|
        o.name = "RequestSpotInstances"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: RequestSpotInstancesRequest)
        o.output = Shapes::ShapeRef.new(shape: RequestSpotInstancesResult)
      end)

      api.add_operation(:reset_address_attribute, Seahorse::Model::Operation.new.tap do |o|
        o.name = "ResetAddressAttribute"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: ResetAddressAttributeRequest)
        o.output = Shapes::ShapeRef.new(shape: ResetAddressAttributeResult)
      end)

      api.add_operation(:reset_ebs_default_kms_key_id, Seahorse::Model::Operation.new.tap do |o|
        o.name = "ResetEbsDefaultKmsKeyId"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: ResetEbsDefaultKmsKeyIdRequest)
        o.output = Shapes::ShapeRef.new(shape: ResetEbsDefaultKmsKeyIdResult)
      end)

      api.add_operation(:reset_fpga_image_attribute, Seahorse::Model::Operation.new.tap do |o|
        o.name = "ResetFpgaImageAttribute"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: ResetFpgaImageAttributeRequest)
        o.output = Shapes::ShapeRef.new(shape: ResetFpgaImageAttributeResult)
      end)

      api.add_operation(:reset_image_attribute, Seahorse::Model::Operation.new.tap do |o|
        o.name = "ResetImageAttribute"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: ResetImageAttributeRequest)
        o.output = Shapes::ShapeRef.new(shape: Shapes::StructureShape.new(struct_class: Aws::EmptyStructure))
      end)

      api.add_operation(:reset_instance_attribute, Seahorse::Model::Operation.new.tap do |o|
        o.name = "ResetInstanceAttribute"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: ResetInstanceAttributeRequest)
        o.output = Shapes::ShapeRef.new(shape: Shapes::StructureShape.new(struct_class: Aws::EmptyStructure))
      end)

      api.add_operation(:reset_network_interface_attribute, Seahorse::Model::Operation.new.tap do |o|
        o.name = "ResetNetworkInterfaceAttribute"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: ResetNetworkInterfaceAttributeRequest)
        o.output = Shapes::ShapeRef.new(shape: Shapes::StructureShape.new(struct_class: Aws::EmptyStructure))
      end)

      api.add_operation(:reset_snapshot_attribute, Seahorse::Model::Operation.new.tap do |o|
        o.name = "ResetSnapshotAttribute"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: ResetSnapshotAttributeRequest)
        o.output = Shapes::ShapeRef.new(shape: Shapes::StructureShape.new(struct_class: Aws::EmptyStructure))
      end)

      api.add_operation(:restore_address_to_classic, Seahorse::Model::Operation.new.tap do |o|
        o.name = "RestoreAddressToClassic"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: RestoreAddressToClassicRequest)
        o.output = Shapes::ShapeRef.new(shape: RestoreAddressToClassicResult)
      end)

      api.add_operation(:restore_image_from_recycle_bin, Seahorse::Model::Operation.new.tap do |o|
        o.name = "RestoreImageFromRecycleBin"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: RestoreImageFromRecycleBinRequest)
        o.output = Shapes::ShapeRef.new(shape: RestoreImageFromRecycleBinResult)
      end)

      api.add_operation(:restore_managed_prefix_list_version, Seahorse::Model::Operation.new.tap do |o|
        o.name = "RestoreManagedPrefixListVersion"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: RestoreManagedPrefixListVersionRequest)
        o.output = Shapes::ShapeRef.new(shape: RestoreManagedPrefixListVersionResult)
      end)

      api.add_operation(:restore_snapshot_from_recycle_bin, Seahorse::Model::Operation.new.tap do |o|
        o.name = "RestoreSnapshotFromRecycleBin"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: RestoreSnapshotFromRecycleBinRequest)
        o.output = Shapes::ShapeRef.new(shape: RestoreSnapshotFromRecycleBinResult)
      end)

      api.add_operation(:restore_snapshot_tier, Seahorse::Model::Operation.new.tap do |o|
        o.name = "RestoreSnapshotTier"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: RestoreSnapshotTierRequest)
        o.output = Shapes::ShapeRef.new(shape: RestoreSnapshotTierResult)
      end)

      api.add_operation(:revoke_client_vpn_ingress, Seahorse::Model::Operation.new.tap do |o|
        o.name = "RevokeClientVpnIngress"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: RevokeClientVpnIngressRequest)
        o.output = Shapes::ShapeRef.new(shape: RevokeClientVpnIngressResult)
      end)

      api.add_operation(:revoke_security_group_egress, Seahorse::Model::Operation.new.tap do |o|
        o.name = "RevokeSecurityGroupEgress"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: RevokeSecurityGroupEgressRequest)
        o.output = Shapes::ShapeRef.new(shape: RevokeSecurityGroupEgressResult)
      end)

      api.add_operation(:revoke_security_group_ingress, Seahorse::Model::Operation.new.tap do |o|
        o.name = "RevokeSecurityGroupIngress"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: RevokeSecurityGroupIngressRequest)
        o.output = Shapes::ShapeRef.new(shape: RevokeSecurityGroupIngressResult)
      end)

      api.add_operation(:run_instances, Seahorse::Model::Operation.new.tap do |o|
        o.name = "RunInstances"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: RunInstancesRequest)
        o.output = Shapes::ShapeRef.new(shape: Reservation)
      end)

      api.add_operation(:run_scheduled_instances, Seahorse::Model::Operation.new.tap do |o|
        o.name = "RunScheduledInstances"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: RunScheduledInstancesRequest)
        o.output = Shapes::ShapeRef.new(shape: RunScheduledInstancesResult)
      end)

      api.add_operation(:search_local_gateway_routes, Seahorse::Model::Operation.new.tap do |o|
        o.name = "SearchLocalGatewayRoutes"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: SearchLocalGatewayRoutesRequest)
        o.output = Shapes::ShapeRef.new(shape: SearchLocalGatewayRoutesResult)
        o[:pager] = Aws::Pager.new(
          limit_key: "max_results",
          tokens: {
            "next_token" => "next_token"
          }
        )
      end)

      api.add_operation(:search_transit_gateway_multicast_groups, Seahorse::Model::Operation.new.tap do |o|
        o.name = "SearchTransitGatewayMulticastGroups"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: SearchTransitGatewayMulticastGroupsRequest)
        o.output = Shapes::ShapeRef.new(shape: SearchTransitGatewayMulticastGroupsResult)
        o[:pager] = Aws::Pager.new(
          limit_key: "max_results",
          tokens: {
            "next_token" => "next_token"
          }
        )
      end)

      api.add_operation(:search_transit_gateway_routes, Seahorse::Model::Operation.new.tap do |o|
        o.name = "SearchTransitGatewayRoutes"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: SearchTransitGatewayRoutesRequest)
        o.output = Shapes::ShapeRef.new(shape: SearchTransitGatewayRoutesResult)
      end)

      api.add_operation(:send_diagnostic_interrupt, Seahorse::Model::Operation.new.tap do |o|
        o.name = "SendDiagnosticInterrupt"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: SendDiagnosticInterruptRequest)
        o.output = Shapes::ShapeRef.new(shape: Shapes::StructureShape.new(struct_class: Aws::EmptyStructure))
      end)

      api.add_operation(:start_declarative_policies_report, Seahorse::Model::Operation.new.tap do |o|
        o.name = "StartDeclarativePoliciesReport"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: StartDeclarativePoliciesReportRequest)
        o.output = Shapes::ShapeRef.new(shape: StartDeclarativePoliciesReportResult)
      end)

      api.add_operation(:start_instances, Seahorse::Model::Operation.new.tap do |o|
        o.name = "StartInstances"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: StartInstancesRequest)
        o.output = Shapes::ShapeRef.new(shape: StartInstancesResult)
      end)

      api.add_operation(:start_network_insights_access_scope_analysis, Seahorse::Model::Operation.new.tap do |o|
        o.name = "StartNetworkInsightsAccessScopeAnalysis"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: StartNetworkInsightsAccessScopeAnalysisRequest)
        o.output = Shapes::ShapeRef.new(shape: StartNetworkInsightsAccessScopeAnalysisResult)
      end)

      api.add_operation(:start_network_insights_analysis, Seahorse::Model::Operation.new.tap do |o|
        o.name = "StartNetworkInsightsAnalysis"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: StartNetworkInsightsAnalysisRequest)
        o.output = Shapes::ShapeRef.new(shape: StartNetworkInsightsAnalysisResult)
      end)

      api.add_operation(:start_vpc_endpoint_service_private_dns_verification, Seahorse::Model::Operation.new.tap do |o|
        o.name = "StartVpcEndpointServicePrivateDnsVerification"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: StartVpcEndpointServicePrivateDnsVerificationRequest)
        o.output = Shapes::ShapeRef.new(shape: StartVpcEndpointServicePrivateDnsVerificationResult)
      end)

      api.add_operation(:stop_instances, Seahorse::Model::Operation.new.tap do |o|
        o.name = "StopInstances"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: StopInstancesRequest)
        o.output = Shapes::ShapeRef.new(shape: StopInstancesResult)
      end)

      api.add_operation(:terminate_client_vpn_connections, Seahorse::Model::Operation.new.tap do |o|
        o.name = "TerminateClientVpnConnections"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: TerminateClientVpnConnectionsRequest)
        o.output = Shapes::ShapeRef.new(shape: TerminateClientVpnConnectionsResult)
      end)

      api.add_operation(:terminate_instances, Seahorse::Model::Operation.new.tap do |o|
        o.name = "TerminateInstances"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: TerminateInstancesRequest)
        o.output = Shapes::ShapeRef.new(shape: TerminateInstancesResult)
      end)

      api.add_operation(:unassign_ipv_6_addresses, Seahorse::Model::Operation.new.tap do |o|
        o.name = "UnassignIpv6Addresses"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: UnassignIpv6AddressesRequest)
        o.output = Shapes::ShapeRef.new(shape: UnassignIpv6AddressesResult)
      end)

      api.add_operation(:unassign_private_ip_addresses, Seahorse::Model::Operation.new.tap do |o|
        o.name = "UnassignPrivateIpAddresses"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: UnassignPrivateIpAddressesRequest)
        o.output = Shapes::ShapeRef.new(shape: Shapes::StructureShape.new(struct_class: Aws::EmptyStructure))
      end)

      api.add_operation(:unassign_private_nat_gateway_address, Seahorse::Model::Operation.new.tap do |o|
        o.name = "UnassignPrivateNatGatewayAddress"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: UnassignPrivateNatGatewayAddressRequest)
        o.output = Shapes::ShapeRef.new(shape: UnassignPrivateNatGatewayAddressResult)
      end)

      api.add_operation(:unlock_snapshot, Seahorse::Model::Operation.new.tap do |o|
        o.name = "UnlockSnapshot"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: UnlockSnapshotRequest)
        o.output = Shapes::ShapeRef.new(shape: UnlockSnapshotResult)
      end)

      api.add_operation(:unmonitor_instances, Seahorse::Model::Operation.new.tap do |o|
        o.name = "UnmonitorInstances"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: UnmonitorInstancesRequest)
        o.output = Shapes::ShapeRef.new(shape: UnmonitorInstancesResult)
      end)

      api.add_operation(:update_security_group_rule_descriptions_egress, Seahorse::Model::Operation.new.tap do |o|
        o.name = "UpdateSecurityGroupRuleDescriptionsEgress"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: UpdateSecurityGroupRuleDescriptionsEgressRequest)
        o.output = Shapes::ShapeRef.new(shape: UpdateSecurityGroupRuleDescriptionsEgressResult)
      end)

      api.add_operation(:update_security_group_rule_descriptions_ingress, Seahorse::Model::Operation.new.tap do |o|
        o.name = "UpdateSecurityGroupRuleDescriptionsIngress"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: UpdateSecurityGroupRuleDescriptionsIngressRequest)
        o.output = Shapes::ShapeRef.new(shape: UpdateSecurityGroupRuleDescriptionsIngressResult)
      end)

      api.add_operation(:withdraw_byoip_cidr, Seahorse::Model::Operation.new.tap do |o|
        o.name = "WithdrawByoipCidr"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: WithdrawByoipCidrRequest)
        o.output = Shapes::ShapeRef.new(shape: WithdrawByoipCidrResult)
      end)
    end

  end
end
