All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.pulumi.awsnative.ec2.kotlin.Ec2Functions.kt Maven / Gradle / Ivy

Go to download

Build cloud applications and infrastructure by combining the safety and reliability of infrastructure as code with the power of the Kotlin programming language.

There is a newer version: 1.11.0.0
Show newest version
@file:Suppress("NAME_SHADOWING", "DEPRECATION")

package com.pulumi.awsnative.ec2.kotlin

import com.pulumi.awsnative.ec2.Ec2Functions.getCapacityReservationFleetPlain
import com.pulumi.awsnative.ec2.Ec2Functions.getCapacityReservationPlain
import com.pulumi.awsnative.ec2.Ec2Functions.getCarrierGatewayPlain
import com.pulumi.awsnative.ec2.Ec2Functions.getCustomerGatewayPlain
import com.pulumi.awsnative.ec2.Ec2Functions.getDhcpOptionsPlain
import com.pulumi.awsnative.ec2.Ec2Functions.getEc2FleetPlain
import com.pulumi.awsnative.ec2.Ec2Functions.getEgressOnlyInternetGatewayPlain
import com.pulumi.awsnative.ec2.Ec2Functions.getEipAssociationPlain
import com.pulumi.awsnative.ec2.Ec2Functions.getEipPlain
import com.pulumi.awsnative.ec2.Ec2Functions.getEnclaveCertificateIamRoleAssociationPlain
import com.pulumi.awsnative.ec2.Ec2Functions.getFlowLogPlain
import com.pulumi.awsnative.ec2.Ec2Functions.getGatewayRouteTableAssociationPlain
import com.pulumi.awsnative.ec2.Ec2Functions.getHostPlain
import com.pulumi.awsnative.ec2.Ec2Functions.getInstanceConnectEndpointPlain
import com.pulumi.awsnative.ec2.Ec2Functions.getInstancePlain
import com.pulumi.awsnative.ec2.Ec2Functions.getInternetGatewayPlain
import com.pulumi.awsnative.ec2.Ec2Functions.getIpamAllocationPlain
import com.pulumi.awsnative.ec2.Ec2Functions.getIpamPlain
import com.pulumi.awsnative.ec2.Ec2Functions.getIpamPoolCidrPlain
import com.pulumi.awsnative.ec2.Ec2Functions.getIpamPoolPlain
import com.pulumi.awsnative.ec2.Ec2Functions.getIpamResourceDiscoveryAssociationPlain
import com.pulumi.awsnative.ec2.Ec2Functions.getIpamResourceDiscoveryPlain
import com.pulumi.awsnative.ec2.Ec2Functions.getIpamScopePlain
import com.pulumi.awsnative.ec2.Ec2Functions.getKeyPairPlain
import com.pulumi.awsnative.ec2.Ec2Functions.getLaunchTemplatePlain
import com.pulumi.awsnative.ec2.Ec2Functions.getLocalGatewayRoutePlain
import com.pulumi.awsnative.ec2.Ec2Functions.getLocalGatewayRouteTablePlain
import com.pulumi.awsnative.ec2.Ec2Functions.getLocalGatewayRouteTableVirtualInterfaceGroupAssociationPlain
import com.pulumi.awsnative.ec2.Ec2Functions.getLocalGatewayRouteTableVpcAssociationPlain
import com.pulumi.awsnative.ec2.Ec2Functions.getNatGatewayPlain
import com.pulumi.awsnative.ec2.Ec2Functions.getNetworkAclPlain
import com.pulumi.awsnative.ec2.Ec2Functions.getNetworkInsightsAccessScopeAnalysisPlain
import com.pulumi.awsnative.ec2.Ec2Functions.getNetworkInsightsAccessScopePlain
import com.pulumi.awsnative.ec2.Ec2Functions.getNetworkInsightsAnalysisPlain
import com.pulumi.awsnative.ec2.Ec2Functions.getNetworkInsightsPathPlain
import com.pulumi.awsnative.ec2.Ec2Functions.getNetworkInterfaceAttachmentPlain
import com.pulumi.awsnative.ec2.Ec2Functions.getNetworkInterfacePlain
import com.pulumi.awsnative.ec2.Ec2Functions.getPlacementGroupPlain
import com.pulumi.awsnative.ec2.Ec2Functions.getPrefixListPlain
import com.pulumi.awsnative.ec2.Ec2Functions.getRoutePlain
import com.pulumi.awsnative.ec2.Ec2Functions.getRouteTablePlain
import com.pulumi.awsnative.ec2.Ec2Functions.getSecurityGroupEgressPlain
import com.pulumi.awsnative.ec2.Ec2Functions.getSecurityGroupIngressPlain
import com.pulumi.awsnative.ec2.Ec2Functions.getSecurityGroupPlain
import com.pulumi.awsnative.ec2.Ec2Functions.getSnapshotBlockPublicAccessPlain
import com.pulumi.awsnative.ec2.Ec2Functions.getSpotFleetPlain
import com.pulumi.awsnative.ec2.Ec2Functions.getSubnetCidrBlockPlain
import com.pulumi.awsnative.ec2.Ec2Functions.getSubnetNetworkAclAssociationPlain
import com.pulumi.awsnative.ec2.Ec2Functions.getSubnetPlain
import com.pulumi.awsnative.ec2.Ec2Functions.getSubnetRouteTableAssociationPlain
import com.pulumi.awsnative.ec2.Ec2Functions.getTransitGatewayAttachmentPlain
import com.pulumi.awsnative.ec2.Ec2Functions.getTransitGatewayConnectPlain
import com.pulumi.awsnative.ec2.Ec2Functions.getTransitGatewayMulticastDomainAssociationPlain
import com.pulumi.awsnative.ec2.Ec2Functions.getTransitGatewayMulticastDomainPlain
import com.pulumi.awsnative.ec2.Ec2Functions.getTransitGatewayMulticastGroupMemberPlain
import com.pulumi.awsnative.ec2.Ec2Functions.getTransitGatewayMulticastGroupSourcePlain
import com.pulumi.awsnative.ec2.Ec2Functions.getTransitGatewayPeeringAttachmentPlain
import com.pulumi.awsnative.ec2.Ec2Functions.getTransitGatewayPlain
import com.pulumi.awsnative.ec2.Ec2Functions.getTransitGatewayRouteTablePlain
import com.pulumi.awsnative.ec2.Ec2Functions.getTransitGatewayVpcAttachmentPlain
import com.pulumi.awsnative.ec2.Ec2Functions.getVerifiedAccessEndpointPlain
import com.pulumi.awsnative.ec2.Ec2Functions.getVerifiedAccessGroupPlain
import com.pulumi.awsnative.ec2.Ec2Functions.getVerifiedAccessInstancePlain
import com.pulumi.awsnative.ec2.Ec2Functions.getVerifiedAccessTrustProviderPlain
import com.pulumi.awsnative.ec2.Ec2Functions.getVolumePlain
import com.pulumi.awsnative.ec2.Ec2Functions.getVpcCidrBlockPlain
import com.pulumi.awsnative.ec2.Ec2Functions.getVpcEndpointConnectionNotificationPlain
import com.pulumi.awsnative.ec2.Ec2Functions.getVpcEndpointPlain
import com.pulumi.awsnative.ec2.Ec2Functions.getVpcEndpointServicePermissionsPlain
import com.pulumi.awsnative.ec2.Ec2Functions.getVpcEndpointServicePlain
import com.pulumi.awsnative.ec2.Ec2Functions.getVpcGatewayAttachmentPlain
import com.pulumi.awsnative.ec2.Ec2Functions.getVpcPeeringConnectionPlain
import com.pulumi.awsnative.ec2.Ec2Functions.getVpcPlain
import com.pulumi.awsnative.ec2.Ec2Functions.getVpnConnectionPlain
import com.pulumi.awsnative.ec2.Ec2Functions.getVpnGatewayPlain
import com.pulumi.awsnative.ec2.kotlin.inputs.GetCapacityReservationFleetPlainArgs
import com.pulumi.awsnative.ec2.kotlin.inputs.GetCapacityReservationFleetPlainArgsBuilder
import com.pulumi.awsnative.ec2.kotlin.inputs.GetCapacityReservationPlainArgs
import com.pulumi.awsnative.ec2.kotlin.inputs.GetCapacityReservationPlainArgsBuilder
import com.pulumi.awsnative.ec2.kotlin.inputs.GetCarrierGatewayPlainArgs
import com.pulumi.awsnative.ec2.kotlin.inputs.GetCarrierGatewayPlainArgsBuilder
import com.pulumi.awsnative.ec2.kotlin.inputs.GetCustomerGatewayPlainArgs
import com.pulumi.awsnative.ec2.kotlin.inputs.GetCustomerGatewayPlainArgsBuilder
import com.pulumi.awsnative.ec2.kotlin.inputs.GetDhcpOptionsPlainArgs
import com.pulumi.awsnative.ec2.kotlin.inputs.GetDhcpOptionsPlainArgsBuilder
import com.pulumi.awsnative.ec2.kotlin.inputs.GetEc2FleetPlainArgs
import com.pulumi.awsnative.ec2.kotlin.inputs.GetEc2FleetPlainArgsBuilder
import com.pulumi.awsnative.ec2.kotlin.inputs.GetEgressOnlyInternetGatewayPlainArgs
import com.pulumi.awsnative.ec2.kotlin.inputs.GetEgressOnlyInternetGatewayPlainArgsBuilder
import com.pulumi.awsnative.ec2.kotlin.inputs.GetEipAssociationPlainArgs
import com.pulumi.awsnative.ec2.kotlin.inputs.GetEipAssociationPlainArgsBuilder
import com.pulumi.awsnative.ec2.kotlin.inputs.GetEipPlainArgs
import com.pulumi.awsnative.ec2.kotlin.inputs.GetEipPlainArgsBuilder
import com.pulumi.awsnative.ec2.kotlin.inputs.GetEnclaveCertificateIamRoleAssociationPlainArgs
import com.pulumi.awsnative.ec2.kotlin.inputs.GetEnclaveCertificateIamRoleAssociationPlainArgsBuilder
import com.pulumi.awsnative.ec2.kotlin.inputs.GetFlowLogPlainArgs
import com.pulumi.awsnative.ec2.kotlin.inputs.GetFlowLogPlainArgsBuilder
import com.pulumi.awsnative.ec2.kotlin.inputs.GetGatewayRouteTableAssociationPlainArgs
import com.pulumi.awsnative.ec2.kotlin.inputs.GetGatewayRouteTableAssociationPlainArgsBuilder
import com.pulumi.awsnative.ec2.kotlin.inputs.GetHostPlainArgs
import com.pulumi.awsnative.ec2.kotlin.inputs.GetHostPlainArgsBuilder
import com.pulumi.awsnative.ec2.kotlin.inputs.GetInstanceConnectEndpointPlainArgs
import com.pulumi.awsnative.ec2.kotlin.inputs.GetInstanceConnectEndpointPlainArgsBuilder
import com.pulumi.awsnative.ec2.kotlin.inputs.GetInstancePlainArgs
import com.pulumi.awsnative.ec2.kotlin.inputs.GetInstancePlainArgsBuilder
import com.pulumi.awsnative.ec2.kotlin.inputs.GetInternetGatewayPlainArgs
import com.pulumi.awsnative.ec2.kotlin.inputs.GetInternetGatewayPlainArgsBuilder
import com.pulumi.awsnative.ec2.kotlin.inputs.GetIpamAllocationPlainArgs
import com.pulumi.awsnative.ec2.kotlin.inputs.GetIpamAllocationPlainArgsBuilder
import com.pulumi.awsnative.ec2.kotlin.inputs.GetIpamPlainArgs
import com.pulumi.awsnative.ec2.kotlin.inputs.GetIpamPlainArgsBuilder
import com.pulumi.awsnative.ec2.kotlin.inputs.GetIpamPoolCidrPlainArgs
import com.pulumi.awsnative.ec2.kotlin.inputs.GetIpamPoolCidrPlainArgsBuilder
import com.pulumi.awsnative.ec2.kotlin.inputs.GetIpamPoolPlainArgs
import com.pulumi.awsnative.ec2.kotlin.inputs.GetIpamPoolPlainArgsBuilder
import com.pulumi.awsnative.ec2.kotlin.inputs.GetIpamResourceDiscoveryAssociationPlainArgs
import com.pulumi.awsnative.ec2.kotlin.inputs.GetIpamResourceDiscoveryAssociationPlainArgsBuilder
import com.pulumi.awsnative.ec2.kotlin.inputs.GetIpamResourceDiscoveryPlainArgs
import com.pulumi.awsnative.ec2.kotlin.inputs.GetIpamResourceDiscoveryPlainArgsBuilder
import com.pulumi.awsnative.ec2.kotlin.inputs.GetIpamScopePlainArgs
import com.pulumi.awsnative.ec2.kotlin.inputs.GetIpamScopePlainArgsBuilder
import com.pulumi.awsnative.ec2.kotlin.inputs.GetKeyPairPlainArgs
import com.pulumi.awsnative.ec2.kotlin.inputs.GetKeyPairPlainArgsBuilder
import com.pulumi.awsnative.ec2.kotlin.inputs.GetLaunchTemplatePlainArgs
import com.pulumi.awsnative.ec2.kotlin.inputs.GetLaunchTemplatePlainArgsBuilder
import com.pulumi.awsnative.ec2.kotlin.inputs.GetLocalGatewayRoutePlainArgs
import com.pulumi.awsnative.ec2.kotlin.inputs.GetLocalGatewayRoutePlainArgsBuilder
import com.pulumi.awsnative.ec2.kotlin.inputs.GetLocalGatewayRouteTablePlainArgs
import com.pulumi.awsnative.ec2.kotlin.inputs.GetLocalGatewayRouteTablePlainArgsBuilder
import com.pulumi.awsnative.ec2.kotlin.inputs.GetLocalGatewayRouteTableVirtualInterfaceGroupAssociationPlainArgs
import com.pulumi.awsnative.ec2.kotlin.inputs.GetLocalGatewayRouteTableVirtualInterfaceGroupAssociationPlainArgsBuilder
import com.pulumi.awsnative.ec2.kotlin.inputs.GetLocalGatewayRouteTableVpcAssociationPlainArgs
import com.pulumi.awsnative.ec2.kotlin.inputs.GetLocalGatewayRouteTableVpcAssociationPlainArgsBuilder
import com.pulumi.awsnative.ec2.kotlin.inputs.GetNatGatewayPlainArgs
import com.pulumi.awsnative.ec2.kotlin.inputs.GetNatGatewayPlainArgsBuilder
import com.pulumi.awsnative.ec2.kotlin.inputs.GetNetworkAclPlainArgs
import com.pulumi.awsnative.ec2.kotlin.inputs.GetNetworkAclPlainArgsBuilder
import com.pulumi.awsnative.ec2.kotlin.inputs.GetNetworkInsightsAccessScopeAnalysisPlainArgs
import com.pulumi.awsnative.ec2.kotlin.inputs.GetNetworkInsightsAccessScopeAnalysisPlainArgsBuilder
import com.pulumi.awsnative.ec2.kotlin.inputs.GetNetworkInsightsAccessScopePlainArgs
import com.pulumi.awsnative.ec2.kotlin.inputs.GetNetworkInsightsAccessScopePlainArgsBuilder
import com.pulumi.awsnative.ec2.kotlin.inputs.GetNetworkInsightsAnalysisPlainArgs
import com.pulumi.awsnative.ec2.kotlin.inputs.GetNetworkInsightsAnalysisPlainArgsBuilder
import com.pulumi.awsnative.ec2.kotlin.inputs.GetNetworkInsightsPathPlainArgs
import com.pulumi.awsnative.ec2.kotlin.inputs.GetNetworkInsightsPathPlainArgsBuilder
import com.pulumi.awsnative.ec2.kotlin.inputs.GetNetworkInterfaceAttachmentPlainArgs
import com.pulumi.awsnative.ec2.kotlin.inputs.GetNetworkInterfaceAttachmentPlainArgsBuilder
import com.pulumi.awsnative.ec2.kotlin.inputs.GetNetworkInterfacePlainArgs
import com.pulumi.awsnative.ec2.kotlin.inputs.GetNetworkInterfacePlainArgsBuilder
import com.pulumi.awsnative.ec2.kotlin.inputs.GetPlacementGroupPlainArgs
import com.pulumi.awsnative.ec2.kotlin.inputs.GetPlacementGroupPlainArgsBuilder
import com.pulumi.awsnative.ec2.kotlin.inputs.GetPrefixListPlainArgs
import com.pulumi.awsnative.ec2.kotlin.inputs.GetPrefixListPlainArgsBuilder
import com.pulumi.awsnative.ec2.kotlin.inputs.GetRoutePlainArgs
import com.pulumi.awsnative.ec2.kotlin.inputs.GetRoutePlainArgsBuilder
import com.pulumi.awsnative.ec2.kotlin.inputs.GetRouteTablePlainArgs
import com.pulumi.awsnative.ec2.kotlin.inputs.GetRouteTablePlainArgsBuilder
import com.pulumi.awsnative.ec2.kotlin.inputs.GetSecurityGroupEgressPlainArgs
import com.pulumi.awsnative.ec2.kotlin.inputs.GetSecurityGroupEgressPlainArgsBuilder
import com.pulumi.awsnative.ec2.kotlin.inputs.GetSecurityGroupIngressPlainArgs
import com.pulumi.awsnative.ec2.kotlin.inputs.GetSecurityGroupIngressPlainArgsBuilder
import com.pulumi.awsnative.ec2.kotlin.inputs.GetSecurityGroupPlainArgs
import com.pulumi.awsnative.ec2.kotlin.inputs.GetSecurityGroupPlainArgsBuilder
import com.pulumi.awsnative.ec2.kotlin.inputs.GetSnapshotBlockPublicAccessPlainArgs
import com.pulumi.awsnative.ec2.kotlin.inputs.GetSnapshotBlockPublicAccessPlainArgsBuilder
import com.pulumi.awsnative.ec2.kotlin.inputs.GetSpotFleetPlainArgs
import com.pulumi.awsnative.ec2.kotlin.inputs.GetSpotFleetPlainArgsBuilder
import com.pulumi.awsnative.ec2.kotlin.inputs.GetSubnetCidrBlockPlainArgs
import com.pulumi.awsnative.ec2.kotlin.inputs.GetSubnetCidrBlockPlainArgsBuilder
import com.pulumi.awsnative.ec2.kotlin.inputs.GetSubnetNetworkAclAssociationPlainArgs
import com.pulumi.awsnative.ec2.kotlin.inputs.GetSubnetNetworkAclAssociationPlainArgsBuilder
import com.pulumi.awsnative.ec2.kotlin.inputs.GetSubnetPlainArgs
import com.pulumi.awsnative.ec2.kotlin.inputs.GetSubnetPlainArgsBuilder
import com.pulumi.awsnative.ec2.kotlin.inputs.GetSubnetRouteTableAssociationPlainArgs
import com.pulumi.awsnative.ec2.kotlin.inputs.GetSubnetRouteTableAssociationPlainArgsBuilder
import com.pulumi.awsnative.ec2.kotlin.inputs.GetTransitGatewayAttachmentPlainArgs
import com.pulumi.awsnative.ec2.kotlin.inputs.GetTransitGatewayAttachmentPlainArgsBuilder
import com.pulumi.awsnative.ec2.kotlin.inputs.GetTransitGatewayConnectPlainArgs
import com.pulumi.awsnative.ec2.kotlin.inputs.GetTransitGatewayConnectPlainArgsBuilder
import com.pulumi.awsnative.ec2.kotlin.inputs.GetTransitGatewayMulticastDomainAssociationPlainArgs
import com.pulumi.awsnative.ec2.kotlin.inputs.GetTransitGatewayMulticastDomainAssociationPlainArgsBuilder
import com.pulumi.awsnative.ec2.kotlin.inputs.GetTransitGatewayMulticastDomainPlainArgs
import com.pulumi.awsnative.ec2.kotlin.inputs.GetTransitGatewayMulticastDomainPlainArgsBuilder
import com.pulumi.awsnative.ec2.kotlin.inputs.GetTransitGatewayMulticastGroupMemberPlainArgs
import com.pulumi.awsnative.ec2.kotlin.inputs.GetTransitGatewayMulticastGroupMemberPlainArgsBuilder
import com.pulumi.awsnative.ec2.kotlin.inputs.GetTransitGatewayMulticastGroupSourcePlainArgs
import com.pulumi.awsnative.ec2.kotlin.inputs.GetTransitGatewayMulticastGroupSourcePlainArgsBuilder
import com.pulumi.awsnative.ec2.kotlin.inputs.GetTransitGatewayPeeringAttachmentPlainArgs
import com.pulumi.awsnative.ec2.kotlin.inputs.GetTransitGatewayPeeringAttachmentPlainArgsBuilder
import com.pulumi.awsnative.ec2.kotlin.inputs.GetTransitGatewayPlainArgs
import com.pulumi.awsnative.ec2.kotlin.inputs.GetTransitGatewayPlainArgsBuilder
import com.pulumi.awsnative.ec2.kotlin.inputs.GetTransitGatewayRouteTablePlainArgs
import com.pulumi.awsnative.ec2.kotlin.inputs.GetTransitGatewayRouteTablePlainArgsBuilder
import com.pulumi.awsnative.ec2.kotlin.inputs.GetTransitGatewayVpcAttachmentPlainArgs
import com.pulumi.awsnative.ec2.kotlin.inputs.GetTransitGatewayVpcAttachmentPlainArgsBuilder
import com.pulumi.awsnative.ec2.kotlin.inputs.GetVerifiedAccessEndpointPlainArgs
import com.pulumi.awsnative.ec2.kotlin.inputs.GetVerifiedAccessEndpointPlainArgsBuilder
import com.pulumi.awsnative.ec2.kotlin.inputs.GetVerifiedAccessGroupPlainArgs
import com.pulumi.awsnative.ec2.kotlin.inputs.GetVerifiedAccessGroupPlainArgsBuilder
import com.pulumi.awsnative.ec2.kotlin.inputs.GetVerifiedAccessInstancePlainArgs
import com.pulumi.awsnative.ec2.kotlin.inputs.GetVerifiedAccessInstancePlainArgsBuilder
import com.pulumi.awsnative.ec2.kotlin.inputs.GetVerifiedAccessTrustProviderPlainArgs
import com.pulumi.awsnative.ec2.kotlin.inputs.GetVerifiedAccessTrustProviderPlainArgsBuilder
import com.pulumi.awsnative.ec2.kotlin.inputs.GetVolumePlainArgs
import com.pulumi.awsnative.ec2.kotlin.inputs.GetVolumePlainArgsBuilder
import com.pulumi.awsnative.ec2.kotlin.inputs.GetVpcCidrBlockPlainArgs
import com.pulumi.awsnative.ec2.kotlin.inputs.GetVpcCidrBlockPlainArgsBuilder
import com.pulumi.awsnative.ec2.kotlin.inputs.GetVpcEndpointConnectionNotificationPlainArgs
import com.pulumi.awsnative.ec2.kotlin.inputs.GetVpcEndpointConnectionNotificationPlainArgsBuilder
import com.pulumi.awsnative.ec2.kotlin.inputs.GetVpcEndpointPlainArgs
import com.pulumi.awsnative.ec2.kotlin.inputs.GetVpcEndpointPlainArgsBuilder
import com.pulumi.awsnative.ec2.kotlin.inputs.GetVpcEndpointServicePermissionsPlainArgs
import com.pulumi.awsnative.ec2.kotlin.inputs.GetVpcEndpointServicePermissionsPlainArgsBuilder
import com.pulumi.awsnative.ec2.kotlin.inputs.GetVpcEndpointServicePlainArgs
import com.pulumi.awsnative.ec2.kotlin.inputs.GetVpcEndpointServicePlainArgsBuilder
import com.pulumi.awsnative.ec2.kotlin.inputs.GetVpcGatewayAttachmentPlainArgs
import com.pulumi.awsnative.ec2.kotlin.inputs.GetVpcGatewayAttachmentPlainArgsBuilder
import com.pulumi.awsnative.ec2.kotlin.inputs.GetVpcPeeringConnectionPlainArgs
import com.pulumi.awsnative.ec2.kotlin.inputs.GetVpcPeeringConnectionPlainArgsBuilder
import com.pulumi.awsnative.ec2.kotlin.inputs.GetVpcPlainArgs
import com.pulumi.awsnative.ec2.kotlin.inputs.GetVpcPlainArgsBuilder
import com.pulumi.awsnative.ec2.kotlin.inputs.GetVpnConnectionPlainArgs
import com.pulumi.awsnative.ec2.kotlin.inputs.GetVpnConnectionPlainArgsBuilder
import com.pulumi.awsnative.ec2.kotlin.inputs.GetVpnGatewayPlainArgs
import com.pulumi.awsnative.ec2.kotlin.inputs.GetVpnGatewayPlainArgsBuilder
import com.pulumi.awsnative.ec2.kotlin.outputs.GetCapacityReservationFleetResult
import com.pulumi.awsnative.ec2.kotlin.outputs.GetCapacityReservationResult
import com.pulumi.awsnative.ec2.kotlin.outputs.GetCarrierGatewayResult
import com.pulumi.awsnative.ec2.kotlin.outputs.GetCustomerGatewayResult
import com.pulumi.awsnative.ec2.kotlin.outputs.GetDhcpOptionsResult
import com.pulumi.awsnative.ec2.kotlin.outputs.GetEc2FleetResult
import com.pulumi.awsnative.ec2.kotlin.outputs.GetEgressOnlyInternetGatewayResult
import com.pulumi.awsnative.ec2.kotlin.outputs.GetEipAssociationResult
import com.pulumi.awsnative.ec2.kotlin.outputs.GetEipResult
import com.pulumi.awsnative.ec2.kotlin.outputs.GetEnclaveCertificateIamRoleAssociationResult
import com.pulumi.awsnative.ec2.kotlin.outputs.GetFlowLogResult
import com.pulumi.awsnative.ec2.kotlin.outputs.GetGatewayRouteTableAssociationResult
import com.pulumi.awsnative.ec2.kotlin.outputs.GetHostResult
import com.pulumi.awsnative.ec2.kotlin.outputs.GetInstanceConnectEndpointResult
import com.pulumi.awsnative.ec2.kotlin.outputs.GetInstanceResult
import com.pulumi.awsnative.ec2.kotlin.outputs.GetInternetGatewayResult
import com.pulumi.awsnative.ec2.kotlin.outputs.GetIpamAllocationResult
import com.pulumi.awsnative.ec2.kotlin.outputs.GetIpamPoolCidrResult
import com.pulumi.awsnative.ec2.kotlin.outputs.GetIpamPoolResult
import com.pulumi.awsnative.ec2.kotlin.outputs.GetIpamResourceDiscoveryAssociationResult
import com.pulumi.awsnative.ec2.kotlin.outputs.GetIpamResourceDiscoveryResult
import com.pulumi.awsnative.ec2.kotlin.outputs.GetIpamResult
import com.pulumi.awsnative.ec2.kotlin.outputs.GetIpamScopeResult
import com.pulumi.awsnative.ec2.kotlin.outputs.GetKeyPairResult
import com.pulumi.awsnative.ec2.kotlin.outputs.GetLaunchTemplateResult
import com.pulumi.awsnative.ec2.kotlin.outputs.GetLocalGatewayRouteResult
import com.pulumi.awsnative.ec2.kotlin.outputs.GetLocalGatewayRouteTableResult
import com.pulumi.awsnative.ec2.kotlin.outputs.GetLocalGatewayRouteTableVirtualInterfaceGroupAssociationResult
import com.pulumi.awsnative.ec2.kotlin.outputs.GetLocalGatewayRouteTableVpcAssociationResult
import com.pulumi.awsnative.ec2.kotlin.outputs.GetNatGatewayResult
import com.pulumi.awsnative.ec2.kotlin.outputs.GetNetworkAclResult
import com.pulumi.awsnative.ec2.kotlin.outputs.GetNetworkInsightsAccessScopeAnalysisResult
import com.pulumi.awsnative.ec2.kotlin.outputs.GetNetworkInsightsAccessScopeResult
import com.pulumi.awsnative.ec2.kotlin.outputs.GetNetworkInsightsAnalysisResult
import com.pulumi.awsnative.ec2.kotlin.outputs.GetNetworkInsightsPathResult
import com.pulumi.awsnative.ec2.kotlin.outputs.GetNetworkInterfaceAttachmentResult
import com.pulumi.awsnative.ec2.kotlin.outputs.GetNetworkInterfaceResult
import com.pulumi.awsnative.ec2.kotlin.outputs.GetPlacementGroupResult
import com.pulumi.awsnative.ec2.kotlin.outputs.GetPrefixListResult
import com.pulumi.awsnative.ec2.kotlin.outputs.GetRouteResult
import com.pulumi.awsnative.ec2.kotlin.outputs.GetRouteTableResult
import com.pulumi.awsnative.ec2.kotlin.outputs.GetSecurityGroupEgressResult
import com.pulumi.awsnative.ec2.kotlin.outputs.GetSecurityGroupIngressResult
import com.pulumi.awsnative.ec2.kotlin.outputs.GetSecurityGroupResult
import com.pulumi.awsnative.ec2.kotlin.outputs.GetSnapshotBlockPublicAccessResult
import com.pulumi.awsnative.ec2.kotlin.outputs.GetSpotFleetResult
import com.pulumi.awsnative.ec2.kotlin.outputs.GetSubnetCidrBlockResult
import com.pulumi.awsnative.ec2.kotlin.outputs.GetSubnetNetworkAclAssociationResult
import com.pulumi.awsnative.ec2.kotlin.outputs.GetSubnetResult
import com.pulumi.awsnative.ec2.kotlin.outputs.GetSubnetRouteTableAssociationResult
import com.pulumi.awsnative.ec2.kotlin.outputs.GetTransitGatewayAttachmentResult
import com.pulumi.awsnative.ec2.kotlin.outputs.GetTransitGatewayConnectResult
import com.pulumi.awsnative.ec2.kotlin.outputs.GetTransitGatewayMulticastDomainAssociationResult
import com.pulumi.awsnative.ec2.kotlin.outputs.GetTransitGatewayMulticastDomainResult
import com.pulumi.awsnative.ec2.kotlin.outputs.GetTransitGatewayMulticastGroupMemberResult
import com.pulumi.awsnative.ec2.kotlin.outputs.GetTransitGatewayMulticastGroupSourceResult
import com.pulumi.awsnative.ec2.kotlin.outputs.GetTransitGatewayPeeringAttachmentResult
import com.pulumi.awsnative.ec2.kotlin.outputs.GetTransitGatewayResult
import com.pulumi.awsnative.ec2.kotlin.outputs.GetTransitGatewayRouteTableResult
import com.pulumi.awsnative.ec2.kotlin.outputs.GetTransitGatewayVpcAttachmentResult
import com.pulumi.awsnative.ec2.kotlin.outputs.GetVerifiedAccessEndpointResult
import com.pulumi.awsnative.ec2.kotlin.outputs.GetVerifiedAccessGroupResult
import com.pulumi.awsnative.ec2.kotlin.outputs.GetVerifiedAccessInstanceResult
import com.pulumi.awsnative.ec2.kotlin.outputs.GetVerifiedAccessTrustProviderResult
import com.pulumi.awsnative.ec2.kotlin.outputs.GetVolumeResult
import com.pulumi.awsnative.ec2.kotlin.outputs.GetVpcCidrBlockResult
import com.pulumi.awsnative.ec2.kotlin.outputs.GetVpcEndpointConnectionNotificationResult
import com.pulumi.awsnative.ec2.kotlin.outputs.GetVpcEndpointResult
import com.pulumi.awsnative.ec2.kotlin.outputs.GetVpcEndpointServicePermissionsResult
import com.pulumi.awsnative.ec2.kotlin.outputs.GetVpcEndpointServiceResult
import com.pulumi.awsnative.ec2.kotlin.outputs.GetVpcGatewayAttachmentResult
import com.pulumi.awsnative.ec2.kotlin.outputs.GetVpcPeeringConnectionResult
import com.pulumi.awsnative.ec2.kotlin.outputs.GetVpcResult
import com.pulumi.awsnative.ec2.kotlin.outputs.GetVpnConnectionResult
import com.pulumi.awsnative.ec2.kotlin.outputs.GetVpnGatewayResult
import kotlinx.coroutines.future.await
import kotlin.String
import kotlin.Suppress
import kotlin.Unit
import com.pulumi.awsnative.ec2.kotlin.outputs.GetCapacityReservationFleetResult.Companion.toKotlin as getCapacityReservationFleetResultToKotlin
import com.pulumi.awsnative.ec2.kotlin.outputs.GetCapacityReservationResult.Companion.toKotlin as getCapacityReservationResultToKotlin
import com.pulumi.awsnative.ec2.kotlin.outputs.GetCarrierGatewayResult.Companion.toKotlin as getCarrierGatewayResultToKotlin
import com.pulumi.awsnative.ec2.kotlin.outputs.GetCustomerGatewayResult.Companion.toKotlin as getCustomerGatewayResultToKotlin
import com.pulumi.awsnative.ec2.kotlin.outputs.GetDhcpOptionsResult.Companion.toKotlin as getDhcpOptionsResultToKotlin
import com.pulumi.awsnative.ec2.kotlin.outputs.GetEc2FleetResult.Companion.toKotlin as getEc2FleetResultToKotlin
import com.pulumi.awsnative.ec2.kotlin.outputs.GetEgressOnlyInternetGatewayResult.Companion.toKotlin as getEgressOnlyInternetGatewayResultToKotlin
import com.pulumi.awsnative.ec2.kotlin.outputs.GetEipAssociationResult.Companion.toKotlin as getEipAssociationResultToKotlin
import com.pulumi.awsnative.ec2.kotlin.outputs.GetEipResult.Companion.toKotlin as getEipResultToKotlin
import com.pulumi.awsnative.ec2.kotlin.outputs.GetEnclaveCertificateIamRoleAssociationResult.Companion.toKotlin as getEnclaveCertificateIamRoleAssociationResultToKotlin
import com.pulumi.awsnative.ec2.kotlin.outputs.GetFlowLogResult.Companion.toKotlin as getFlowLogResultToKotlin
import com.pulumi.awsnative.ec2.kotlin.outputs.GetGatewayRouteTableAssociationResult.Companion.toKotlin as getGatewayRouteTableAssociationResultToKotlin
import com.pulumi.awsnative.ec2.kotlin.outputs.GetHostResult.Companion.toKotlin as getHostResultToKotlin
import com.pulumi.awsnative.ec2.kotlin.outputs.GetInstanceConnectEndpointResult.Companion.toKotlin as getInstanceConnectEndpointResultToKotlin
import com.pulumi.awsnative.ec2.kotlin.outputs.GetInstanceResult.Companion.toKotlin as getInstanceResultToKotlin
import com.pulumi.awsnative.ec2.kotlin.outputs.GetInternetGatewayResult.Companion.toKotlin as getInternetGatewayResultToKotlin
import com.pulumi.awsnative.ec2.kotlin.outputs.GetIpamAllocationResult.Companion.toKotlin as getIpamAllocationResultToKotlin
import com.pulumi.awsnative.ec2.kotlin.outputs.GetIpamPoolCidrResult.Companion.toKotlin as getIpamPoolCidrResultToKotlin
import com.pulumi.awsnative.ec2.kotlin.outputs.GetIpamPoolResult.Companion.toKotlin as getIpamPoolResultToKotlin
import com.pulumi.awsnative.ec2.kotlin.outputs.GetIpamResourceDiscoveryAssociationResult.Companion.toKotlin as getIpamResourceDiscoveryAssociationResultToKotlin
import com.pulumi.awsnative.ec2.kotlin.outputs.GetIpamResourceDiscoveryResult.Companion.toKotlin as getIpamResourceDiscoveryResultToKotlin
import com.pulumi.awsnative.ec2.kotlin.outputs.GetIpamResult.Companion.toKotlin as getIpamResultToKotlin
import com.pulumi.awsnative.ec2.kotlin.outputs.GetIpamScopeResult.Companion.toKotlin as getIpamScopeResultToKotlin
import com.pulumi.awsnative.ec2.kotlin.outputs.GetKeyPairResult.Companion.toKotlin as getKeyPairResultToKotlin
import com.pulumi.awsnative.ec2.kotlin.outputs.GetLaunchTemplateResult.Companion.toKotlin as getLaunchTemplateResultToKotlin
import com.pulumi.awsnative.ec2.kotlin.outputs.GetLocalGatewayRouteResult.Companion.toKotlin as getLocalGatewayRouteResultToKotlin
import com.pulumi.awsnative.ec2.kotlin.outputs.GetLocalGatewayRouteTableResult.Companion.toKotlin as getLocalGatewayRouteTableResultToKotlin
import com.pulumi.awsnative.ec2.kotlin.outputs.GetLocalGatewayRouteTableVirtualInterfaceGroupAssociationResult.Companion.toKotlin as getLocalGatewayRouteTableVirtualInterfaceGroupAssociationResultToKotlin
import com.pulumi.awsnative.ec2.kotlin.outputs.GetLocalGatewayRouteTableVpcAssociationResult.Companion.toKotlin as getLocalGatewayRouteTableVpcAssociationResultToKotlin
import com.pulumi.awsnative.ec2.kotlin.outputs.GetNatGatewayResult.Companion.toKotlin as getNatGatewayResultToKotlin
import com.pulumi.awsnative.ec2.kotlin.outputs.GetNetworkAclResult.Companion.toKotlin as getNetworkAclResultToKotlin
import com.pulumi.awsnative.ec2.kotlin.outputs.GetNetworkInsightsAccessScopeAnalysisResult.Companion.toKotlin as getNetworkInsightsAccessScopeAnalysisResultToKotlin
import com.pulumi.awsnative.ec2.kotlin.outputs.GetNetworkInsightsAccessScopeResult.Companion.toKotlin as getNetworkInsightsAccessScopeResultToKotlin
import com.pulumi.awsnative.ec2.kotlin.outputs.GetNetworkInsightsAnalysisResult.Companion.toKotlin as getNetworkInsightsAnalysisResultToKotlin
import com.pulumi.awsnative.ec2.kotlin.outputs.GetNetworkInsightsPathResult.Companion.toKotlin as getNetworkInsightsPathResultToKotlin
import com.pulumi.awsnative.ec2.kotlin.outputs.GetNetworkInterfaceAttachmentResult.Companion.toKotlin as getNetworkInterfaceAttachmentResultToKotlin
import com.pulumi.awsnative.ec2.kotlin.outputs.GetNetworkInterfaceResult.Companion.toKotlin as getNetworkInterfaceResultToKotlin
import com.pulumi.awsnative.ec2.kotlin.outputs.GetPlacementGroupResult.Companion.toKotlin as getPlacementGroupResultToKotlin
import com.pulumi.awsnative.ec2.kotlin.outputs.GetPrefixListResult.Companion.toKotlin as getPrefixListResultToKotlin
import com.pulumi.awsnative.ec2.kotlin.outputs.GetRouteResult.Companion.toKotlin as getRouteResultToKotlin
import com.pulumi.awsnative.ec2.kotlin.outputs.GetRouteTableResult.Companion.toKotlin as getRouteTableResultToKotlin
import com.pulumi.awsnative.ec2.kotlin.outputs.GetSecurityGroupEgressResult.Companion.toKotlin as getSecurityGroupEgressResultToKotlin
import com.pulumi.awsnative.ec2.kotlin.outputs.GetSecurityGroupIngressResult.Companion.toKotlin as getSecurityGroupIngressResultToKotlin
import com.pulumi.awsnative.ec2.kotlin.outputs.GetSecurityGroupResult.Companion.toKotlin as getSecurityGroupResultToKotlin
import com.pulumi.awsnative.ec2.kotlin.outputs.GetSnapshotBlockPublicAccessResult.Companion.toKotlin as getSnapshotBlockPublicAccessResultToKotlin
import com.pulumi.awsnative.ec2.kotlin.outputs.GetSpotFleetResult.Companion.toKotlin as getSpotFleetResultToKotlin
import com.pulumi.awsnative.ec2.kotlin.outputs.GetSubnetCidrBlockResult.Companion.toKotlin as getSubnetCidrBlockResultToKotlin
import com.pulumi.awsnative.ec2.kotlin.outputs.GetSubnetNetworkAclAssociationResult.Companion.toKotlin as getSubnetNetworkAclAssociationResultToKotlin
import com.pulumi.awsnative.ec2.kotlin.outputs.GetSubnetResult.Companion.toKotlin as getSubnetResultToKotlin
import com.pulumi.awsnative.ec2.kotlin.outputs.GetSubnetRouteTableAssociationResult.Companion.toKotlin as getSubnetRouteTableAssociationResultToKotlin
import com.pulumi.awsnative.ec2.kotlin.outputs.GetTransitGatewayAttachmentResult.Companion.toKotlin as getTransitGatewayAttachmentResultToKotlin
import com.pulumi.awsnative.ec2.kotlin.outputs.GetTransitGatewayConnectResult.Companion.toKotlin as getTransitGatewayConnectResultToKotlin
import com.pulumi.awsnative.ec2.kotlin.outputs.GetTransitGatewayMulticastDomainAssociationResult.Companion.toKotlin as getTransitGatewayMulticastDomainAssociationResultToKotlin
import com.pulumi.awsnative.ec2.kotlin.outputs.GetTransitGatewayMulticastDomainResult.Companion.toKotlin as getTransitGatewayMulticastDomainResultToKotlin
import com.pulumi.awsnative.ec2.kotlin.outputs.GetTransitGatewayMulticastGroupMemberResult.Companion.toKotlin as getTransitGatewayMulticastGroupMemberResultToKotlin
import com.pulumi.awsnative.ec2.kotlin.outputs.GetTransitGatewayMulticastGroupSourceResult.Companion.toKotlin as getTransitGatewayMulticastGroupSourceResultToKotlin
import com.pulumi.awsnative.ec2.kotlin.outputs.GetTransitGatewayPeeringAttachmentResult.Companion.toKotlin as getTransitGatewayPeeringAttachmentResultToKotlin
import com.pulumi.awsnative.ec2.kotlin.outputs.GetTransitGatewayResult.Companion.toKotlin as getTransitGatewayResultToKotlin
import com.pulumi.awsnative.ec2.kotlin.outputs.GetTransitGatewayRouteTableResult.Companion.toKotlin as getTransitGatewayRouteTableResultToKotlin
import com.pulumi.awsnative.ec2.kotlin.outputs.GetTransitGatewayVpcAttachmentResult.Companion.toKotlin as getTransitGatewayVpcAttachmentResultToKotlin
import com.pulumi.awsnative.ec2.kotlin.outputs.GetVerifiedAccessEndpointResult.Companion.toKotlin as getVerifiedAccessEndpointResultToKotlin
import com.pulumi.awsnative.ec2.kotlin.outputs.GetVerifiedAccessGroupResult.Companion.toKotlin as getVerifiedAccessGroupResultToKotlin
import com.pulumi.awsnative.ec2.kotlin.outputs.GetVerifiedAccessInstanceResult.Companion.toKotlin as getVerifiedAccessInstanceResultToKotlin
import com.pulumi.awsnative.ec2.kotlin.outputs.GetVerifiedAccessTrustProviderResult.Companion.toKotlin as getVerifiedAccessTrustProviderResultToKotlin
import com.pulumi.awsnative.ec2.kotlin.outputs.GetVolumeResult.Companion.toKotlin as getVolumeResultToKotlin
import com.pulumi.awsnative.ec2.kotlin.outputs.GetVpcCidrBlockResult.Companion.toKotlin as getVpcCidrBlockResultToKotlin
import com.pulumi.awsnative.ec2.kotlin.outputs.GetVpcEndpointConnectionNotificationResult.Companion.toKotlin as getVpcEndpointConnectionNotificationResultToKotlin
import com.pulumi.awsnative.ec2.kotlin.outputs.GetVpcEndpointResult.Companion.toKotlin as getVpcEndpointResultToKotlin
import com.pulumi.awsnative.ec2.kotlin.outputs.GetVpcEndpointServicePermissionsResult.Companion.toKotlin as getVpcEndpointServicePermissionsResultToKotlin
import com.pulumi.awsnative.ec2.kotlin.outputs.GetVpcEndpointServiceResult.Companion.toKotlin as getVpcEndpointServiceResultToKotlin
import com.pulumi.awsnative.ec2.kotlin.outputs.GetVpcGatewayAttachmentResult.Companion.toKotlin as getVpcGatewayAttachmentResultToKotlin
import com.pulumi.awsnative.ec2.kotlin.outputs.GetVpcPeeringConnectionResult.Companion.toKotlin as getVpcPeeringConnectionResultToKotlin
import com.pulumi.awsnative.ec2.kotlin.outputs.GetVpcResult.Companion.toKotlin as getVpcResultToKotlin
import com.pulumi.awsnative.ec2.kotlin.outputs.GetVpnConnectionResult.Companion.toKotlin as getVpnConnectionResultToKotlin
import com.pulumi.awsnative.ec2.kotlin.outputs.GetVpnGatewayResult.Companion.toKotlin as getVpnGatewayResultToKotlin

