def create_network_interface(options = {})
      resp = @client.create_network_interface(options)
      NetworkInterface.new(
        id: resp.data.network_interface.network_interface_id,
        data: resp.data.network_interface,
        client: @client
      )
    end
def create_network_interface(options = {})
      resp = @client.create_network_interface(options)
      NetworkInterface.new(
        id: resp.data.network_interface.network_interface_id,
        data: resp.data.network_interface,
        client: @client
      )
    end
@example Request syntax with placeholder values

   networkinterface = ec2.create_network_interface({
     description: "String",
     dry_run: false,
     groups: ["String"],
     ipv_6_address_count: 1,
     ipv_6_addresses: [
       {
         ipv_6_address: "String",
       },
     ],
     private_ip_address: "String",
     private_ip_addresses: [
       {
         primary: false,
         private_ip_address: "String",
       },
     ],
     secondary_private_ip_address_count: 1,
     interface_type: "efa", # accepts efa
     subnet_id: "String", # required
   })
 @param [Hash] options ({})
 @option options [String] :description
   A description for the network interface.
 @option options [Boolean] :dry_run
   Checks whether you have the required permissions for the action,
   without actually making the request, and provides an error response.
   If you have the required permissions, the error response is
   `DryRunOperation`. Otherwise, it is `UnauthorizedOperation`.
 @option options [Array<String>] :groups
   The IDs of one or more security groups.
 @option options [Integer] :ipv_6_address_count
   The number of IPv6 addresses to assign to a network interface. Amazon
   EC2 automatically selects the IPv6 addresses from the subnet range.
   You can't use this option if specifying specific IPv6 addresses. If
   your subnet has the `AssignIpv6AddressOnCreation` attribute set to
   `true`, you can specify `0` to override this setting.
 @option options [Array<Types::InstanceIpv6Address>] :ipv_6_addresses
   One or more specific IPv6 addresses from the IPv6 CIDR block range of
   your subnet. You can't use this option if you're specifying a number
   of IPv6 addresses.
 @option options [String] :private_ip_address
   The primary private IPv4 address of the network interface. If you
   don't specify an IPv4 address, Amazon EC2 selects one for you from
   the subnet's IPv4 CIDR range. If you specify an IP address, you
   cannot indicate any IP addresses specified in `privateIpAddresses` as
   primary (only one IP address can be designated as primary).
 @option options [Array<Types::PrivateIpAddressSpecification>] :private_ip_addresses
   One or more private IPv4 addresses.
 @option options [Integer] :secondary_private_ip_address_count
   The number of secondary private IPv4 addresses to assign to a network
   interface. When you specify a number of secondary IPv4 addresses,
   Amazon EC2 selects these IP addresses within the subnet's IPv4 CIDR
   range. You can't specify this option and specify more than one
   private IP address using `privateIpAddresses`.

   The number of IP addresses you can assign to a network interface
   varies by instance type. For more information, see [IP Addresses Per
   ENI Per Instance Type][1] in the *Amazon Virtual Private Cloud User
   Guide*.



   [1]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-eni.html#AvailableIpPerENI
 @option options [String] :interface_type
   Indicates whether the network interface is an Elastic Fabric Adapter
   (EFA). Only specify this parameter to create an EFA. For more
   information, see [Elastic Fabric
   Adapter](AWSEC2/latest/UserGuide/efa.html) in the *Amazon Elastic
   Compute Cloud User Guide*.

   If you are not creating an EFA ENI, omit this parameter.
 @option options [required, String] :subnet_id
   The ID of the subnet to associate with the network interface.
 @return [NetworkInterface]