public object Ec2Functions {
    /**
     * Resource Type definition for AWS::EC2::CapacityReservation
     * @param argument null
     * @return null
     */
    public suspend fun getCapacityReservation(argument: GetCapacityReservationPlainArgs): GetCapacityReservationResult =
        getCapacityReservationResultToKotlin(getCapacityReservationPlain(argument.toJava()).await())

    /**
     * @see [getCapacityReservation].
     * @param id The ID of the Capacity Reservation.
     * @return null
     */
    public suspend fun getCapacityReservation(id: String): GetCapacityReservationResult {
        val argument = GetCapacityReservationPlainArgs(
            id = id,
        )
        return getCapacityReservationResultToKotlin(getCapacityReservationPlain(argument.toJava()).await())
    }

    /**
     * @see [getCapacityReservation].
     * @param argument Builder for [com.pulumi.awsnative.ec2.kotlin.inputs.GetCapacityReservationPlainArgs].
     * @return null
     */
    public suspend fun getCapacityReservation(argument: suspend GetCapacityReservationPlainArgsBuilder.() -> Unit): GetCapacityReservationResult {
        val builder = GetCapacityReservationPlainArgsBuilder()
        builder.argument()
        val builtArgument = builder.build()
        return getCapacityReservationResultToKotlin(getCapacityReservationPlain(builtArgument.toJava()).await())
    }

    /**
     * Resource Type definition for AWS::EC2::CapacityReservationFleet
     * @param argument null
     * @return null
     */
    public suspend fun getCapacityReservationFleet(argument: GetCapacityReservationFleetPlainArgs): GetCapacityReservationFleetResult =
        getCapacityReservationFleetResultToKotlin(getCapacityReservationFleetPlain(argument.toJava()).await())

    /**
     * @see [getCapacityReservationFleet].
     * @param capacityReservationFleetId The ID of the Capacity Reservation Fleet.
     * @return null
     */
    public suspend fun getCapacityReservationFleet(capacityReservationFleetId: String): GetCapacityReservationFleetResult {
        val argument = GetCapacityReservationFleetPlainArgs(
            capacityReservationFleetId = capacityReservationFleetId,
        )
        return getCapacityReservationFleetResultToKotlin(getCapacityReservationFleetPlain(argument.toJava()).await())
    }

    /**
     * @see [getCapacityReservationFleet].
     * @param argument Builder for [com.pulumi.awsnative.ec2.kotlin.inputs.GetCapacityReservationFleetPlainArgs].
     * @return null
     */
    public suspend fun getCapacityReservationFleet(argument: suspend GetCapacityReservationFleetPlainArgsBuilder.() -> Unit): GetCapacityReservationFleetResult {
        val builder = GetCapacityReservationFleetPlainArgsBuilder()
        builder.argument()
        val builtArgument = builder.build()
        return getCapacityReservationFleetResultToKotlin(getCapacityReservationFleetPlain(builtArgument.toJava()).await())
    }

    /**
     * An example resource schema demonstrating some basic constructs and validation rules.
     * @param argument null
     * @return null
     */
    public suspend fun getCarrierGateway(argument: GetCarrierGatewayPlainArgs): GetCarrierGatewayResult =
        getCarrierGatewayResultToKotlin(getCarrierGatewayPlain(argument.toJava()).await())

    /**
     * @see [getCarrierGateway].
     * @param carrierGatewayId The ID of the carrier gateway.
     * @return null
     */
    public suspend fun getCarrierGateway(carrierGatewayId: String): GetCarrierGatewayResult {
        val argument = GetCarrierGatewayPlainArgs(
            carrierGatewayId = carrierGatewayId,
        )
        return getCarrierGatewayResultToKotlin(getCarrierGatewayPlain(argument.toJava()).await())
    }

    /**
     * @see [getCarrierGateway].
     * @param argument Builder for [com.pulumi.awsnative.ec2.kotlin.inputs.GetCarrierGatewayPlainArgs].
     * @return null
     */
    public suspend fun getCarrierGateway(argument: suspend GetCarrierGatewayPlainArgsBuilder.() -> Unit): GetCarrierGatewayResult {
        val builder = GetCarrierGatewayPlainArgsBuilder()
        builder.argument()
        val builtArgument = builder.build()
        return getCarrierGatewayResultToKotlin(getCarrierGatewayPlain(builtArgument.toJava()).await())
    }

    /**
     * Specifies a customer gateway.
     * @param argument null
     * @return null
     */
    public suspend fun getCustomerGateway(argument: GetCustomerGatewayPlainArgs): GetCustomerGatewayResult =
        getCustomerGatewayResultToKotlin(getCustomerGatewayPlain(argument.toJava()).await())

    /**
     * @see [getCustomerGateway].
     * @param customerGatewayId The ID of the customer gateway.
     * @return null
     */
    public suspend fun getCustomerGateway(customerGatewayId: String): GetCustomerGatewayResult {
        val argument = GetCustomerGatewayPlainArgs(
            customerGatewayId = customerGatewayId,
        )
        return getCustomerGatewayResultToKotlin(getCustomerGatewayPlain(argument.toJava()).await())
    }

    /**
     * @see [getCustomerGateway].
     * @param argument Builder for [com.pulumi.awsnative.ec2.kotlin.inputs.GetCustomerGatewayPlainArgs].
     * @return null
     */
    public suspend fun getCustomerGateway(argument: suspend GetCustomerGatewayPlainArgsBuilder.() -> Unit): GetCustomerGatewayResult {
        val builder = GetCustomerGatewayPlainArgsBuilder()
        builder.argument()
        val builtArgument = builder.build()
        return getCustomerGatewayResultToKotlin(getCustomerGatewayPlain(builtArgument.toJava()).await())
    }

    /**
     * Resource Type definition for AWS::EC2::DHCPOptions
     * @param argument null
     * @return null
     */
    public suspend fun getDhcpOptions(argument: GetDhcpOptionsPlainArgs): GetDhcpOptionsResult =
        getDhcpOptionsResultToKotlin(getDhcpOptionsPlain(argument.toJava()).await())

    /**
     * @see [getDhcpOptions].
     * @param dhcpOptionsId The ID of the DHCP options set.
     * @return null
     */
    public suspend fun getDhcpOptions(dhcpOptionsId: String): GetDhcpOptionsResult {
        val argument = GetDhcpOptionsPlainArgs(
            dhcpOptionsId = dhcpOptionsId,
        )
        return getDhcpOptionsResultToKotlin(getDhcpOptionsPlain(argument.toJava()).await())
    }

    /**
     * @see [getDhcpOptions].
     * @param argument Builder for [com.pulumi.awsnative.ec2.kotlin.inputs.GetDhcpOptionsPlainArgs].
     * @return null
     */
    public suspend fun getDhcpOptions(argument: suspend GetDhcpOptionsPlainArgsBuilder.() -> Unit): GetDhcpOptionsResult {
        val builder = GetDhcpOptionsPlainArgsBuilder()
        builder.argument()
        val builtArgument = builder.build()
        return getDhcpOptionsResultToKotlin(getDhcpOptionsPlain(builtArgument.toJava()).await())
    }

    /**
     * Resource Type definition for AWS::EC2::EC2Fleet
     * @param argument null
     * @return null
     */
    public suspend fun getEc2Fleet(argument: GetEc2FleetPlainArgs): GetEc2FleetResult =
        getEc2FleetResultToKotlin(getEc2FleetPlain(argument.toJava()).await())

    /**
     * @see [getEc2Fleet].
     * @param fleetId The ID of the EC2 Fleet.
     * @return null
     */
    public suspend fun getEc2Fleet(fleetId: String): GetEc2FleetResult {
        val argument = GetEc2FleetPlainArgs(
            fleetId = fleetId,
        )
        return getEc2FleetResultToKotlin(getEc2FleetPlain(argument.toJava()).await())
    }

    /**
     * @see [getEc2Fleet].
     * @param argument Builder for [com.pulumi.awsnative.ec2.kotlin.inputs.GetEc2FleetPlainArgs].
     * @return null
     */
    public suspend fun getEc2Fleet(argument: suspend GetEc2FleetPlainArgsBuilder.() -> Unit): GetEc2FleetResult {
        val builder = GetEc2FleetPlainArgsBuilder()
        builder.argument()
        val builtArgument = builder.build()
        return getEc2FleetResultToKotlin(getEc2FleetPlain(builtArgument.toJava()).await())
    }

    /**
     * Resource Type definition for AWS::EC2::EgressOnlyInternetGateway
     * @param argument null
     * @return null
     */
    public suspend fun getEgressOnlyInternetGateway(argument: GetEgressOnlyInternetGatewayPlainArgs): GetEgressOnlyInternetGatewayResult =
        getEgressOnlyInternetGatewayResultToKotlin(getEgressOnlyInternetGatewayPlain(argument.toJava()).await())

    /**
     * @see [getEgressOnlyInternetGateway].
     * @param id Service Generated ID of the EgressOnlyInternetGateway
     * @return null
     */
    public suspend fun getEgressOnlyInternetGateway(id: String): GetEgressOnlyInternetGatewayResult {
        val argument = GetEgressOnlyInternetGatewayPlainArgs(
            id = id,
        )
        return getEgressOnlyInternetGatewayResultToKotlin(getEgressOnlyInternetGatewayPlain(argument.toJava()).await())
    }

    /**
     * @see [getEgressOnlyInternetGateway].
     * @param argument Builder for [com.pulumi.awsnative.ec2.kotlin.inputs.GetEgressOnlyInternetGatewayPlainArgs].
     * @return null
     */
    public suspend fun getEgressOnlyInternetGateway(argument: suspend GetEgressOnlyInternetGatewayPlainArgsBuilder.() -> Unit): GetEgressOnlyInternetGatewayResult {
        val builder = GetEgressOnlyInternetGatewayPlainArgsBuilder()
        builder.argument()
        val builtArgument = builder.build()
        return getEgressOnlyInternetGatewayResultToKotlin(getEgressOnlyInternetGatewayPlain(builtArgument.toJava()).await())
    }

    /**
     * Specifies an Elastic IP (EIP) address and can, optionally, associate it with an Amazon EC2 instance.
     *  You can allocate an Elastic IP address from an address pool owned by AWS or from an address pool created from a public IPv4 address range that you have brought to AWS for use with your AWS resources using bring your own IP addresses (BYOIP). For more information, see [Bring Your Own IP Addresses (BYOIP)](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-byoip.html) in the *Amazon EC2 User Guide*.
     *  For more information, see [Elastic IP Addresses](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/elastic-ip-addresses-eip.html) in the *Amazon EC2 User Guide*.
     * @param argument null
     * @return null
     */
    public suspend fun getEip(argument: GetEipPlainArgs): GetEipResult =
        getEipResultToKotlin(getEipPlain(argument.toJava()).await())

    /**
     * @see [getEip].
     * @param allocationId The ID that AWS assigns to represent the allocation of the address for use with Amazon VPC. This is returned only for VPC elastic IP addresses. For example, `eipalloc-5723d13e` .
     * @param publicIp The Elastic IP address.
     * @return null
     */
    public suspend fun getEip(allocationId: String, publicIp: String): GetEipResult {
        val argument = GetEipPlainArgs(
            allocationId = allocationId,
            publicIp = publicIp,
        )
        return getEipResultToKotlin(getEipPlain(argument.toJava()).await())
    }

    /**
     * @see [getEip].
     * @param argument Builder for [com.pulumi.awsnative.ec2.kotlin.inputs.GetEipPlainArgs].
     * @return null
     */
    public suspend fun getEip(argument: suspend GetEipPlainArgsBuilder.() -> Unit): GetEipResult {
        val builder = GetEipPlainArgsBuilder()
        builder.argument()
        val builtArgument = builder.build()
        return getEipResultToKotlin(getEipPlain(builtArgument.toJava()).await())
    }

    /**
     * Associates an Elastic IP address with an instance or a network interface. Before you can use an Elastic IP address, you must allocate it to your account. For more information about working with Elastic IP addresses, see [Elastic IP address concepts and rules](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-eips.html#vpc-eip-overview).
     *  You must specify ``AllocationId`` and either ``InstanceId``, ``NetworkInterfaceId``, or ``PrivateIpAddress``.
     * @param argument null
     * @return null
     */
    public suspend fun getEipAssociation(argument: GetEipAssociationPlainArgs): GetEipAssociationResult =
        getEipAssociationResultToKotlin(getEipAssociationPlain(argument.toJava()).await())

    /**
     * @see [getEipAssociation].
     * @param id The ID of the association.
     * @return null
     */
    public suspend fun getEipAssociation(id: String): GetEipAssociationResult {
        val argument = GetEipAssociationPlainArgs(
            id = id,
        )
        return getEipAssociationResultToKotlin(getEipAssociationPlain(argument.toJava()).await())
    }

    /**
     * @see [getEipAssociation].
     * @param argument Builder for [com.pulumi.awsnative.ec2.kotlin.inputs.GetEipAssociationPlainArgs].
     * @return null
     */
    public suspend fun getEipAssociation(argument: suspend GetEipAssociationPlainArgsBuilder.() -> Unit): GetEipAssociationResult {
        val builder = GetEipAssociationPlainArgsBuilder()
        builder.argument()
        val builtArgument = builder.build()
        return getEipAssociationResultToKotlin(getEipAssociationPlain(builtArgument.toJava()).await())
    }

    /**
     * Associates an AWS Identity and Access Management (IAM) role with an AWS Certificate Manager (ACM) certificate. This association is based on Amazon Resource Names and it enables the certificate to be used by the ACM for Nitro Enclaves application inside an enclave.
     * @param argument null
     * @return null
     */
    public suspend fun getEnclaveCertificateIamRoleAssociation(argument: GetEnclaveCertificateIamRoleAssociationPlainArgs): GetEnclaveCertificateIamRoleAssociationResult =
        getEnclaveCertificateIamRoleAssociationResultToKotlin(getEnclaveCertificateIamRoleAssociationPlain(argument.toJava()).await())

    /**
     * @see [getEnclaveCertificateIamRoleAssociation].
     * @param certificateArn The Amazon Resource Name (ARN) of the ACM certificate with which to associate the IAM role.
     * @param roleArn The Amazon Resource Name (ARN) of the IAM role to associate with the ACM certificate. You can associate up to 16 IAM roles with an ACM certificate.
     * @return null
     */
    public suspend fun getEnclaveCertificateIamRoleAssociation(
        certificateArn: String,
        roleArn: String,
    ): GetEnclaveCertificateIamRoleAssociationResult {
        val argument = GetEnclaveCertificateIamRoleAssociationPlainArgs(
            certificateArn = certificateArn,
            roleArn = roleArn,
        )
        return getEnclaveCertificateIamRoleAssociationResultToKotlin(getEnclaveCertificateIamRoleAssociationPlain(argument.toJava()).await())
    }

    /**
     * @see [getEnclaveCertificateIamRoleAssociation].
     * @param argument Builder for [com.pulumi.awsnative.ec2.kotlin.inputs.GetEnclaveCertificateIamRoleAssociationPlainArgs].
     * @return null
     */
    public suspend fun getEnclaveCertificateIamRoleAssociation(argument: suspend GetEnclaveCertificateIamRoleAssociationPlainArgsBuilder.() -> Unit): GetEnclaveCertificateIamRoleAssociationResult {
        val builder = GetEnclaveCertificateIamRoleAssociationPlainArgsBuilder()
        builder.argument()
        val builtArgument = builder.build()
        return getEnclaveCertificateIamRoleAssociationResultToKotlin(getEnclaveCertificateIamRoleAssociationPlain(builtArgument.toJava()).await())
    }

    /**
     * Specifies a VPC flow log, which enables you to capture IP traffic for a specific network interface, subnet, or VPC.
     * @param argument null
     * @return null
     */
    public suspend fun getFlowLog(argument: GetFlowLogPlainArgs): GetFlowLogResult =
        getFlowLogResultToKotlin(getFlowLogPlain(argument.toJava()).await())

    /**
     * @see [getFlowLog].
     * @param id The Flow Log ID
     * @return null
     */
    public suspend fun getFlowLog(id: String): GetFlowLogResult {
        val argument = GetFlowLogPlainArgs(
            id = id,
        )
        return getFlowLogResultToKotlin(getFlowLogPlain(argument.toJava()).await())
    }

    /**
     * @see [getFlowLog].
     * @param argument Builder for [com.pulumi.awsnative.ec2.kotlin.inputs.GetFlowLogPlainArgs].
     * @return null
     */
    public suspend fun getFlowLog(argument: suspend GetFlowLogPlainArgsBuilder.() -> Unit): GetFlowLogResult {
        val builder = GetFlowLogPlainArgsBuilder()
        builder.argument()
        val builtArgument = builder.build()
        return getFlowLogResultToKotlin(getFlowLogPlain(builtArgument.toJava()).await())
    }

    /**
     * Associates a gateway with a route table. The gateway and route table must be in the same VPC. This association causes the incoming traffic to the gateway to be routed according to the routes in the route table.
     * @param argument null
     * @return null
     */
    public suspend fun getGatewayRouteTableAssociation(argument: GetGatewayRouteTableAssociationPlainArgs): GetGatewayRouteTableAssociationResult =
        getGatewayRouteTableAssociationResultToKotlin(getGatewayRouteTableAssociationPlain(argument.toJava()).await())

    /**
     * @see [getGatewayRouteTableAssociation].
     * @param gatewayId The ID of the gateway.
     * @return null
     */
    public suspend fun getGatewayRouteTableAssociation(gatewayId: String): GetGatewayRouteTableAssociationResult {
        val argument = GetGatewayRouteTableAssociationPlainArgs(
            gatewayId = gatewayId,
        )
        return getGatewayRouteTableAssociationResultToKotlin(getGatewayRouteTableAssociationPlain(argument.toJava()).await())
    }

    /**
     * @see [getGatewayRouteTableAssociation].
     * @param argument Builder for [com.pulumi.awsnative.ec2.kotlin.inputs.GetGatewayRouteTableAssociationPlainArgs].
     * @return null
     */
    public suspend fun getGatewayRouteTableAssociation(argument: suspend GetGatewayRouteTableAssociationPlainArgsBuilder.() -> Unit): GetGatewayRouteTableAssociationResult {
        val builder = GetGatewayRouteTableAssociationPlainArgsBuilder()
        builder.argument()
        val builtArgument = builder.build()
        return getGatewayRouteTableAssociationResultToKotlin(getGatewayRouteTableAssociationPlain(builtArgument.toJava()).await())
    }

    /**
     * Resource Type definition for AWS::EC2::Host
     * @param argument null
     * @return null
     */
    public suspend fun getHost(argument: GetHostPlainArgs): GetHostResult =
        getHostResultToKotlin(getHostPlain(argument.toJava()).await())

    /**
     * @see [getHost].
     * @param hostId ID of the host created.
     * @return null
     */
    public suspend fun getHost(hostId: String): GetHostResult {
        val argument = GetHostPlainArgs(
            hostId = hostId,
        )
        return getHostResultToKotlin(getHostPlain(argument.toJava()).await())
    }

    /**
     * @see [getHost].
     * @param argument Builder for [com.pulumi.awsnative.ec2.kotlin.inputs.GetHostPlainArgs].
     * @return null
     */
    public suspend fun getHost(argument: suspend GetHostPlainArgsBuilder.() -> Unit): GetHostResult {
        val builder = GetHostPlainArgsBuilder()
        builder.argument()
        val builtArgument = builder.build()
        return getHostResultToKotlin(getHostPlain(builtArgument.toJava()).await())
    }

    /**
     * Resource Type definition for AWS::EC2::Instance
     * @param argument null
     * @return null
     */
    public suspend fun getInstance(argument: GetInstancePlainArgs): GetInstanceResult =
        getInstanceResultToKotlin(getInstancePlain(argument.toJava()).await())

    /**
     * @see [getInstance].
     * @param instanceId The EC2 Instance ID.
     * @return null
     */
    public suspend fun getInstance(instanceId: String): GetInstanceResult {
        val argument = GetInstancePlainArgs(
            instanceId = instanceId,
        )
        return getInstanceResultToKotlin(getInstancePlain(argument.toJava()).await())
    }

    /**
     * @see [getInstance].
     * @param argument Builder for [com.pulumi.awsnative.ec2.kotlin.inputs.GetInstancePlainArgs].
     * @return null
     */
    public suspend fun getInstance(argument: suspend GetInstancePlainArgsBuilder.() -> Unit): GetInstanceResult {
        val builder = GetInstancePlainArgsBuilder()
        builder.argument()
        val builtArgument = builder.build()
        return getInstanceResultToKotlin(getInstancePlain(builtArgument.toJava()).await())
    }

    /**
     * Resource Type definition for AWS::EC2::InstanceConnectEndpoint
     * @param argument null
     * @return null
     */
    public suspend fun getInstanceConnectEndpoint(argument: GetInstanceConnectEndpointPlainArgs): GetInstanceConnectEndpointResult =
        getInstanceConnectEndpointResultToKotlin(getInstanceConnectEndpointPlain(argument.toJava()).await())

    /**
     * @see [getInstanceConnectEndpoint].
     * @param id The id of the instance connect endpoint
     * @return null
     */
    public suspend fun getInstanceConnectEndpoint(id: String): GetInstanceConnectEndpointResult {
        val argument = GetInstanceConnectEndpointPlainArgs(
            id = id,
        )
        return getInstanceConnectEndpointResultToKotlin(getInstanceConnectEndpointPlain(argument.toJava()).await())
    }

    /**
     * @see [getInstanceConnectEndpoint].
     * @param argument Builder for [com.pulumi.awsnative.ec2.kotlin.inputs.GetInstanceConnectEndpointPlainArgs].
     * @return null
     */
    public suspend fun getInstanceConnectEndpoint(argument: suspend GetInstanceConnectEndpointPlainArgsBuilder.() -> Unit): GetInstanceConnectEndpointResult {
        val builder = GetInstanceConnectEndpointPlainArgsBuilder()
        builder.argument()
        val builtArgument = builder.build()
        return getInstanceConnectEndpointResultToKotlin(getInstanceConnectEndpointPlain(builtArgument.toJava()).await())
    }

    /**
     * Allocates an internet gateway for use with a VPC. After creating the Internet gateway, you then attach it to a VPC.
     * @param argument null
     * @return null
     */
    public suspend fun getInternetGateway(argument: GetInternetGatewayPlainArgs): GetInternetGatewayResult =
        getInternetGatewayResultToKotlin(getInternetGatewayPlain(argument.toJava()).await())

    /**
     * @see [getInternetGateway].
     * @param internetGatewayId The ID of the internet gateway.
     * @return null
     */
    public suspend fun getInternetGateway(internetGatewayId: String): GetInternetGatewayResult {
        val argument = GetInternetGatewayPlainArgs(
            internetGatewayId = internetGatewayId,
        )
        return getInternetGatewayResultToKotlin(getInternetGatewayPlain(argument.toJava()).await())
    }

    /**
     * @see [getInternetGateway].
     * @param argument Builder for [com.pulumi.awsnative.ec2.kotlin.inputs.GetInternetGatewayPlainArgs].
     * @return null
     */
    public suspend fun getInternetGateway(argument: suspend GetInternetGatewayPlainArgsBuilder.() -> Unit): GetInternetGatewayResult {
        val builder = GetInternetGatewayPlainArgsBuilder()
        builder.argument()
        val builtArgument = builder.build()
        return getInternetGatewayResultToKotlin(getInternetGatewayPlain(builtArgument.toJava()).await())
    }

    /**
     * Resource Schema of AWS::EC2::IPAM Type
     * @param argument null
     * @return null
     */
    public suspend fun getIpam(argument: GetIpamPlainArgs): GetIpamResult =
        getIpamResultToKotlin(getIpamPlain(argument.toJava()).await())

    /**
     * @see [getIpam].
     * @param ipamId Id of the IPAM.
     * @return null
     */
    public suspend fun getIpam(ipamId: String): GetIpamResult {
        val argument = GetIpamPlainArgs(
            ipamId = ipamId,
        )
        return getIpamResultToKotlin(getIpamPlain(argument.toJava()).await())
    }

    /**
     * @see [getIpam].
     * @param argument Builder for [com.pulumi.awsnative.ec2.kotlin.inputs.GetIpamPlainArgs].
     * @return null
     */
    public suspend fun getIpam(argument: suspend GetIpamPlainArgsBuilder.() -> Unit): GetIpamResult {
        val builder = GetIpamPlainArgsBuilder()
        builder.argument()
        val builtArgument = builder.build()
        return getIpamResultToKotlin(getIpamPlain(builtArgument.toJava()).await())
    }

    /**
     * Resource Schema of AWS::EC2::IPAMAllocation Type
     * @param argument null
     * @return null
     */
    public suspend fun getIpamAllocation(argument: GetIpamAllocationPlainArgs): GetIpamAllocationResult =
        getIpamAllocationResultToKotlin(getIpamAllocationPlain(argument.toJava()).await())

    /**
     * @see [getIpamAllocation].
     * @param cidr The CIDR you would like to allocate from the IPAM pool. Note the following:
     * - If there is no DefaultNetmaskLength allocation rule set on the pool, you must specify either the NetmaskLength or the CIDR.
     * - If the DefaultNetmaskLength allocation rule is set on the pool, you can specify either the NetmaskLength or the CIDR and the DefaultNetmaskLength allocation rule will be ignored.
     * Possible values: Any available IPv4 or IPv6 CIDR.
     * @param ipamPoolAllocationId Id of the allocation.
     * @param ipamPoolId Id of the IPAM Pool.
     * @return null
     */
    public suspend fun getIpamAllocation(
        cidr: String,
        ipamPoolAllocationId: String,
        ipamPoolId: String,
    ): GetIpamAllocationResult {
        val argument = GetIpamAllocationPlainArgs(
            cidr = cidr,
            ipamPoolAllocationId = ipamPoolAllocationId,
            ipamPoolId = ipamPoolId,
        )
        return getIpamAllocationResultToKotlin(getIpamAllocationPlain(argument.toJava()).await())
    }

    /**
     * @see [getIpamAllocation].
     * @param argument Builder for [com.pulumi.awsnative.ec2.kotlin.inputs.GetIpamAllocationPlainArgs].
     * @return null
     */
    public suspend fun getIpamAllocation(argument: suspend GetIpamAllocationPlainArgsBuilder.() -> Unit): GetIpamAllocationResult {
        val builder = GetIpamAllocationPlainArgsBuilder()
        builder.argument()
        val builtArgument = builder.build()
        return getIpamAllocationResultToKotlin(getIpamAllocationPlain(builtArgument.toJava()).await())
    }

    /**
     * Resource Schema of AWS::EC2::IPAMPool Type
     * @param argument null
     * @return null
     */
    public suspend fun getIpamPool(argument: GetIpamPoolPlainArgs): GetIpamPoolResult =
        getIpamPoolResultToKotlin(getIpamPoolPlain(argument.toJava()).await())

    /**
     * @see [getIpamPool].
     * @param ipamPoolId Id of the IPAM Pool.
     * @return null
     */
    public suspend fun getIpamPool(ipamPoolId: String): GetIpamPoolResult {
        val argument = GetIpamPoolPlainArgs(
            ipamPoolId = ipamPoolId,
        )
        return getIpamPoolResultToKotlin(getIpamPoolPlain(argument.toJava()).await())
    }

    /**
     * @see [getIpamPool].
     * @param argument Builder for [com.pulumi.awsnative.ec2.kotlin.inputs.GetIpamPoolPlainArgs].
     * @return null
     */
    public suspend fun getIpamPool(argument: suspend GetIpamPoolPlainArgsBuilder.() -> Unit): GetIpamPoolResult {
        val builder = GetIpamPoolPlainArgsBuilder()
        builder.argument()
        val builtArgument = builder.build()
        return getIpamPoolResultToKotlin(getIpamPoolPlain(builtArgument.toJava()).await())
    }

    /**
     * Resource Schema of AWS::EC2::IPAMPoolCidr Type
     * @param argument null
     * @return null
     */
    public suspend fun getIpamPoolCidr(argument: GetIpamPoolCidrPlainArgs): GetIpamPoolCidrResult =
        getIpamPoolCidrResultToKotlin(getIpamPoolCidrPlain(argument.toJava()).await())

    /**
     * @see [getIpamPoolCidr].
     * @param ipamPoolCidrId Id of the IPAM Pool Cidr.
     * @param ipamPoolId Id of the IPAM Pool.
     * @return null
     */
    public suspend fun getIpamPoolCidr(ipamPoolCidrId: String, ipamPoolId: String): GetIpamPoolCidrResult {
        val argument = GetIpamPoolCidrPlainArgs(
            ipamPoolCidrId = ipamPoolCidrId,
            ipamPoolId = ipamPoolId,
        )
        return getIpamPoolCidrResultToKotlin(getIpamPoolCidrPlain(argument.toJava()).await())
    }

    /**
     * @see [getIpamPoolCidr].
     * @param argument Builder for [com.pulumi.awsnative.ec2.kotlin.inputs.GetIpamPoolCidrPlainArgs].
     * @return null
     */
    public suspend fun getIpamPoolCidr(argument: suspend GetIpamPoolCidrPlainArgsBuilder.() -> Unit): GetIpamPoolCidrResult {
        val builder = GetIpamPoolCidrPlainArgsBuilder()
        builder.argument()
        val builtArgument = builder.build()
        return getIpamPoolCidrResultToKotlin(getIpamPoolCidrPlain(builtArgument.toJava()).await())
    }

    /**
     * Resource Schema of AWS::EC2::IPAMResourceDiscovery Type
     * @param argument null
     * @return null
     */
    public suspend fun getIpamResourceDiscovery(argument: GetIpamResourceDiscoveryPlainArgs): GetIpamResourceDiscoveryResult =
        getIpamResourceDiscoveryResultToKotlin(getIpamResourceDiscoveryPlain(argument.toJava()).await())

    /**
     * @see [getIpamResourceDiscovery].
     * @param ipamResourceDiscoveryId Id of the IPAM Pool.
     * @return null
     */
    public suspend fun getIpamResourceDiscovery(ipamResourceDiscoveryId: String): GetIpamResourceDiscoveryResult {
        val argument = GetIpamResourceDiscoveryPlainArgs(
            ipamResourceDiscoveryId = ipamResourceDiscoveryId,
        )
        return getIpamResourceDiscoveryResultToKotlin(getIpamResourceDiscoveryPlain(argument.toJava()).await())
    }

    /**
     * @see [getIpamResourceDiscovery].
     * @param argument Builder for [com.pulumi.awsnative.ec2.kotlin.inputs.GetIpamResourceDiscoveryPlainArgs].
     * @return null
     */
    public suspend fun getIpamResourceDiscovery(argument: suspend GetIpamResourceDiscoveryPlainArgsBuilder.() -> Unit): GetIpamResourceDiscoveryResult {
        val builder = GetIpamResourceDiscoveryPlainArgsBuilder()
        builder.argument()
        val builtArgument = builder.build()
        return getIpamResourceDiscoveryResultToKotlin(getIpamResourceDiscoveryPlain(builtArgument.toJava()).await())
    }

    /**
     * Resource Schema of AWS::EC2::IPAMResourceDiscoveryAssociation Type
     * @param argument null
     * @return null
     */
    public suspend fun getIpamResourceDiscoveryAssociation(argument: GetIpamResourceDiscoveryAssociationPlainArgs): GetIpamResourceDiscoveryAssociationResult =
        getIpamResourceDiscoveryAssociationResultToKotlin(getIpamResourceDiscoveryAssociationPlain(argument.toJava()).await())

    /**
     * @see [getIpamResourceDiscoveryAssociation].
     * @param ipamResourceDiscoveryAssociationId Id of the IPAM Resource Discovery Association.
     * @return null
     */
    public suspend fun getIpamResourceDiscoveryAssociation(ipamResourceDiscoveryAssociationId: String): GetIpamResourceDiscoveryAssociationResult {
        val argument = GetIpamResourceDiscoveryAssociationPlainArgs(
            ipamResourceDiscoveryAssociationId = ipamResourceDiscoveryAssociationId,
        )
        return getIpamResourceDiscoveryAssociationResultToKotlin(getIpamResourceDiscoveryAssociationPlain(argument.toJava()).await())
    }

    /**
     * @see [getIpamResourceDiscoveryAssociation].
     * @param argument Builder for [com.pulumi.awsnative.ec2.kotlin.inputs.GetIpamResourceDiscoveryAssociationPlainArgs].
     * @return null
     */
    public suspend fun getIpamResourceDiscoveryAssociation(argument: suspend GetIpamResourceDiscoveryAssociationPlainArgsBuilder.() -> Unit): GetIpamResourceDiscoveryAssociationResult {
        val builder = GetIpamResourceDiscoveryAssociationPlainArgsBuilder()
        builder.argument()
        val builtArgument = builder.build()
        return getIpamResourceDiscoveryAssociationResultToKotlin(getIpamResourceDiscoveryAssociationPlain(builtArgument.toJava()).await())
    }

    /**
     * Resource Schema of AWS::EC2::IPAMScope Type
     * @param argument null
     * @return null
     */
    public suspend fun getIpamScope(argument: GetIpamScopePlainArgs): GetIpamScopeResult =
        getIpamScopeResultToKotlin(getIpamScopePlain(argument.toJava()).await())

    /**
     * @see [getIpamScope].
     * @param ipamScopeId Id of the IPAM scope.
     * @return null
     */
    public suspend fun getIpamScope(ipamScopeId: String): GetIpamScopeResult {
        val argument = GetIpamScopePlainArgs(
            ipamScopeId = ipamScopeId,
        )
        return getIpamScopeResultToKotlin(getIpamScopePlain(argument.toJava()).await())
    }

    /**
     * @see [getIpamScope].
     * @param argument Builder for [com.pulumi.awsnative.ec2.kotlin.inputs.GetIpamScopePlainArgs].
     * @return null
     */
    public suspend fun getIpamScope(argument: suspend GetIpamScopePlainArgsBuilder.() -> Unit): GetIpamScopeResult {
        val builder = GetIpamScopePlainArgsBuilder()
        builder.argument()
        val builtArgument = builder.build()
        return getIpamScopeResultToKotlin(getIpamScopePlain(builtArgument.toJava()).await())
    }

    /**
     * Specifies a key pair for use with an EC2long instance as follows:
     *   +  To import an existing key pair, include the ``PublicKeyMaterial`` property.
     *   +  To create a new key pair, omit the ``PublicKeyMaterial`` property.
     *  When you import an existing key pair, you specify the public key material for the key. We assume that you have the private key material for the key. CFNlong does not create or return the private key material when you import a key pair.
     *  When you create a new key pair, the private key is saved to SYSlong Parameter Store, using a parameter with the following name: ``/ec2/keypair/{key_pair_id}``. For more information about retrieving private key, and the required permissions, see [Create a key pair using](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/create-key-pairs.html#create-key-pair-cloudformation) in the *User Guide*.
     *  When CFN deletes a key pair that was created or imported by a stack, it also deletes the parameter that was used to store the private key material in Parameter Store.
     * @param argument null
     * @return null
     */
    public suspend fun getKeyPair(argument: GetKeyPairPlainArgs): GetKeyPairResult =
        getKeyPairResultToKotlin(getKeyPairPlain(argument.toJava()).await())

    /**
     * @see [getKeyPair].
     * @param keyName A unique name for the key pair.
     *  Constraints: Up to 255 ASCII characters
     * @return null
     */
    public suspend fun getKeyPair(keyName: String): GetKeyPairResult {
        val argument = GetKeyPairPlainArgs(
            keyName = keyName,
        )
        return getKeyPairResultToKotlin(getKeyPairPlain(argument.toJava()).await())
    }

    /**
     * @see [getKeyPair].
     * @param argument Builder for [com.pulumi.awsnative.ec2.kotlin.inputs.GetKeyPairPlainArgs].
     * @return null
     */
    public suspend fun getKeyPair(argument: suspend GetKeyPairPlainArgsBuilder.() -> Unit): GetKeyPairResult {
        val builder = GetKeyPairPlainArgsBuilder()
        builder.argument()
        val builtArgument = builder.build()
        return getKeyPairResultToKotlin(getKeyPairPlain(builtArgument.toJava()).await())
    }

    /**
     * Specifies the properties for creating a launch template.
     *  The minimum required properties for specifying a launch template are as follows:
     *   +  You must specify at least one property for the launch template data.
     *   +  You can optionally specify a name for the launch template. If you do not specify a name, CFN creates a name for you.
     *  A launch template can contain some or all of the configuration information to launch an instance. When you launch an instance using a launch template, instance properties that are not specified in the launch template use default values, except the ``ImageId`` property, which has no default value. If you do not specify an AMI ID for the launch template ``ImageId`` property, you must specify an AMI ID for the instance ``ImageId`` property.
     *  For more information, see [Launch an instance from a launch template](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-launch-templates.html) in the *Amazon EC2 User Guide*.
     * @param argument null
     * @return null
     */
    public suspend fun getLaunchTemplate(argument: GetLaunchTemplatePlainArgs): GetLaunchTemplateResult =
        getLaunchTemplateResultToKotlin(getLaunchTemplatePlain(argument.toJava()).await())

    /**
     * @see [getLaunchTemplate].
     * @param launchTemplateId The ID of the launch template.
     * @return null
     */
    public suspend fun getLaunchTemplate(launchTemplateId: String): GetLaunchTemplateResult {
        val argument = GetLaunchTemplatePlainArgs(
            launchTemplateId = launchTemplateId,
        )
        return getLaunchTemplateResultToKotlin(getLaunchTemplatePlain(argument.toJava()).await())
    }

    /**
     * @see [getLaunchTemplate].
     * @param argument Builder for [com.pulumi.awsnative.ec2.kotlin.inputs.GetLaunchTemplatePlainArgs].
     * @return null
     */
    public suspend fun getLaunchTemplate(argument: suspend GetLaunchTemplatePlainArgsBuilder.() -> Unit): GetLaunchTemplateResult {
        val builder = GetLaunchTemplatePlainArgsBuilder()
        builder.argument()
        val builtArgument = builder.build()
        return getLaunchTemplateResultToKotlin(getLaunchTemplatePlain(builtArgument.toJava()).await())
    }

    /**
     * Describes a route for a local gateway route table.
     * @param argument null
     * @return null
     */
    public suspend fun getLocalGatewayRoute(argument: GetLocalGatewayRoutePlainArgs): GetLocalGatewayRouteResult =
        getLocalGatewayRouteResultToKotlin(getLocalGatewayRoutePlain(argument.toJava()).await())

    /**
     * @see [getLocalGatewayRoute].
     * @param destinationCidrBlock The CIDR block used for destination matches.
     * @param localGatewayRouteTableId The ID of the local gateway route table.
     * @return null
     */
    public suspend fun getLocalGatewayRoute(
        destinationCidrBlock: String,
        localGatewayRouteTableId: String,
    ): GetLocalGatewayRouteResult {
        val argument = GetLocalGatewayRoutePlainArgs(
            destinationCidrBlock = destinationCidrBlock,
            localGatewayRouteTableId = localGatewayRouteTableId,
        )
        return getLocalGatewayRouteResultToKotlin(getLocalGatewayRoutePlain(argument.toJava()).await())
    }

    /**
     * @see [getLocalGatewayRoute].
     * @param argument Builder for [com.pulumi.awsnative.ec2.kotlin.inputs.GetLocalGatewayRoutePlainArgs].
     * @return null
     */
    public suspend fun getLocalGatewayRoute(argument: suspend GetLocalGatewayRoutePlainArgsBuilder.() -> Unit): GetLocalGatewayRouteResult {
        val builder = GetLocalGatewayRoutePlainArgsBuilder()
        builder.argument()
        val builtArgument = builder.build()
        return getLocalGatewayRouteResultToKotlin(getLocalGatewayRoutePlain(builtArgument.toJava()).await())
    }

    /**
     * Describes a route table for a local gateway.
     * @param argument null
     * @return null
     */
    public suspend fun getLocalGatewayRouteTable(argument: GetLocalGatewayRouteTablePlainArgs): GetLocalGatewayRouteTableResult =
        getLocalGatewayRouteTableResultToKotlin(getLocalGatewayRouteTablePlain(argument.toJava()).await())

    /**
     * @see [getLocalGatewayRouteTable].
     * @param localGatewayRouteTableId The ID of the local gateway route table.
     * @return null
     */
    public suspend fun getLocalGatewayRouteTable(localGatewayRouteTableId: String): GetLocalGatewayRouteTableResult {
        val argument = GetLocalGatewayRouteTablePlainArgs(
            localGatewayRouteTableId = localGatewayRouteTableId,
        )
        return getLocalGatewayRouteTableResultToKotlin(getLocalGatewayRouteTablePlain(argument.toJava()).await())
    }

    /**
     * @see [getLocalGatewayRouteTable].
     * @param argument Builder for [com.pulumi.awsnative.ec2.kotlin.inputs.GetLocalGatewayRouteTablePlainArgs].
     * @return null
     */
    public suspend fun getLocalGatewayRouteTable(argument: suspend GetLocalGatewayRouteTablePlainArgsBuilder.() -> Unit): GetLocalGatewayRouteTableResult {
        val builder = GetLocalGatewayRouteTablePlainArgsBuilder()
        builder.argument()
        val builtArgument = builder.build()
        return getLocalGatewayRouteTableResultToKotlin(getLocalGatewayRouteTablePlain(builtArgument.toJava()).await())
    }

    /**
     * Describes a local gateway route table virtual interface group association for a local gateway.
     * @param argument null
     * @return null
     */
    public suspend fun getLocalGatewayRouteTableVirtualInterfaceGroupAssociation(argument: GetLocalGatewayRouteTableVirtualInterfaceGroupAssociationPlainArgs): GetLocalGatewayRouteTableVirtualInterfaceGroupAssociationResult =
        getLocalGatewayRouteTableVirtualInterfaceGroupAssociationResultToKotlin(getLocalGatewayRouteTableVirtualInterfaceGroupAssociationPlain(argument.toJava()).await())

    /**
     * @see [getLocalGatewayRouteTableVirtualInterfaceGroupAssociation].
     * @param localGatewayRouteTableVirtualInterfaceGroupAssociationId The ID of the local gateway route table virtual interface group association.
     * @return null
     */
    public suspend fun getLocalGatewayRouteTableVirtualInterfaceGroupAssociation(localGatewayRouteTableVirtualInterfaceGroupAssociationId: String): GetLocalGatewayRouteTableVirtualInterfaceGroupAssociationResult {
        val argument = GetLocalGatewayRouteTableVirtualInterfaceGroupAssociationPlainArgs(
            localGatewayRouteTableVirtualInterfaceGroupAssociationId = localGatewayRouteTableVirtualInterfaceGroupAssociationId,
        )
        return getLocalGatewayRouteTableVirtualInterfaceGroupAssociationResultToKotlin(getLocalGatewayRouteTableVirtualInterfaceGroupAssociationPlain(argument.toJava()).await())
    }

    /**
     * @see [getLocalGatewayRouteTableVirtualInterfaceGroupAssociation].
     * @param argument Builder for [com.pulumi.awsnative.ec2.kotlin.inputs.GetLocalGatewayRouteTableVirtualInterfaceGroupAssociationPlainArgs].
     * @return null
     */
    public suspend fun getLocalGatewayRouteTableVirtualInterfaceGroupAssociation(argument: suspend GetLocalGatewayRouteTableVirtualInterfaceGroupAssociationPlainArgsBuilder.() -> Unit): GetLocalGatewayRouteTableVirtualInterfaceGroupAssociationResult {
        val builder = GetLocalGatewayRouteTableVirtualInterfaceGroupAssociationPlainArgsBuilder()
        builder.argument()
        val builtArgument = builder.build()
        return getLocalGatewayRouteTableVirtualInterfaceGroupAssociationResultToKotlin(getLocalGatewayRouteTableVirtualInterfaceGroupAssociationPlain(builtArgument.toJava()).await())
    }

    /**
     * Describes an association between a local gateway route table and a VPC.
     * @param argument null
     * @return null
     */
    public suspend fun getLocalGatewayRouteTableVpcAssociation(argument: GetLocalGatewayRouteTableVpcAssociationPlainArgs): GetLocalGatewayRouteTableVpcAssociationResult =
        getLocalGatewayRouteTableVpcAssociationResultToKotlin(getLocalGatewayRouteTableVpcAssociationPlain(argument.toJava()).await())

    /**
     * @see [getLocalGatewayRouteTableVpcAssociation].
     * @param localGatewayRouteTableVpcAssociationId The ID of the association.
     * @return null
     */
    public suspend fun getLocalGatewayRouteTableVpcAssociation(localGatewayRouteTableVpcAssociationId: String): GetLocalGatewayRouteTableVpcAssociationResult {
        val argument = GetLocalGatewayRouteTableVpcAssociationPlainArgs(
            localGatewayRouteTableVpcAssociationId = localGatewayRouteTableVpcAssociationId,
        )
        return getLocalGatewayRouteTableVpcAssociationResultToKotlin(getLocalGatewayRouteTableVpcAssociationPlain(argument.toJava()).await())
    }

    /**
     * @see [getLocalGatewayRouteTableVpcAssociation].
     * @param argument Builder for [com.pulumi.awsnative.ec2.kotlin.inputs.GetLocalGatewayRouteTableVpcAssociationPlainArgs].
     * @return null
     */
    public suspend fun getLocalGatewayRouteTableVpcAssociation(argument: suspend GetLocalGatewayRouteTableVpcAssociationPlainArgsBuilder.() -> Unit): GetLocalGatewayRouteTableVpcAssociationResult {
        val builder = GetLocalGatewayRouteTableVpcAssociationPlainArgsBuilder()
        builder.argument()
        val builtArgument = builder.build()
        return getLocalGatewayRouteTableVpcAssociationResultToKotlin(getLocalGatewayRouteTableVpcAssociationPlain(builtArgument.toJava()).await())
    }

    /**
     * Specifies a network address translation (NAT) gateway in the specified subnet. You can create either a public NAT gateway or a private NAT gateway. The default is a public NAT gateway. If you create a public NAT gateway, you must specify an elastic IP address.
     *  With a NAT gateway, instances in a private subnet can connect to the internet, other AWS services, or an on-premises network using the IP address of the NAT gateway. For more information, see [NAT gateways](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-nat-gateway.html) in the *Amazon VPC User Guide*.
     *  If you add a default route (``AWS::EC2::Route`` resource) that points to a NAT gateway, specify the NAT gateway ID for the route's ``NatGatewayId`` property.
     *   When you associate an Elastic IP address or secondary Elastic IP address with a public NAT gateway, the network border group of the Elastic IP address must match the network border group of the Availability Zone (AZ) that the public NAT gateway is in. Otherwise, the NAT gateway fails to launch. You can see the network border group for the AZ by viewing the details of the subnet. Similarly, you can view the network border group for the Elastic IP address by viewing its details. For more information, see [Allocate an Elastic IP address](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-eips.html#allocate-eip) in the *Amazon VPC User Guide*.
     * @param argument null
     * @return null
     */
    public suspend fun getNatGateway(argument: GetNatGatewayPlainArgs): GetNatGatewayResult =
        getNatGatewayResultToKotlin(getNatGatewayPlain(argument.toJava()).await())

    /**
     * @see [getNatGateway].
     * @param natGatewayId The ID of the NAT gateway.
     * @return null
     */
    public suspend fun getNatGateway(natGatewayId: String): GetNatGatewayResult {
        val argument = GetNatGatewayPlainArgs(
            natGatewayId = natGatewayId,
        )
        return getNatGatewayResultToKotlin(getNatGatewayPlain(argument.toJava()).await())
    }

    /**
     * @see [getNatGateway].
     * @param argument Builder for [com.pulumi.awsnative.ec2.kotlin.inputs.GetNatGatewayPlainArgs].
     * @return null
     */
    public suspend fun getNatGateway(argument: suspend GetNatGatewayPlainArgsBuilder.() -> Unit): GetNatGatewayResult {
        val builder = GetNatGatewayPlainArgsBuilder()
        builder.argument()
        val builtArgument = builder.build()
        return getNatGatewayResultToKotlin(getNatGatewayPlain(builtArgument.toJava()).await())
    }

    /**
     * Specifies a network ACL for your VPC.
     * @param argument null
     * @return null
     */
    public suspend fun getNetworkAcl(argument: GetNetworkAclPlainArgs): GetNetworkAclResult =
        getNetworkAclResultToKotlin(getNetworkAclPlain(argument.toJava()).await())

    /**
     * @see [getNetworkAcl].
     * @param id The ID of the network ACL.
     * @return null
     */
    public suspend fun getNetworkAcl(id: String): GetNetworkAclResult {
        val argument = GetNetworkAclPlainArgs(
            id = id,
        )
        return getNetworkAclResultToKotlin(getNetworkAclPlain(argument.toJava()).await())
    }

    /**
     * @see [getNetworkAcl].
     * @param argument Builder for [com.pulumi.awsnative.ec2.kotlin.inputs.GetNetworkAclPlainArgs].
     * @return null
     */
    public suspend fun getNetworkAcl(argument: suspend GetNetworkAclPlainArgsBuilder.() -> Unit): GetNetworkAclResult {
        val builder = GetNetworkAclPlainArgsBuilder()
        builder.argument()
        val builtArgument = builder.build()
        return getNetworkAclResultToKotlin(getNetworkAclPlain(builtArgument.toJava()).await())
    }

    /**
     * Resource schema for AWS::EC2::NetworkInsightsAccessScope
     * @param argument null
     * @return null
     */
    public suspend fun getNetworkInsightsAccessScope(argument: GetNetworkInsightsAccessScopePlainArgs): GetNetworkInsightsAccessScopeResult =
        getNetworkInsightsAccessScopeResultToKotlin(getNetworkInsightsAccessScopePlain(argument.toJava()).await())

    /**
     * @see [getNetworkInsightsAccessScope].
     * @param networkInsightsAccessScopeId The ID of the Network Access Scope.
     * @return null
     */
    public suspend fun getNetworkInsightsAccessScope(networkInsightsAccessScopeId: String): GetNetworkInsightsAccessScopeResult {
        val argument = GetNetworkInsightsAccessScopePlainArgs(
            networkInsightsAccessScopeId = networkInsightsAccessScopeId,
        )
        return getNetworkInsightsAccessScopeResultToKotlin(getNetworkInsightsAccessScopePlain(argument.toJava()).await())
    }

    /**
     * @see [getNetworkInsightsAccessScope].
     * @param argument Builder for [com.pulumi.awsnative.ec2.kotlin.inputs.GetNetworkInsightsAccessScopePlainArgs].
     * @return null
     */
    public suspend fun getNetworkInsightsAccessScope(argument: suspend GetNetworkInsightsAccessScopePlainArgsBuilder.() -> Unit): GetNetworkInsightsAccessScopeResult {
        val builder = GetNetworkInsightsAccessScopePlainArgsBuilder()
        builder.argument()
        val builtArgument = builder.build()
        return getNetworkInsightsAccessScopeResultToKotlin(getNetworkInsightsAccessScopePlain(builtArgument.toJava()).await())
    }

    /**
     * Resource schema for AWS::EC2::NetworkInsightsAccessScopeAnalysis
     * @param argument null
     * @return null
     */
    public suspend fun getNetworkInsightsAccessScopeAnalysis(argument: GetNetworkInsightsAccessScopeAnalysisPlainArgs): GetNetworkInsightsAccessScopeAnalysisResult =
        getNetworkInsightsAccessScopeAnalysisResultToKotlin(getNetworkInsightsAccessScopeAnalysisPlain(argument.toJava()).await())

    /**
     * @see [getNetworkInsightsAccessScopeAnalysis].
     * @param networkInsightsAccessScopeAnalysisId The ID of the Network Access Scope analysis.
     * @return null
     */
    public suspend fun getNetworkInsightsAccessScopeAnalysis(networkInsightsAccessScopeAnalysisId: String): GetNetworkInsightsAccessScopeAnalysisResult {
        val argument = GetNetworkInsightsAccessScopeAnalysisPlainArgs(
            networkInsightsAccessScopeAnalysisId = networkInsightsAccessScopeAnalysisId,
        )
        return getNetworkInsightsAccessScopeAnalysisResultToKotlin(getNetworkInsightsAccessScopeAnalysisPlain(argument.toJava()).await())
    }

    /**
     * @see [getNetworkInsightsAccessScopeAnalysis].
     * @param argument Builder for [com.pulumi.awsnative.ec2.kotlin.inputs.GetNetworkInsightsAccessScopeAnalysisPlainArgs].
     * @return null
     */
    public suspend fun getNetworkInsightsAccessScopeAnalysis(argument: suspend GetNetworkInsightsAccessScopeAnalysisPlainArgsBuilder.() -> Unit): GetNetworkInsightsAccessScopeAnalysisResult {
        val builder = GetNetworkInsightsAccessScopeAnalysisPlainArgsBuilder()
        builder.argument()
        val builtArgument = builder.build()
        return getNetworkInsightsAccessScopeAnalysisResultToKotlin(getNetworkInsightsAccessScopeAnalysisPlain(builtArgument.toJava()).await())
    }

    /**
     * Resource schema for AWS::EC2::NetworkInsightsAnalysis
     * @param argument null
     * @return null
     */
    public suspend fun getNetworkInsightsAnalysis(argument: GetNetworkInsightsAnalysisPlainArgs): GetNetworkInsightsAnalysisResult =
        getNetworkInsightsAnalysisResultToKotlin(getNetworkInsightsAnalysisPlain(argument.toJava()).await())

    /**
     * @see [getNetworkInsightsAnalysis].
     * @param networkInsightsAnalysisId The ID of the network insights analysis.
     * @return null
     */
    public suspend fun getNetworkInsightsAnalysis(networkInsightsAnalysisId: String): GetNetworkInsightsAnalysisResult {
        val argument = GetNetworkInsightsAnalysisPlainArgs(
            networkInsightsAnalysisId = networkInsightsAnalysisId,
        )
        return getNetworkInsightsAnalysisResultToKotlin(getNetworkInsightsAnalysisPlain(argument.toJava()).await())
    }

    /**
     * @see [getNetworkInsightsAnalysis].
     * @param argument Builder for [com.pulumi.awsnative.ec2.kotlin.inputs.GetNetworkInsightsAnalysisPlainArgs].
     * @return null
     */
    public suspend fun getNetworkInsightsAnalysis(argument: suspend GetNetworkInsightsAnalysisPlainArgsBuilder.() -> Unit): GetNetworkInsightsAnalysisResult {
        val builder = GetNetworkInsightsAnalysisPlainArgsBuilder()
        builder.argument()
        val builtArgument = builder.build()
        return getNetworkInsightsAnalysisResultToKotlin(getNetworkInsightsAnalysisPlain(builtArgument.toJava()).await())
    }

    /**
     * Resource schema for AWS::EC2::NetworkInsightsPath
     * @param argument null
     * @return null
     */
    public suspend fun getNetworkInsightsPath(argument: GetNetworkInsightsPathPlainArgs): GetNetworkInsightsPathResult =
        getNetworkInsightsPathResultToKotlin(getNetworkInsightsPathPlain(argument.toJava()).await())

    /**
     * @see [getNetworkInsightsPath].
     * @param networkInsightsPathId The ID of the path.
     * @return null
     */
    public suspend fun getNetworkInsightsPath(networkInsightsPathId: String): GetNetworkInsightsPathResult {
        val argument = GetNetworkInsightsPathPlainArgs(
            networkInsightsPathId = networkInsightsPathId,
        )
        return getNetworkInsightsPathResultToKotlin(getNetworkInsightsPathPlain(argument.toJava()).await())
    }

    /**
     * @see [getNetworkInsightsPath].
     * @param argument Builder for [com.pulumi.awsnative.ec2.kotlin.inputs.GetNetworkInsightsPathPlainArgs].
     * @return null
     */
    public suspend fun getNetworkInsightsPath(argument: suspend GetNetworkInsightsPathPlainArgsBuilder.() -> Unit): GetNetworkInsightsPathResult {
        val builder = GetNetworkInsightsPathPlainArgsBuilder()
        builder.argument()
        val builtArgument = builder.build()
        return getNetworkInsightsPathResultToKotlin(getNetworkInsightsPathPlain(builtArgument.toJava()).await())
    }

    /**
     * The AWS::EC2::NetworkInterface resource creates network interface
     * @param argument null
     * @return null
     */
    public suspend fun getNetworkInterface(argument: GetNetworkInterfacePlainArgs): GetNetworkInterfaceResult =
        getNetworkInterfaceResultToKotlin(getNetworkInterfacePlain(argument.toJava()).await())

    /**
     * @see [getNetworkInterface].
     * @param id Network interface id.
     * @return null
     */
    public suspend fun getNetworkInterface(id: String): GetNetworkInterfaceResult {
        val argument = GetNetworkInterfacePlainArgs(
            id = id,
        )
        return getNetworkInterfaceResultToKotlin(getNetworkInterfacePlain(argument.toJava()).await())
    }

    /**
     * @see [getNetworkInterface].
     * @param argument Builder for [com.pulumi.awsnative.ec2.kotlin.inputs.GetNetworkInterfacePlainArgs].
     * @return null
     */
    public suspend fun getNetworkInterface(argument: suspend GetNetworkInterfacePlainArgsBuilder.() -> Unit): GetNetworkInterfaceResult {
        val builder = GetNetworkInterfacePlainArgsBuilder()
        builder.argument()
        val builtArgument = builder.build()
        return getNetworkInterfaceResultToKotlin(getNetworkInterfacePlain(builtArgument.toJava()).await())
    }

    /**
     * Attaches an elastic network interface (ENI) to an Amazon EC2 instance. You can use this resource type to attach additional network interfaces to an instance without interruption.
     * @param argument null
     * @return null
     */
    public suspend fun getNetworkInterfaceAttachment(argument: GetNetworkInterfaceAttachmentPlainArgs): GetNetworkInterfaceAttachmentResult =
        getNetworkInterfaceAttachmentResultToKotlin(getNetworkInterfaceAttachmentPlain(argument.toJava()).await())

    /**
     * @see [getNetworkInterfaceAttachment].
     * @param attachmentId The ID of the network interface attachment.
     * @return null
     */
    public suspend fun getNetworkInterfaceAttachment(attachmentId: String): GetNetworkInterfaceAttachmentResult {
        val argument = GetNetworkInterfaceAttachmentPlainArgs(
            attachmentId = attachmentId,
        )
        return getNetworkInterfaceAttachmentResultToKotlin(getNetworkInterfaceAttachmentPlain(argument.toJava()).await())
    }

    /**
     * @see [getNetworkInterfaceAttachment].
     * @param argument Builder for [com.pulumi.awsnative.ec2.kotlin.inputs.GetNetworkInterfaceAttachmentPlainArgs].
     * @return null
     */
    public suspend fun getNetworkInterfaceAttachment(argument: suspend GetNetworkInterfaceAttachmentPlainArgsBuilder.() -> Unit): GetNetworkInterfaceAttachmentResult {
        val builder = GetNetworkInterfaceAttachmentPlainArgsBuilder()
        builder.argument()
        val builtArgument = builder.build()
        return getNetworkInterfaceAttachmentResultToKotlin(getNetworkInterfaceAttachmentPlain(builtArgument.toJava()).await())
    }

    /**
     * Resource Type definition for AWS::EC2::PlacementGroup
     * @param argument null
     * @return null
     */
    public suspend fun getPlacementGroup(argument: GetPlacementGroupPlainArgs): GetPlacementGroupResult =
        getPlacementGroupResultToKotlin(getPlacementGroupPlain(argument.toJava()).await())

    /**
     * @see [getPlacementGroup].
     * @param groupName The Group Name of Placement Group.
     * @return null
     */
    public suspend fun getPlacementGroup(groupName: String): GetPlacementGroupResult {
        val argument = GetPlacementGroupPlainArgs(
            groupName = groupName,
        )
        return getPlacementGroupResultToKotlin(getPlacementGroupPlain(argument.toJava()).await())
    }

    /**
     * @see [getPlacementGroup].
     * @param argument Builder for [com.pulumi.awsnative.ec2.kotlin.inputs.GetPlacementGroupPlainArgs].
     * @return null
     */
    public suspend fun getPlacementGroup(argument: suspend GetPlacementGroupPlainArgsBuilder.() -> Unit): GetPlacementGroupResult {
        val builder = GetPlacementGroupPlainArgsBuilder()
        builder.argument()
        val builtArgument = builder.build()
        return getPlacementGroupResultToKotlin(getPlacementGroupPlain(builtArgument.toJava()).await())
    }

    /**
     * Resource schema of AWS::EC2::PrefixList Type
     * @param argument null
     * @return null
     */
    public suspend fun getPrefixList(argument: GetPrefixListPlainArgs): GetPrefixListResult =
        getPrefixListResultToKotlin(getPrefixListPlain(argument.toJava()).await())

    /**
     * @see [getPrefixList].
     * @param prefixListId Id of Prefix List.
     * @return null
     */
    public suspend fun getPrefixList(prefixListId: String): GetPrefixListResult {
        val argument = GetPrefixListPlainArgs(
            prefixListId = prefixListId,
        )
        return getPrefixListResultToKotlin(getPrefixListPlain(argument.toJava()).await())
    }

    /**
     * @see [getPrefixList].
     * @param argument Builder for [com.pulumi.awsnative.ec2.kotlin.inputs.GetPrefixListPlainArgs].
     * @return null
     */
    public suspend fun getPrefixList(argument: suspend GetPrefixListPlainArgsBuilder.() -> Unit): GetPrefixListResult {
        val builder = GetPrefixListPlainArgsBuilder()
        builder.argument()
        val builtArgument = builder.build()
        return getPrefixListResultToKotlin(getPrefixListPlain(builtArgument.toJava()).await())
    }

    /**
     * Specifies a route in a route table. For more information, see [Routes](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Route_Tables.html#route-table-routes) in the *Amazon VPC User Guide*.
     *  You must specify either a destination CIDR block or prefix list ID. You must also specify exactly one of the resources as the target.
     *  If you create a route that references a transit gateway in the same template where you create the transit gateway, you must declare a dependency on the transit gateway attachment. The route table cannot use the transit gateway until it has successfully attached to the VPC. Add a [DependsOn Attribute](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html) in the ``AWS::EC2::Route`` resource to explicitly declare a dependency on the ``AWS::EC2::TransitGatewayAttachment`` resource.
     * @param argument null
     * @return null
     */
    public suspend fun getRoute(argument: GetRoutePlainArgs): GetRouteResult =
        getRouteResultToKotlin(getRoutePlain(argument.toJava()).await())

    /**
     * @see [getRoute].
     * @param cidrBlock The IPv4 CIDR block.
     * @param routeTableId The ID of the route table for the route.
     * @return null
     */
    public suspend fun getRoute(cidrBlock: String, routeTableId: String): GetRouteResult {
        val argument = GetRoutePlainArgs(
            cidrBlock = cidrBlock,
            routeTableId = routeTableId,
        )
        return getRouteResultToKotlin(getRoutePlain(argument.toJava()).await())
    }

    /**
     * @see [getRoute].
     * @param argument Builder for [com.pulumi.awsnative.ec2.kotlin.inputs.GetRoutePlainArgs].
     * @return null
     */
    public suspend fun getRoute(argument: suspend GetRoutePlainArgsBuilder.() -> Unit): GetRouteResult {
        val builder = GetRoutePlainArgsBuilder()
        builder.argument()
        val builtArgument = builder.build()
        return getRouteResultToKotlin(getRoutePlain(builtArgument.toJava()).await())
    }

    /**
     * Specifies a route table for the specified VPC. After you create a route table, you can add routes and associate the table with a subnet.
     *  For more information, see [Route tables](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Route_Tables.html) in the *Amazon VPC User Guide*.
     * @param argument null
     * @return null
     */
    public suspend fun getRouteTable(argument: GetRouteTablePlainArgs): GetRouteTableResult =
        getRouteTableResultToKotlin(getRouteTablePlain(argument.toJava()).await())

    /**
     * @see [getRouteTable].
     * @param routeTableId The ID of the route table.
     * @return null
     */
    public suspend fun getRouteTable(routeTableId: String): GetRouteTableResult {
        val argument = GetRouteTablePlainArgs(
            routeTableId = routeTableId,
        )
        return getRouteTableResultToKotlin(getRouteTablePlain(argument.toJava()).await())
    }

    /**
     * @see [getRouteTable].
     * @param argument Builder for [com.pulumi.awsnative.ec2.kotlin.inputs.GetRouteTablePlainArgs].
     * @return null
     */
    public suspend fun getRouteTable(argument: suspend GetRouteTablePlainArgsBuilder.() -> Unit): GetRouteTableResult {
        val builder = GetRouteTablePlainArgsBuilder()
        builder.argument()
        val builtArgument = builder.build()
        return getRouteTableResultToKotlin(getRouteTablePlain(builtArgument.toJava()).await())
    }

    /**
     * Resource Type definition for AWS::EC2::SecurityGroup
     * @param argument null
     * @return null
     */
    public suspend fun getSecurityGroup(argument: GetSecurityGroupPlainArgs): GetSecurityGroupResult =
        getSecurityGroupResultToKotlin(getSecurityGroupPlain(argument.toJava()).await())

    /**
     * @see [getSecurityGroup].
     * @param id The group name or group ID depending on whether the SG is created in default or specific VPC
     * @return null
     */
    public suspend fun getSecurityGroup(id: String): GetSecurityGroupResult {
        val argument = GetSecurityGroupPlainArgs(
            id = id,
        )
        return getSecurityGroupResultToKotlin(getSecurityGroupPlain(argument.toJava()).await())
    }

    /**
     * @see [getSecurityGroup].
     * @param argument Builder for [com.pulumi.awsnative.ec2.kotlin.inputs.GetSecurityGroupPlainArgs].
     * @return null
     */
    public suspend fun getSecurityGroup(argument: suspend GetSecurityGroupPlainArgsBuilder.() -> Unit): GetSecurityGroupResult {
        val builder = GetSecurityGroupPlainArgsBuilder()
        builder.argument()
        val builtArgument = builder.build()
        return getSecurityGroupResultToKotlin(getSecurityGroupPlain(builtArgument.toJava()).await())
    }

    /**
     * Adds the specified outbound (egress) rule to a security group.
     *  An outbound rule permits instances to send traffic to the specified IPv4 or IPv6 address range, the IP addresses that are specified by a prefix list, or the instances that are associated with a destination security group. For more information, see [Security group rules](https://docs.aws.amazon.com/vpc/latest/userguide/security-group-rules.html).
     *  You must specify exactly one of the following destinations: an IPv4 address range, an IPv6 address range, a prefix list, or a security group.
     *  You must specify a protocol for each rule (for example, TCP). If the protocol is TCP or UDP, you must also specify a port or port range. If the protocol is ICMP or ICMPv6, you must also specify the ICMP/ICMPv6 type and code. To specify all types or all codes, use -1.
     *  Rule changes are propagated to instances associated with the security group as quickly as possible. However, a small delay might occur.
     * @param argument null
     * @return null
     */
    public suspend fun getSecurityGroupEgress(argument: GetSecurityGroupEgressPlainArgs): GetSecurityGroupEgressResult =
        getSecurityGroupEgressResultToKotlin(getSecurityGroupEgressPlain(argument.toJava()).await())

    /**
     * @see [getSecurityGroupEgress].
     * @param id
     * @return null
     */
    public suspend fun getSecurityGroupEgress(id: String): GetSecurityGroupEgressResult {
        val argument = GetSecurityGroupEgressPlainArgs(
            id = id,
        )
        return getSecurityGroupEgressResultToKotlin(getSecurityGroupEgressPlain(argument.toJava()).await())
    }

    /**
     * @see [getSecurityGroupEgress].
     * @param argument Builder for [com.pulumi.awsnative.ec2.kotlin.inputs.GetSecurityGroupEgressPlainArgs].
     * @return null
     */
    public suspend fun getSecurityGroupEgress(argument: suspend GetSecurityGroupEgressPlainArgsBuilder.() -> Unit): GetSecurityGroupEgressResult {
        val builder = GetSecurityGroupEgressPlainArgsBuilder()
        builder.argument()
        val builtArgument = builder.build()
        return getSecurityGroupEgressResultToKotlin(getSecurityGroupEgressPlain(builtArgument.toJava()).await())
    }

    /**
     * Resource Type definition for AWS::EC2::SecurityGroupIngress
     * @param argument null
     * @return null
     */
    public suspend fun getSecurityGroupIngress(argument: GetSecurityGroupIngressPlainArgs): GetSecurityGroupIngressResult =
        getSecurityGroupIngressResultToKotlin(getSecurityGroupIngressPlain(argument.toJava()).await())

    /**
     * @see [getSecurityGroupIngress].
     * @param id The Security Group Rule Id
     * @return null
     */
    public suspend fun getSecurityGroupIngress(id: String): GetSecurityGroupIngressResult {
        val argument = GetSecurityGroupIngressPlainArgs(
            id = id,
        )
        return getSecurityGroupIngressResultToKotlin(getSecurityGroupIngressPlain(argument.toJava()).await())
    }

    /**
     * @see [getSecurityGroupIngress].
     * @param argument Builder for [com.pulumi.awsnative.ec2.kotlin.inputs.GetSecurityGroupIngressPlainArgs].
     * @return null
     */
    public suspend fun getSecurityGroupIngress(argument: suspend GetSecurityGroupIngressPlainArgsBuilder.() -> Unit): GetSecurityGroupIngressResult {
        val builder = GetSecurityGroupIngressPlainArgsBuilder()
        builder.argument()
        val builtArgument = builder.build()
        return getSecurityGroupIngressResultToKotlin(getSecurityGroupIngressPlain(builtArgument.toJava()).await())
    }

    /**
     * Resource Type definition for AWS::EC2::SnapshotBlockPublicAccess
     * @param argument null
     * @return null
     */
    public suspend fun getSnapshotBlockPublicAccess(argument: GetSnapshotBlockPublicAccessPlainArgs): GetSnapshotBlockPublicAccessResult =
        getSnapshotBlockPublicAccessResultToKotlin(getSnapshotBlockPublicAccessPlain(argument.toJava()).await())

    /**
     * @see [getSnapshotBlockPublicAccess].
     * @param accountId The identifier for the specified AWS account.
     * @return null
     */
    public suspend fun getSnapshotBlockPublicAccess(accountId: String): GetSnapshotBlockPublicAccessResult {
        val argument = GetSnapshotBlockPublicAccessPlainArgs(
            accountId = accountId,
        )
        return getSnapshotBlockPublicAccessResultToKotlin(getSnapshotBlockPublicAccessPlain(argument.toJava()).await())
    }

    /**
     * @see [getSnapshotBlockPublicAccess].
     * @param argument Builder for [com.pulumi.awsnative.ec2.kotlin.inputs.GetSnapshotBlockPublicAccessPlainArgs].
     * @return null
     */
    public suspend fun getSnapshotBlockPublicAccess(argument: suspend GetSnapshotBlockPublicAccessPlainArgsBuilder.() -> Unit): GetSnapshotBlockPublicAccessResult {
        val builder = GetSnapshotBlockPublicAccessPlainArgsBuilder()
        builder.argument()
        val builtArgument = builder.build()
        return getSnapshotBlockPublicAccessResultToKotlin(getSnapshotBlockPublicAccessPlain(builtArgument.toJava()).await())
    }

    /**
     * Resource Type definition for AWS::EC2::SpotFleet
     * @param argument null
     * @return null
     */
    public suspend fun getSpotFleet(argument: GetSpotFleetPlainArgs): GetSpotFleetResult =
        getSpotFleetResultToKotlin(getSpotFleetPlain(argument.toJava()).await())

    /**
     * @see [getSpotFleet].
     * @param id The ID of the Spot Fleet.
     * @return null
     */
    public suspend fun getSpotFleet(id: String): GetSpotFleetResult {
        val argument = GetSpotFleetPlainArgs(
            id = id,
        )
        return getSpotFleetResultToKotlin(getSpotFleetPlain(argument.toJava()).await())
    }

    /**
     * @see [getSpotFleet].
     * @param argument Builder for [com.pulumi.awsnative.ec2.kotlin.inputs.GetSpotFleetPlainArgs].
     * @return null
     */
    public suspend fun getSpotFleet(argument: suspend GetSpotFleetPlainArgsBuilder.() -> Unit): GetSpotFleetResult {
        val builder = GetSpotFleetPlainArgsBuilder()
        builder.argument()
        val builtArgument = builder.build()
        return getSpotFleetResultToKotlin(getSpotFleetPlain(builtArgument.toJava()).await())
    }

    /**
     * Specifies a subnet for the specified VPC.
     *  For an IPv4 only subnet, specify an IPv4 CIDR block. If the VPC has an IPv6 CIDR block, you can create an IPv6 only subnet or a dual stack subnet instead. For an IPv6 only subnet, specify an IPv6 CIDR block. For a dual stack subnet, specify both an IPv4 CIDR block and an IPv6 CIDR block.
     *  For more information, see [Subnets for your VPC](https://docs.aws.amazon.com/vpc/latest/userguide/configure-subnets.html) in the *Amazon VPC User Guide*.
     * @param argument null
     * @return null
     */
    public suspend fun getSubnet(argument: GetSubnetPlainArgs): GetSubnetResult =
        getSubnetResultToKotlin(getSubnetPlain(argument.toJava()).await())

    /**
     * @see [getSubnet].
     * @param subnetId The ID of the subnet.
     * @return null
     */
    public suspend fun getSubnet(subnetId: String): GetSubnetResult {
        val argument = GetSubnetPlainArgs(
            subnetId = subnetId,
        )
        return getSubnetResultToKotlin(getSubnetPlain(argument.toJava()).await())
    }

    /**
     * @see [getSubnet].
     * @param argument Builder for [com.pulumi.awsnative.ec2.kotlin.inputs.GetSubnetPlainArgs].
     * @return null
     */
    public suspend fun getSubnet(argument: suspend GetSubnetPlainArgsBuilder.() -> Unit): GetSubnetResult {
        val builder = GetSubnetPlainArgsBuilder()
        builder.argument()
        val builtArgument = builder.build()
        return getSubnetResultToKotlin(getSubnetPlain(builtArgument.toJava()).await())
    }

    /**
     * The AWS::EC2::SubnetCidrBlock resource creates association between subnet and IPv6 CIDR
     * @param argument null
     * @return null
     */
    public suspend fun getSubnetCidrBlock(argument: GetSubnetCidrBlockPlainArgs): GetSubnetCidrBlockResult =
        getSubnetCidrBlockResultToKotlin(getSubnetCidrBlockPlain(argument.toJava()).await())

    /**
     * @see [getSubnetCidrBlock].
     * @param id Information about the IPv6 association.
     * @return null
     */
    public suspend fun getSubnetCidrBlock(id: String): GetSubnetCidrBlockResult {
        val argument = GetSubnetCidrBlockPlainArgs(
            id = id,
        )
        return getSubnetCidrBlockResultToKotlin(getSubnetCidrBlockPlain(argument.toJava()).await())
    }

    /**
     * @see [getSubnetCidrBlock].
     * @param argument Builder for [com.pulumi.awsnative.ec2.kotlin.inputs.GetSubnetCidrBlockPlainArgs].
     * @return null
     */
    public suspend fun getSubnetCidrBlock(argument: suspend GetSubnetCidrBlockPlainArgsBuilder.() -> Unit): GetSubnetCidrBlockResult {
        val builder = GetSubnetCidrBlockPlainArgsBuilder()
        builder.argument()
        val builtArgument = builder.build()
        return getSubnetCidrBlockResultToKotlin(getSubnetCidrBlockPlain(builtArgument.toJava()).await())
    }

    /**
     * Resource Type definition for AWS::EC2::SubnetNetworkAclAssociation
     * @param argument null
     * @return null
     */
    public suspend fun getSubnetNetworkAclAssociation(argument: GetSubnetNetworkAclAssociationPlainArgs): GetSubnetNetworkAclAssociationResult =
        getSubnetNetworkAclAssociationResultToKotlin(getSubnetNetworkAclAssociationPlain(argument.toJava()).await())

    /**
     * @see [getSubnetNetworkAclAssociation].
     * @param associationId Returns the value of this object's AssociationId property.
     * @return null
     */
    public suspend fun getSubnetNetworkAclAssociation(associationId: String): GetSubnetNetworkAclAssociationResult {
        val argument = GetSubnetNetworkAclAssociationPlainArgs(
            associationId = associationId,
        )
        return getSubnetNetworkAclAssociationResultToKotlin(getSubnetNetworkAclAssociationPlain(argument.toJava()).await())
    }

    /**
     * @see [getSubnetNetworkAclAssociation].
     * @param argument Builder for [com.pulumi.awsnative.ec2.kotlin.inputs.GetSubnetNetworkAclAssociationPlainArgs].
     * @return null
     */
    public suspend fun getSubnetNetworkAclAssociation(argument: suspend GetSubnetNetworkAclAssociationPlainArgsBuilder.() -> Unit): GetSubnetNetworkAclAssociationResult {
        val builder = GetSubnetNetworkAclAssociationPlainArgsBuilder()
        builder.argument()
        val builtArgument = builder.build()
        return getSubnetNetworkAclAssociationResultToKotlin(getSubnetNetworkAclAssociationPlain(builtArgument.toJava()).await())
    }

    /**
     * Associates a subnet with a route table. The subnet and route table must be in the same VPC. This association causes traffic originating from the subnet to be routed according to the routes in the route table. A route table can be associated with multiple subnets. To create a route table, see [AWS::EC2::RouteTable](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-routetable.html).
     * @param argument null
     * @return null
     */
    public suspend fun getSubnetRouteTableAssociation(argument: GetSubnetRouteTableAssociationPlainArgs): GetSubnetRouteTableAssociationResult =
        getSubnetRouteTableAssociationResultToKotlin(getSubnetRouteTableAssociationPlain(argument.toJava()).await())

    /**
     * @see [getSubnetRouteTableAssociation].
     * @param id The ID of the subnet route table association.
     * @return null
     */
    public suspend fun getSubnetRouteTableAssociation(id: String): GetSubnetRouteTableAssociationResult {
        val argument = GetSubnetRouteTableAssociationPlainArgs(
            id = id,
        )
        return getSubnetRouteTableAssociationResultToKotlin(getSubnetRouteTableAssociationPlain(argument.toJava()).await())
    }

    /**
     * @see [getSubnetRouteTableAssociation].
     * @param argument Builder for [com.pulumi.awsnative.ec2.kotlin.inputs.GetSubnetRouteTableAssociationPlainArgs].
     * @return null
     */
    public suspend fun getSubnetRouteTableAssociation(argument: suspend GetSubnetRouteTableAssociationPlainArgsBuilder.() -> Unit): GetSubnetRouteTableAssociationResult {
        val builder = GetSubnetRouteTableAssociationPlainArgsBuilder()
        builder.argument()
        val builtArgument = builder.build()
        return getSubnetRouteTableAssociationResultToKotlin(getSubnetRouteTableAssociationPlain(builtArgument.toJava()).await())
    }

    /**
     * Resource Type definition for AWS::EC2::TransitGateway
     * @param argument null
     * @return null
     */
    public suspend fun getTransitGateway(argument: GetTransitGatewayPlainArgs): GetTransitGatewayResult =
        getTransitGatewayResultToKotlin(getTransitGatewayPlain(argument.toJava()).await())

    /**
     * @see [getTransitGateway].
     * @param id The ID of the transit gateway.
     * @return null
     */
    public suspend fun getTransitGateway(id: String): GetTransitGatewayResult {
        val argument = GetTransitGatewayPlainArgs(
            id = id,
        )
        return getTransitGatewayResultToKotlin(getTransitGatewayPlain(argument.toJava()).await())
    }

    /**
     * @see [getTransitGateway].
     * @param argument Builder for [com.pulumi.awsnative.ec2.kotlin.inputs.GetTransitGatewayPlainArgs].
     * @return null
     */
    public suspend fun getTransitGateway(argument: suspend GetTransitGatewayPlainArgsBuilder.() -> Unit): GetTransitGatewayResult {
        val builder = GetTransitGatewayPlainArgsBuilder()
        builder.argument()
        val builtArgument = builder.build()
        return getTransitGatewayResultToKotlin(getTransitGatewayPlain(builtArgument.toJava()).await())
    }

    /**
     * Resource Type definition for AWS::EC2::TransitGatewayAttachment
     * @param argument null
     * @return null
     */
    public suspend fun getTransitGatewayAttachment(argument: GetTransitGatewayAttachmentPlainArgs): GetTransitGatewayAttachmentResult =
        getTransitGatewayAttachmentResultToKotlin(getTransitGatewayAttachmentPlain(argument.toJava()).await())

    /**
     * @see [getTransitGatewayAttachment].
     * @param id The ID of the attachment.
     * @return null
     */
    public suspend fun getTransitGatewayAttachment(id: String): GetTransitGatewayAttachmentResult {
        val argument = GetTransitGatewayAttachmentPlainArgs(
            id = id,
        )
        return getTransitGatewayAttachmentResultToKotlin(getTransitGatewayAttachmentPlain(argument.toJava()).await())
    }

    /**
     * @see [getTransitGatewayAttachment].
     * @param argument Builder for [com.pulumi.awsnative.ec2.kotlin.inputs.GetTransitGatewayAttachmentPlainArgs].
     * @return null
     */
    public suspend fun getTransitGatewayAttachment(argument: suspend GetTransitGatewayAttachmentPlainArgsBuilder.() -> Unit): GetTransitGatewayAttachmentResult {
        val builder = GetTransitGatewayAttachmentPlainArgsBuilder()
        builder.argument()
        val builtArgument = builder.build()
        return getTransitGatewayAttachmentResultToKotlin(getTransitGatewayAttachmentPlain(builtArgument.toJava()).await())
    }

    /**
     * The AWS::EC2::TransitGatewayConnect type
     * @param argument null
     * @return null
     */
    public suspend fun getTransitGatewayConnect(argument: GetTransitGatewayConnectPlainArgs): GetTransitGatewayConnectResult =
        getTransitGatewayConnectResultToKotlin(getTransitGatewayConnectPlain(argument.toJava()).await())

    /**
     * @see [getTransitGatewayConnect].
     * @param transitGatewayAttachmentId The ID of the Connect attachment.
     * @return null
     */
    public suspend fun getTransitGatewayConnect(transitGatewayAttachmentId: String): GetTransitGatewayConnectResult {
        val argument = GetTransitGatewayConnectPlainArgs(
            transitGatewayAttachmentId = transitGatewayAttachmentId,
        )
        return getTransitGatewayConnectResultToKotlin(getTransitGatewayConnectPlain(argument.toJava()).await())
    }

    /**
     * @see [getTransitGatewayConnect].
     * @param argument Builder for [com.pulumi.awsnative.ec2.kotlin.inputs.GetTransitGatewayConnectPlainArgs].
     * @return null
     */
    public suspend fun getTransitGatewayConnect(argument: suspend GetTransitGatewayConnectPlainArgsBuilder.() -> Unit): GetTransitGatewayConnectResult {
        val builder = GetTransitGatewayConnectPlainArgsBuilder()
        builder.argument()
        val builtArgument = builder.build()
        return getTransitGatewayConnectResultToKotlin(getTransitGatewayConnectPlain(builtArgument.toJava()).await())
    }

    /**
     * The AWS::EC2::TransitGatewayMulticastDomain type
     * @param argument null
     * @return null
     */
    public suspend fun getTransitGatewayMulticastDomain(argument: GetTransitGatewayMulticastDomainPlainArgs): GetTransitGatewayMulticastDomainResult =
        getTransitGatewayMulticastDomainResultToKotlin(getTransitGatewayMulticastDomainPlain(argument.toJava()).await())

    /**
     * @see [getTransitGatewayMulticastDomain].
     * @param transitGatewayMulticastDomainId The ID of the transit gateway multicast domain.
     * @return null
     */
    public suspend fun getTransitGatewayMulticastDomain(transitGatewayMulticastDomainId: String): GetTransitGatewayMulticastDomainResult {
        val argument = GetTransitGatewayMulticastDomainPlainArgs(
            transitGatewayMulticastDomainId = transitGatewayMulticastDomainId,
        )
        return getTransitGatewayMulticastDomainResultToKotlin(getTransitGatewayMulticastDomainPlain(argument.toJava()).await())
    }

    /**
     * @see [getTransitGatewayMulticastDomain].
     * @param argument Builder for [com.pulumi.awsnative.ec2.kotlin.inputs.GetTransitGatewayMulticastDomainPlainArgs].
     * @return null
     */
    public suspend fun getTransitGatewayMulticastDomain(argument: suspend GetTransitGatewayMulticastDomainPlainArgsBuilder.() -> Unit): GetTransitGatewayMulticastDomainResult {
        val builder = GetTransitGatewayMulticastDomainPlainArgsBuilder()
        builder.argument()
        val builtArgument = builder.build()
        return getTransitGatewayMulticastDomainResultToKotlin(getTransitGatewayMulticastDomainPlain(builtArgument.toJava()).await())
    }

    /**
     * The AWS::EC2::TransitGatewayMulticastDomainAssociation type
     * @param argument null
     * @return null
     */
    public suspend fun getTransitGatewayMulticastDomainAssociation(argument: GetTransitGatewayMulticastDomainAssociationPlainArgs): GetTransitGatewayMulticastDomainAssociationResult =
        getTransitGatewayMulticastDomainAssociationResultToKotlin(getTransitGatewayMulticastDomainAssociationPlain(argument.toJava()).await())

    /**
     * @see [getTransitGatewayMulticastDomainAssociation].
     * @param subnetId The IDs of the subnets to associate with the transit gateway multicast domain.
     * @param transitGatewayAttachmentId The ID of the transit gateway attachment.
     * @param transitGatewayMulticastDomainId The ID of the transit gateway multicast domain.
     * @return null
     */
    public suspend fun getTransitGatewayMulticastDomainAssociation(
        subnetId: String,
        transitGatewayAttachmentId: String,
        transitGatewayMulticastDomainId: String,
    ): GetTransitGatewayMulticastDomainAssociationResult {
        val argument = GetTransitGatewayMulticastDomainAssociationPlainArgs(
            subnetId = subnetId,
            transitGatewayAttachmentId = transitGatewayAttachmentId,
            transitGatewayMulticastDomainId = transitGatewayMulticastDomainId,
        )
        return getTransitGatewayMulticastDomainAssociationResultToKotlin(getTransitGatewayMulticastDomainAssociationPlain(argument.toJava()).await())
    }

    /**
     * @see [getTransitGatewayMulticastDomainAssociation].
     * @param argument Builder for [com.pulumi.awsnative.ec2.kotlin.inputs.GetTransitGatewayMulticastDomainAssociationPlainArgs].
     * @return null
     */
    public suspend fun getTransitGatewayMulticastDomainAssociation(argument: suspend GetTransitGatewayMulticastDomainAssociationPlainArgsBuilder.() -> Unit): GetTransitGatewayMulticastDomainAssociationResult {
        val builder = GetTransitGatewayMulticastDomainAssociationPlainArgsBuilder()
        builder.argument()
        val builtArgument = builder.build()
        return getTransitGatewayMulticastDomainAssociationResultToKotlin(getTransitGatewayMulticastDomainAssociationPlain(builtArgument.toJava()).await())
    }

    /**
     * The AWS::EC2::TransitGatewayMulticastGroupMember registers and deregisters members and sources (network interfaces) with the transit gateway multicast group
     * @param argument null
     * @return null
     */
    public suspend fun getTransitGatewayMulticastGroupMember(argument: GetTransitGatewayMulticastGroupMemberPlainArgs): GetTransitGatewayMulticastGroupMemberResult =
        getTransitGatewayMulticastGroupMemberResultToKotlin(getTransitGatewayMulticastGroupMemberPlain(argument.toJava()).await())

    /**
     * @see [getTransitGatewayMulticastGroupMember].
     * @param groupIpAddress The IP address assigned to the transit gateway multicast group.
     * @param networkInterfaceId The ID of the transit gateway attachment.
     * @param transitGatewayMulticastDomainId The ID of the transit gateway multicast domain.
     * @return null
     */
    public suspend fun getTransitGatewayMulticastGroupMember(
        groupIpAddress: String,
        networkInterfaceId: String,
        transitGatewayMulticastDomainId: String,
    ): GetTransitGatewayMulticastGroupMemberResult {
        val argument = GetTransitGatewayMulticastGroupMemberPlainArgs(
            groupIpAddress = groupIpAddress,
            networkInterfaceId = networkInterfaceId,
            transitGatewayMulticastDomainId = transitGatewayMulticastDomainId,
        )
        return getTransitGatewayMulticastGroupMemberResultToKotlin(getTransitGatewayMulticastGroupMemberPlain(argument.toJava()).await())
    }

    /**
     * @see [getTransitGatewayMulticastGroupMember].
     * @param argument Builder for [com.pulumi.awsnative.ec2.kotlin.inputs.GetTransitGatewayMulticastGroupMemberPlainArgs].
     * @return null
     */
    public suspend fun getTransitGatewayMulticastGroupMember(argument: suspend GetTransitGatewayMulticastGroupMemberPlainArgsBuilder.() -> Unit): GetTransitGatewayMulticastGroupMemberResult {
        val builder = GetTransitGatewayMulticastGroupMemberPlainArgsBuilder()
        builder.argument()
        val builtArgument = builder.build()
        return getTransitGatewayMulticastGroupMemberResultToKotlin(getTransitGatewayMulticastGroupMemberPlain(builtArgument.toJava()).await())
    }

    /**
     * The AWS::EC2::TransitGatewayMulticastGroupSource registers and deregisters members and sources (network interfaces) with the transit gateway multicast group
     * @param argument null
     * @return null
     */
    public suspend fun getTransitGatewayMulticastGroupSource(argument: GetTransitGatewayMulticastGroupSourcePlainArgs): GetTransitGatewayMulticastGroupSourceResult =
        getTransitGatewayMulticastGroupSourceResultToKotlin(getTransitGatewayMulticastGroupSourcePlain(argument.toJava()).await())

    /**
     * @see [getTransitGatewayMulticastGroupSource].
     * @param groupIpAddress The IP address assigned to the transit gateway multicast group.
     * @param networkInterfaceId The ID of the transit gateway attachment.
     * @param transitGatewayMulticastDomainId The ID of the transit gateway multicast domain.
     * @return null
     */
    public suspend fun getTransitGatewayMulticastGroupSource(
        groupIpAddress: String,
        networkInterfaceId: String,
        transitGatewayMulticastDomainId: String,
    ): GetTransitGatewayMulticastGroupSourceResult {
        val argument = GetTransitGatewayMulticastGroupSourcePlainArgs(
            groupIpAddress = groupIpAddress,
            networkInterfaceId = networkInterfaceId,
            transitGatewayMulticastDomainId = transitGatewayMulticastDomainId,
        )
        return getTransitGatewayMulticastGroupSourceResultToKotlin(getTransitGatewayMulticastGroupSourcePlain(argument.toJava()).await())
    }

    /**
     * @see [getTransitGatewayMulticastGroupSource].
     * @param argument Builder for [com.pulumi.awsnative.ec2.kotlin.inputs.GetTransitGatewayMulticastGroupSourcePlainArgs].
     * @return null
     */
    public suspend fun getTransitGatewayMulticastGroupSource(argument: suspend GetTransitGatewayMulticastGroupSourcePlainArgsBuilder.() -> Unit): GetTransitGatewayMulticastGroupSourceResult {
        val builder = GetTransitGatewayMulticastGroupSourcePlainArgsBuilder()
        builder.argument()
        val builtArgument = builder.build()
        return getTransitGatewayMulticastGroupSourceResultToKotlin(getTransitGatewayMulticastGroupSourcePlain(builtArgument.toJava()).await())
    }

    /**
     * The AWS::EC2::TransitGatewayPeeringAttachment type
     * @param argument null
     * @return null
     */
    public suspend fun getTransitGatewayPeeringAttachment(argument: GetTransitGatewayPeeringAttachmentPlainArgs): GetTransitGatewayPeeringAttachmentResult =
        getTransitGatewayPeeringAttachmentResultToKotlin(getTransitGatewayPeeringAttachmentPlain(argument.toJava()).await())

    /**
     * @see [getTransitGatewayPeeringAttachment].
     * @param transitGatewayAttachmentId The ID of the transit gateway peering attachment.
     * @return null
     */
    public suspend fun getTransitGatewayPeeringAttachment(transitGatewayAttachmentId: String): GetTransitGatewayPeeringAttachmentResult {
        val argument = GetTransitGatewayPeeringAttachmentPlainArgs(
            transitGatewayAttachmentId = transitGatewayAttachmentId,
        )
        return getTransitGatewayPeeringAttachmentResultToKotlin(getTransitGatewayPeeringAttachmentPlain(argument.toJava()).await())
    }

    /**
     * @see [getTransitGatewayPeeringAttachment].
     * @param argument Builder for [com.pulumi.awsnative.ec2.kotlin.inputs.GetTransitGatewayPeeringAttachmentPlainArgs].
     * @return null
     */
    public suspend fun getTransitGatewayPeeringAttachment(argument: suspend GetTransitGatewayPeeringAttachmentPlainArgsBuilder.() -> Unit): GetTransitGatewayPeeringAttachmentResult {
        val builder = GetTransitGatewayPeeringAttachmentPlainArgsBuilder()
        builder.argument()
        val builtArgument = builder.build()
        return getTransitGatewayPeeringAttachmentResultToKotlin(getTransitGatewayPeeringAttachmentPlain(builtArgument.toJava()).await())
    }

    /**
     * Resource Type definition for AWS::EC2::TransitGatewayRouteTable
     * @param argument null
     * @return null
     */
    public suspend fun getTransitGatewayRouteTable(argument: GetTransitGatewayRouteTablePlainArgs): GetTransitGatewayRouteTableResult =
        getTransitGatewayRouteTableResultToKotlin(getTransitGatewayRouteTablePlain(argument.toJava()).await())

    /**
     * @see [getTransitGatewayRouteTable].
     * @param transitGatewayRouteTableId Transit Gateway Route Table primary identifier
     * @return null
     */
    public suspend fun getTransitGatewayRouteTable(transitGatewayRouteTableId: String): GetTransitGatewayRouteTableResult {
        val argument = GetTransitGatewayRouteTablePlainArgs(
            transitGatewayRouteTableId = transitGatewayRouteTableId,
        )
        return getTransitGatewayRouteTableResultToKotlin(getTransitGatewayRouteTablePlain(argument.toJava()).await())
    }

    /**
     * @see [getTransitGatewayRouteTable].
     * @param argument Builder for [com.pulumi.awsnative.ec2.kotlin.inputs.GetTransitGatewayRouteTablePlainArgs].
     * @return null
     */
    public suspend fun getTransitGatewayRouteTable(argument: suspend GetTransitGatewayRouteTablePlainArgsBuilder.() -> Unit): GetTransitGatewayRouteTableResult {
        val builder = GetTransitGatewayRouteTablePlainArgsBuilder()
        builder.argument()
        val builtArgument = builder.build()
        return getTransitGatewayRouteTableResultToKotlin(getTransitGatewayRouteTablePlain(builtArgument.toJava()).await())
    }

    /**
     * Resource Type definition for AWS::EC2::TransitGatewayVpcAttachment
     * @param argument null
     * @return null
     */
    public suspend fun getTransitGatewayVpcAttachment(argument: GetTransitGatewayVpcAttachmentPlainArgs): GetTransitGatewayVpcAttachmentResult =
        getTransitGatewayVpcAttachmentResultToKotlin(getTransitGatewayVpcAttachmentPlain(argument.toJava()).await())

    /**
     * @see [getTransitGatewayVpcAttachment].
     * @param id The ID of the attachment.
     * @return null
     */
    public suspend fun getTransitGatewayVpcAttachment(id: String): GetTransitGatewayVpcAttachmentResult {
        val argument = GetTransitGatewayVpcAttachmentPlainArgs(
            id = id,
        )
        return getTransitGatewayVpcAttachmentResultToKotlin(getTransitGatewayVpcAttachmentPlain(argument.toJava()).await())
    }

    /**
     * @see [getTransitGatewayVpcAttachment].
     * @param argument Builder for [com.pulumi.awsnative.ec2.kotlin.inputs.GetTransitGatewayVpcAttachmentPlainArgs].
     * @return null
     */
    public suspend fun getTransitGatewayVpcAttachment(argument: suspend GetTransitGatewayVpcAttachmentPlainArgsBuilder.() -> Unit): GetTransitGatewayVpcAttachmentResult {
        val builder = GetTransitGatewayVpcAttachmentPlainArgsBuilder()
        builder.argument()
        val builtArgument = builder.build()
        return getTransitGatewayVpcAttachmentResultToKotlin(getTransitGatewayVpcAttachmentPlain(builtArgument.toJava()).await())
    }

    /**
     * The AWS::EC2::VerifiedAccessEndpoint resource creates an AWS EC2 Verified Access Endpoint.
     * @param argument null
     * @return null
     */
    public suspend fun getVerifiedAccessEndpoint(argument: GetVerifiedAccessEndpointPlainArgs): GetVerifiedAccessEndpointResult =
        getVerifiedAccessEndpointResultToKotlin(getVerifiedAccessEndpointPlain(argument.toJava()).await())

    /**
     * @see [getVerifiedAccessEndpoint].
     * @param verifiedAccessEndpointId The ID of the AWS Verified Access endpoint.
     * @return null
     */
    public suspend fun getVerifiedAccessEndpoint(verifiedAccessEndpointId: String): GetVerifiedAccessEndpointResult {
        val argument = GetVerifiedAccessEndpointPlainArgs(
            verifiedAccessEndpointId = verifiedAccessEndpointId,
        )
        return getVerifiedAccessEndpointResultToKotlin(getVerifiedAccessEndpointPlain(argument.toJava()).await())
    }

    /**
     * @see [getVerifiedAccessEndpoint].
     * @param argument Builder for [com.pulumi.awsnative.ec2.kotlin.inputs.GetVerifiedAccessEndpointPlainArgs].
     * @return null
     */
    public suspend fun getVerifiedAccessEndpoint(argument: suspend GetVerifiedAccessEndpointPlainArgsBuilder.() -> Unit): GetVerifiedAccessEndpointResult {
        val builder = GetVerifiedAccessEndpointPlainArgsBuilder()
        builder.argument()
        val builtArgument = builder.build()
        return getVerifiedAccessEndpointResultToKotlin(getVerifiedAccessEndpointPlain(builtArgument.toJava()).await())
    }

    /**
     * The AWS::EC2::VerifiedAccessGroup resource creates an AWS EC2 Verified Access Group.
     * @param argument null
     * @return null
     */
    public suspend fun getVerifiedAccessGroup(argument: GetVerifiedAccessGroupPlainArgs): GetVerifiedAccessGroupResult =
        getVerifiedAccessGroupResultToKotlin(getVerifiedAccessGroupPlain(argument.toJava()).await())

    /**
     * @see [getVerifiedAccessGroup].
     * @param verifiedAccessGroupId The ID of the AWS Verified Access group.
     * @return null
     */
    public suspend fun getVerifiedAccessGroup(verifiedAccessGroupId: String): GetVerifiedAccessGroupResult {
        val argument = GetVerifiedAccessGroupPlainArgs(
            verifiedAccessGroupId = verifiedAccessGroupId,
        )
        return getVerifiedAccessGroupResultToKotlin(getVerifiedAccessGroupPlain(argument.toJava()).await())
    }

    /**
     * @see [getVerifiedAccessGroup].
     * @param argument Builder for [com.pulumi.awsnative.ec2.kotlin.inputs.GetVerifiedAccessGroupPlainArgs].
     * @return null
     */
    public suspend fun getVerifiedAccessGroup(argument: suspend GetVerifiedAccessGroupPlainArgsBuilder.() -> Unit): GetVerifiedAccessGroupResult {
        val builder = GetVerifiedAccessGroupPlainArgsBuilder()
        builder.argument()
        val builtArgument = builder.build()
        return getVerifiedAccessGroupResultToKotlin(getVerifiedAccessGroupPlain(builtArgument.toJava()).await())
    }

    /**
     * The AWS::EC2::VerifiedAccessInstance resource creates an AWS EC2 Verified Access Instance.
     * @param argument null
     * @return null
     */
    public suspend fun getVerifiedAccessInstance(argument: GetVerifiedAccessInstancePlainArgs): GetVerifiedAccessInstanceResult =
        getVerifiedAccessInstanceResultToKotlin(getVerifiedAccessInstancePlain(argument.toJava()).await())

    /**
     * @see [getVerifiedAccessInstance].
     * @param verifiedAccessInstanceId The ID of the AWS Verified Access instance.
     * @return null
     */
    public suspend fun getVerifiedAccessInstance(verifiedAccessInstanceId: String): GetVerifiedAccessInstanceResult {
        val argument = GetVerifiedAccessInstancePlainArgs(
            verifiedAccessInstanceId = verifiedAccessInstanceId,
        )
        return getVerifiedAccessInstanceResultToKotlin(getVerifiedAccessInstancePlain(argument.toJava()).await())
    }

    /**
     * @see [getVerifiedAccessInstance].
     * @param argument Builder for [com.pulumi.awsnative.ec2.kotlin.inputs.GetVerifiedAccessInstancePlainArgs].
     * @return null
     */
    public suspend fun getVerifiedAccessInstance(argument: suspend GetVerifiedAccessInstancePlainArgsBuilder.() -> Unit): GetVerifiedAccessInstanceResult {
        val builder = GetVerifiedAccessInstancePlainArgsBuilder()
        builder.argument()
        val builtArgument = builder.build()
        return getVerifiedAccessInstanceResultToKotlin(getVerifiedAccessInstancePlain(builtArgument.toJava()).await())
    }

    /**
     * The AWS::EC2::VerifiedAccessTrustProvider type describes a verified access trust provider
     * @param argument null
     * @return null
     */
    public suspend fun getVerifiedAccessTrustProvider(argument: GetVerifiedAccessTrustProviderPlainArgs): GetVerifiedAccessTrustProviderResult =
        getVerifiedAccessTrustProviderResultToKotlin(getVerifiedAccessTrustProviderPlain(argument.toJava()).await())

    /**
     * @see [getVerifiedAccessTrustProvider].
     * @param verifiedAccessTrustProviderId The ID of the Amazon Web Services Verified Access trust provider.
     * @return null
     */
    public suspend fun getVerifiedAccessTrustProvider(verifiedAccessTrustProviderId: String): GetVerifiedAccessTrustProviderResult {
        val argument = GetVerifiedAccessTrustProviderPlainArgs(
            verifiedAccessTrustProviderId = verifiedAccessTrustProviderId,
        )
        return getVerifiedAccessTrustProviderResultToKotlin(getVerifiedAccessTrustProviderPlain(argument.toJava()).await())
    }

    /**
     * @see [getVerifiedAccessTrustProvider].
     * @param argument Builder for [com.pulumi.awsnative.ec2.kotlin.inputs.GetVerifiedAccessTrustProviderPlainArgs].
     * @return null
     */
    public suspend fun getVerifiedAccessTrustProvider(argument: suspend GetVerifiedAccessTrustProviderPlainArgsBuilder.() -> Unit): GetVerifiedAccessTrustProviderResult {
        val builder = GetVerifiedAccessTrustProviderPlainArgsBuilder()
        builder.argument()
        val builtArgument = builder.build()
        return getVerifiedAccessTrustProviderResultToKotlin(getVerifiedAccessTrustProviderPlain(builtArgument.toJava()).await())
    }

    /**
     * Specifies an Amazon Elastic Block Store (Amazon EBS) volume.
     * When you use AWS CloudFormation to update an Amazon EBS volume that modifies `Iops` , `Size` , or `VolumeType` , there is a cooldown period before another operation can occur. This can cause your stack to report being in `UPDATE_IN_PROGRESS` or `UPDATE_ROLLBACK_IN_PROGRESS` for long periods of time.
     * Amazon EBS does not support sizing down an Amazon EBS volume. AWS CloudFormation does not attempt to modify an Amazon EBS volume to a smaller size on rollback.
     * Some common scenarios when you might encounter a cooldown period for Amazon EBS include:
     * - You successfully update an Amazon EBS volume and the update succeeds. When you attempt another update within the cooldown window, that update will be subject to a cooldown period.
     * - You successfully update an Amazon EBS volume and the update succeeds but another change in your `update-stack` call fails. The rollback will be subject to a cooldown period.
     * For more information, see [Requirements for EBS volume modifications](https://docs.aws.amazon.com/ebs/latest/userguide/modify-volume-requirements.html) .
     * *DeletionPolicy attribute*
     * To control how AWS CloudFormation handles the volume when the stack is deleted, set a deletion policy for your volume. You can choose to retain the volume, to delete the volume, or to create a snapshot of the volume. For more information, see [DeletionPolicy attribute](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html) .
     * > If you set a deletion policy that creates a snapshot, all tags on the volume are included in the snapshot.
     * @param argument null
     * @return null
     */
    public suspend fun getVolume(argument: GetVolumePlainArgs): GetVolumeResult =
        getVolumeResultToKotlin(getVolumePlain(argument.toJava()).await())

    /**
     * @see [getVolume].
     * @param volumeId The ID of the volume.
     * @return null
     */
    public suspend fun getVolume(volumeId: String): GetVolumeResult {
        val argument = GetVolumePlainArgs(
            volumeId = volumeId,
        )
        return getVolumeResultToKotlin(getVolumePlain(argument.toJava()).await())
    }

    /**
     * @see [getVolume].
     * @param argument Builder for [com.pulumi.awsnative.ec2.kotlin.inputs.GetVolumePlainArgs].
     * @return null
     */
    public suspend fun getVolume(argument: suspend GetVolumePlainArgsBuilder.() -> Unit): GetVolumeResult {
        val builder = GetVolumePlainArgsBuilder()
        builder.argument()
        val builtArgument = builder.build()
        return getVolumeResultToKotlin(getVolumePlain(builtArgument.toJava()).await())
    }

    /**
     * Specifies a virtual private cloud (VPC).
     *  You can optionally request an IPv6 CIDR block for the VPC. You can request an Amazon-provided IPv6 CIDR block from Amazon's pool of IPv6 addresses, or an IPv6 CIDR block from an IPv6 address pool that you provisioned through bring your own IP addresses (BYOIP).
     *  For more information, see [Virtual private clouds (VPC)](https://docs.aws.amazon.com/vpc/latest/userguide/configure-your-vpc.html) in the *Amazon VPC User Guide*.
     * @param argument null
     * @return null
     */
    public suspend fun getVpc(argument: GetVpcPlainArgs): GetVpcResult =
        getVpcResultToKotlin(getVpcPlain(argument.toJava()).await())

    /**
     * @see [getVpc].
     * @param vpcId The ID of the VPC.
     * @return null
     */
    public suspend fun getVpc(vpcId: String): GetVpcResult {
        val argument = GetVpcPlainArgs(
            vpcId = vpcId,
        )
        return getVpcResultToKotlin(getVpcPlain(argument.toJava()).await())
    }

    /**
     * @see [getVpc].
     * @param argument Builder for [com.pulumi.awsnative.ec2.kotlin.inputs.GetVpcPlainArgs].
     * @return null
     */
    public suspend fun getVpc(argument: suspend GetVpcPlainArgsBuilder.() -> Unit): GetVpcResult {
        val builder = GetVpcPlainArgsBuilder()
        builder.argument()
        val builtArgument = builder.build()
        return getVpcResultToKotlin(getVpcPlain(builtArgument.toJava()).await())
    }

    /**
     * Resource Type definition for AWS::EC2::VPCCidrBlock
     * @param argument null
     * @return null
     */
    public suspend fun getVpcCidrBlock(argument: GetVpcCidrBlockPlainArgs): GetVpcCidrBlockResult =
        getVpcCidrBlockResultToKotlin(getVpcCidrBlockPlain(argument.toJava()).await())

    /**
     * @see [getVpcCidrBlock].
     * @param id The Id of the VPC associated CIDR Block.
     * @param vpcId The ID of the VPC.
     * @return null
     */
    public suspend fun getVpcCidrBlock(id: String, vpcId: String): GetVpcCidrBlockResult {
        val argument = GetVpcCidrBlockPlainArgs(
            id = id,
            vpcId = vpcId,
        )
        return getVpcCidrBlockResultToKotlin(getVpcCidrBlockPlain(argument.toJava()).await())
    }

    /**
     * @see [getVpcCidrBlock].
     * @param argument Builder for [com.pulumi.awsnative.ec2.kotlin.inputs.GetVpcCidrBlockPlainArgs].
     * @return null
     */
    public suspend fun getVpcCidrBlock(argument: suspend GetVpcCidrBlockPlainArgsBuilder.() -> Unit): GetVpcCidrBlockResult {
        val builder = GetVpcCidrBlockPlainArgsBuilder()
        builder.argument()
        val builtArgument = builder.build()
        return getVpcCidrBlockResultToKotlin(getVpcCidrBlockPlain(builtArgument.toJava()).await())
    }

    /**
     * Specifies a VPC endpoint. A VPC endpoint provides a private connection between your VPC and an endpoint service. You can use an endpoint service provided by AWS , an AWS Marketplace Partner, or another AWS accounts in your organization. For more information, see the [AWS PrivateLink User Guide](https://docs.aws.amazon.com/vpc/latest/privatelink/) .
     * An endpoint of type `Interface` establishes connections between the subnets in your VPC and an AWS service , your own service, or a service hosted by another AWS account . With an interface VPC endpoint, you specify the subnets in which to create the endpoint and the security groups to associate with the endpoint network interfaces.
     * An endpoint of type `gateway` serves as a target for a route in your route table for traffic destined for Amazon S3 or DynamoDB . You can specify an endpoint policy for the endpoint, which controls access to the service from your VPC. You can also specify the VPC route tables that use the endpoint. For more information about connectivity to Amazon S3 , see [Why can't I connect to an S3 bucket using a gateway VPC endpoint?](https://docs.aws.amazon.com/premiumsupport/knowledge-center/connect-s3-vpc-endpoint)
     * An endpoint of type `GatewayLoadBalancer` provides private connectivity between your VPC and virtual appliances from a service provider.
     * @param argument null
     * @return null
     */
    public suspend fun getVpcEndpoint(argument: GetVpcEndpointPlainArgs): GetVpcEndpointResult =
        getVpcEndpointResultToKotlin(getVpcEndpointPlain(argument.toJava()).await())

    /**
     * @see [getVpcEndpoint].
     * @param id The ID of the VPC endpoint.
     * @return null
     */
    public suspend fun getVpcEndpoint(id: String): GetVpcEndpointResult {
        val argument = GetVpcEndpointPlainArgs(
            id = id,
        )
        return getVpcEndpointResultToKotlin(getVpcEndpointPlain(argument.toJava()).await())
    }

    /**
     * @see [getVpcEndpoint].
     * @param argument Builder for [com.pulumi.awsnative.ec2.kotlin.inputs.GetVpcEndpointPlainArgs].
     * @return null
     */
    public suspend fun getVpcEndpoint(argument: suspend GetVpcEndpointPlainArgsBuilder.() -> Unit): GetVpcEndpointResult {
        val builder = GetVpcEndpointPlainArgsBuilder()
        builder.argument()
        val builtArgument = builder.build()
        return getVpcEndpointResultToKotlin(getVpcEndpointPlain(builtArgument.toJava()).await())
    }

    /**
     * Resource Type definition for AWS::EC2::VPCEndpointConnectionNotification
     * @param argument null
     * @return null
     */
    public suspend fun getVpcEndpointConnectionNotification(argument: GetVpcEndpointConnectionNotificationPlainArgs): GetVpcEndpointConnectionNotificationResult =
        getVpcEndpointConnectionNotificationResultToKotlin(getVpcEndpointConnectionNotificationPlain(argument.toJava()).await())

    /**
     * @see [getVpcEndpointConnectionNotification].
     * @param vpcEndpointConnectionNotificationId VPC Endpoint Connection ID generated by service
     * @return null
     */
    public suspend fun getVpcEndpointConnectionNotification(vpcEndpointConnectionNotificationId: String): GetVpcEndpointConnectionNotificationResult {
        val argument = GetVpcEndpointConnectionNotificationPlainArgs(
            vpcEndpointConnectionNotificationId = vpcEndpointConnectionNotificationId,
        )
        return getVpcEndpointConnectionNotificationResultToKotlin(getVpcEndpointConnectionNotificationPlain(argument.toJava()).await())
    }

    /**
     * @see [getVpcEndpointConnectionNotification].
     * @param argument Builder for [com.pulumi.awsnative.ec2.kotlin.inputs.GetVpcEndpointConnectionNotificationPlainArgs].
     * @return null
     */
    public suspend fun getVpcEndpointConnectionNotification(argument: suspend GetVpcEndpointConnectionNotificationPlainArgsBuilder.() -> Unit): GetVpcEndpointConnectionNotificationResult {
        val builder = GetVpcEndpointConnectionNotificationPlainArgsBuilder()
        builder.argument()
        val builtArgument = builder.build()
        return getVpcEndpointConnectionNotificationResultToKotlin(getVpcEndpointConnectionNotificationPlain(builtArgument.toJava()).await())
    }

    /**
     * Resource Type definition for AWS::EC2::VPCEndpointService
     * @param argument null
     * @return null
     */
    public suspend fun getVpcEndpointService(argument: GetVpcEndpointServicePlainArgs): GetVpcEndpointServiceResult =
        getVpcEndpointServiceResultToKotlin(getVpcEndpointServicePlain(argument.toJava()).await())

    /**
     * @see [getVpcEndpointService].
     * @param serviceId The ID of the endpoint service.
     * @return null
     */
    public suspend fun getVpcEndpointService(serviceId: String): GetVpcEndpointServiceResult {
        val argument = GetVpcEndpointServicePlainArgs(
            serviceId = serviceId,
        )
        return getVpcEndpointServiceResultToKotlin(getVpcEndpointServicePlain(argument.toJava()).await())
    }

    /**
     * @see [getVpcEndpointService].
     * @param argument Builder for [com.pulumi.awsnative.ec2.kotlin.inputs.GetVpcEndpointServicePlainArgs].
     * @return null
     */
    public suspend fun getVpcEndpointService(argument: suspend GetVpcEndpointServicePlainArgsBuilder.() -> Unit): GetVpcEndpointServiceResult {
        val builder = GetVpcEndpointServicePlainArgsBuilder()
        builder.argument()
        val builtArgument = builder.build()
        return getVpcEndpointServiceResultToKotlin(getVpcEndpointServicePlain(builtArgument.toJava()).await())
    }

    /**
     * Resource Type definition for AWS::EC2::VPCEndpointServicePermissions
     * @param argument null
     * @return null
     */
    public suspend fun getVpcEndpointServicePermissions(argument: GetVpcEndpointServicePermissionsPlainArgs): GetVpcEndpointServicePermissionsResult =
        getVpcEndpointServicePermissionsResultToKotlin(getVpcEndpointServicePermissionsPlain(argument.toJava()).await())

    /**
     * @see [getVpcEndpointServicePermissions].
     * @param serviceId The ID of the service.
     * @return null
     */
    public suspend fun getVpcEndpointServicePermissions(serviceId: String): GetVpcEndpointServicePermissionsResult {
        val argument = GetVpcEndpointServicePermissionsPlainArgs(
            serviceId = serviceId,
        )
        return getVpcEndpointServicePermissionsResultToKotlin(getVpcEndpointServicePermissionsPlain(argument.toJava()).await())
    }

    /**
     * @see [getVpcEndpointServicePermissions].
     * @param argument Builder for [com.pulumi.awsnative.ec2.kotlin.inputs.GetVpcEndpointServicePermissionsPlainArgs].
     * @return null
     */
    public suspend fun getVpcEndpointServicePermissions(argument: suspend GetVpcEndpointServicePermissionsPlainArgsBuilder.() -> Unit): GetVpcEndpointServicePermissionsResult {
        val builder = GetVpcEndpointServicePermissionsPlainArgsBuilder()
        builder.argument()
        val builtArgument = builder.build()
        return getVpcEndpointServicePermissionsResultToKotlin(getVpcEndpointServicePermissionsPlain(builtArgument.toJava()).await())
    }

    /**
     * Resource Type definition for AWS::EC2::VPCGatewayAttachment
     * @param argument null
     * @return null
     */
    public suspend fun getVpcGatewayAttachment(argument: GetVpcGatewayAttachmentPlainArgs): GetVpcGatewayAttachmentResult =
        getVpcGatewayAttachmentResultToKotlin(getVpcGatewayAttachmentPlain(argument.toJava()).await())

    /**
     * @see [getVpcGatewayAttachment].
     * @param attachmentType Used to identify if this resource is an Internet Gateway or Vpn Gateway Attachment
     * @param vpcId The ID of the VPC.
     * @return null
     */
    public suspend fun getVpcGatewayAttachment(attachmentType: String, vpcId: String): GetVpcGatewayAttachmentResult {
        val argument = GetVpcGatewayAttachmentPlainArgs(
            attachmentType = attachmentType,
            vpcId = vpcId,
        )
        return getVpcGatewayAttachmentResultToKotlin(getVpcGatewayAttachmentPlain(argument.toJava()).await())
    }

    /**
     * @see [getVpcGatewayAttachment].
     * @param argument Builder for [com.pulumi.awsnative.ec2.kotlin.inputs.GetVpcGatewayAttachmentPlainArgs].
     * @return null
     */
    public suspend fun getVpcGatewayAttachment(argument: suspend GetVpcGatewayAttachmentPlainArgsBuilder.() -> Unit): GetVpcGatewayAttachmentResult {
        val builder = GetVpcGatewayAttachmentPlainArgsBuilder()
        builder.argument()
        val builtArgument = builder.build()
        return getVpcGatewayAttachmentResultToKotlin(getVpcGatewayAttachmentPlain(builtArgument.toJava()).await())
    }

    /**
     * Resource Type definition for AWS::EC2::VPCPeeringConnection
     * @param argument null
     * @return null
     */
    public suspend fun getVpcPeeringConnection(argument: GetVpcPeeringConnectionPlainArgs): GetVpcPeeringConnectionResult =
        getVpcPeeringConnectionResultToKotlin(getVpcPeeringConnectionPlain(argument.toJava()).await())

    /**
     * @see [getVpcPeeringConnection].
     * @param id The ID of the peering connection.
     * @return null
     */
    public suspend fun getVpcPeeringConnection(id: String): GetVpcPeeringConnectionResult {
        val argument = GetVpcPeeringConnectionPlainArgs(
            id = id,
        )
        return getVpcPeeringConnectionResultToKotlin(getVpcPeeringConnectionPlain(argument.toJava()).await())
    }

    /**
     * @see [getVpcPeeringConnection].
     * @param argument Builder for [com.pulumi.awsnative.ec2.kotlin.inputs.GetVpcPeeringConnectionPlainArgs].
     * @return null
     */
    public suspend fun getVpcPeeringConnection(argument: suspend GetVpcPeeringConnectionPlainArgsBuilder.() -> Unit): GetVpcPeeringConnectionResult {
        val builder = GetVpcPeeringConnectionPlainArgsBuilder()
        builder.argument()
        val builtArgument = builder.build()
        return getVpcPeeringConnectionResultToKotlin(getVpcPeeringConnectionPlain(builtArgument.toJava()).await())
    }

    /**
     * Resource Type definition for AWS::EC2::VPNConnection
     * @param argument null
     * @return null
     */
    public suspend fun getVpnConnection(argument: GetVpnConnectionPlainArgs): GetVpnConnectionResult =
        getVpnConnectionResultToKotlin(getVpnConnectionPlain(argument.toJava()).await())

    /**
     * @see [getVpnConnection].
     * @param vpnConnectionId The provider-assigned unique ID for this managed resource
     * @return null
     */
    public suspend fun getVpnConnection(vpnConnectionId: String): GetVpnConnectionResult {
        val argument = GetVpnConnectionPlainArgs(
            vpnConnectionId = vpnConnectionId,
        )
        return getVpnConnectionResultToKotlin(getVpnConnectionPlain(argument.toJava()).await())
    }

    /**
     * @see [getVpnConnection].
     * @param argument Builder for [com.pulumi.awsnative.ec2.kotlin.inputs.GetVpnConnectionPlainArgs].
     * @return null
     */
    public suspend fun getVpnConnection(argument: suspend GetVpnConnectionPlainArgsBuilder.() -> Unit): GetVpnConnectionResult {
        val builder = GetVpnConnectionPlainArgsBuilder()
        builder.argument()
        val builtArgument = builder.build()
        return getVpnConnectionResultToKotlin(getVpnConnectionPlain(builtArgument.toJava()).await())
    }

    /**
     * Specifies a virtual private gateway. A virtual private gateway is the endpoint on the VPC side of your VPN connection. You can create a virtual private gateway before creating the VPC itself.
     *  For more information, see [](https://docs.aws.amazon.com/vpn/latest/s2svpn/VPC_VPN.html) in the *User Guide*.
     * @param argument null
     * @return null
     */
    public suspend fun getVpnGateway(argument: GetVpnGatewayPlainArgs): GetVpnGatewayResult =
        getVpnGatewayResultToKotlin(getVpnGatewayPlain(argument.toJava()).await())

    /**
     * @see [getVpnGateway].
     * @param vpnGatewayId The ID of the VPN gateway.
     * @return null
     */
    public suspend fun getVpnGateway(vpnGatewayId: String): GetVpnGatewayResult {
        val argument = GetVpnGatewayPlainArgs(
            vpnGatewayId = vpnGatewayId,
        )
        return getVpnGatewayResultToKotlin(getVpnGatewayPlain(argument.toJava()).await())
    }

    /**
     * @see [getVpnGateway].
     * @param argument Builder for [com.pulumi.awsnative.ec2.kotlin.inputs.GetVpnGatewayPlainArgs].
     * @return null
     */
    public suspend fun getVpnGateway(argument: suspend GetVpnGatewayPlainArgsBuilder.() -> Unit): GetVpnGatewayResult {
        val builder = GetVpnGatewayPlainArgsBuilder()
        builder.argument()
        val builtArgument = builder.build()
        return getVpnGatewayResultToKotlin(getVpnGatewayPlain(builtArgument.toJava()).await())
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy