Many resources are needed to download a project. Please understand that we have to compensate our server costs. Thank you in advance. Project price only 1 $
You can buy this project and download/modify it how often you want.
@file:Suppress("NAME_SHADOWING", "DEPRECATION")
package com.pulumi.awsnative.ec2.kotlin.inputs
import com.pulumi.awsnative.ec2.inputs.LaunchTemplateNetworkInterfaceArgs.builder
import com.pulumi.core.Output
import com.pulumi.core.Output.of
import com.pulumi.kotlin.ConvertibleToJava
import com.pulumi.kotlin.PulumiTagMarker
import com.pulumi.kotlin.applySuspend
import kotlin.Boolean
import kotlin.Int
import kotlin.String
import kotlin.Suppress
import kotlin.Unit
import kotlin.collections.List
import kotlin.jvm.JvmName
/**
* Specifies the parameters for a network interface.
* ``NetworkInterface`` is a property of [AWS::EC2::LaunchTemplate LaunchTemplateData](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata.html).
* @property associateCarrierIpAddress Associates a Carrier IP address with eth0 for a new network interface.
* Use this option when you launch an instance in a Wavelength Zone and want to associate a Carrier IP address with the network interface. For more information about Carrier IP addresses, see [Carrier IP addresses](https://docs.aws.amazon.com/wavelength/latest/developerguide/how-wavelengths-work.html#provider-owned-ip) in the *Developer Guide*.
* @property associatePublicIpAddress Associates a public IPv4 address with eth0 for a new network interface.
* AWS charges for all public IPv4 addresses, including public IPv4 addresses associated with running instances and Elastic IP addresses. For more information, see the *Public IPv4 Address* tab on the [Amazon VPC pricing page](https://docs.aws.amazon.com/vpc/pricing/).
* @property connectionTrackingSpecification A connection tracking specification for the network interface.
* @property deleteOnTermination Indicates whether the network interface is deleted when the instance is terminated.
* @property description A description for the network interface.
* @property deviceIndex The device index for the network interface attachment. Each network interface requires a device index. If you create a launch template that includes secondary network interfaces but not a primary network interface, then you must add a primary network interface as a launch parameter when you launch an instance from the template.
* @property enaSrdSpecification The ENA Express configuration for the network interface.
* @property groups The IDs of one or more security groups.
* @property interfaceType The type of network interface. To create an Elastic Fabric Adapter (EFA), specify ``efa``. For more information, see [Elastic Fabric Adapter](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/efa.html) in the *Amazon EC2 User Guide*.
* If you are not creating an EFA, specify ``interface`` or omit this parameter.
* Valid values: ``interface`` | ``efa``
* @property ipv4PrefixCount The number of IPv4 prefixes to be automatically assigned to the network interface. You cannot use this option if you use the ``Ipv4Prefix`` option.
* @property ipv4Prefixes One or more IPv4 prefixes to be assigned to the network interface. You cannot use this option if you use the ``Ipv4PrefixCount`` option.
* @property ipv6AddressCount 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.
* @property ipv6Addresses 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.
* @property ipv6PrefixCount The number of IPv6 prefixes to be automatically assigned to the network interface. You cannot use this option if you use the ``Ipv6Prefix`` option.
* @property ipv6Prefixes One or more IPv6 prefixes to be assigned to the network interface. You cannot use this option if you use the ``Ipv6PrefixCount`` option.
* @property networkCardIndex The index of the network card. Some instance types support multiple network cards. The primary network interface must be assigned to network card index 0. The default is network card index 0.
* @property networkInterfaceId The ID of the network interface.
* @property primaryIpv6 The primary IPv6 address of the network interface. When you enable an IPv6 GUA address to be a primary IPv6, the first IPv6 GUA will be made the primary IPv6 address until the instance is terminated or the network interface is detached. For more information about primary IPv6 addresses, see [RunInstances](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_RunInstances.html).
* @property privateIpAddress The primary private IPv4 address of the network interface.
* @property privateIpAddresses One or more private IPv4 addresses.
* @property secondaryPrivateIpAddressCount The number of secondary private IPv4 addresses to assign to a network interface.
* @property subnetId The ID of the subnet for the network interface.
*/
public data class LaunchTemplateNetworkInterfaceArgs(
public val associateCarrierIpAddress: Output? = null,
public val associatePublicIpAddress: Output? = null,
public val connectionTrackingSpecification: Output? = null,
public val deleteOnTermination: Output? = null,
public val description: Output? = null,
public val deviceIndex: Output? = null,
public val enaSrdSpecification: Output? = null,
public val groups: Output>? = null,
public val interfaceType: Output? = null,
public val ipv4PrefixCount: Output? = null,
public val ipv4Prefixes: Output>? = null,
public val ipv6AddressCount: Output? = null,
public val ipv6Addresses: Output>? = null,
public val ipv6PrefixCount: Output? = null,
public val ipv6Prefixes: Output>? = null,
public val networkCardIndex: Output? = null,
public val networkInterfaceId: Output? = null,
public val primaryIpv6: Output? = null,
public val privateIpAddress: Output? = null,
public val privateIpAddresses: Output>? = null,
public val secondaryPrivateIpAddressCount: Output? = null,
public val subnetId: Output? = null,
) : ConvertibleToJava {
override fun toJava(): com.pulumi.awsnative.ec2.inputs.LaunchTemplateNetworkInterfaceArgs =
com.pulumi.awsnative.ec2.inputs.LaunchTemplateNetworkInterfaceArgs.builder()
.associateCarrierIpAddress(associateCarrierIpAddress?.applyValue({ args0 -> args0 }))
.associatePublicIpAddress(associatePublicIpAddress?.applyValue({ args0 -> args0 }))
.connectionTrackingSpecification(
connectionTrackingSpecification?.applyValue({ args0 ->
args0.let({ args0 -> args0.toJava() })
}),
)
.deleteOnTermination(deleteOnTermination?.applyValue({ args0 -> args0 }))
.description(description?.applyValue({ args0 -> args0 }))
.deviceIndex(deviceIndex?.applyValue({ args0 -> args0 }))
.enaSrdSpecification(
enaSrdSpecification?.applyValue({ args0 ->
args0.let({ args0 ->
args0.toJava()
})
}),
)
.groups(groups?.applyValue({ args0 -> args0.map({ args0 -> args0 }) }))
.interfaceType(interfaceType?.applyValue({ args0 -> args0 }))
.ipv4PrefixCount(ipv4PrefixCount?.applyValue({ args0 -> args0 }))
.ipv4Prefixes(
ipv4Prefixes?.applyValue({ args0 ->
args0.map({ args0 ->
args0.let({ args0 ->
args0.toJava()
})
})
}),
)
.ipv6AddressCount(ipv6AddressCount?.applyValue({ args0 -> args0 }))
.ipv6Addresses(
ipv6Addresses?.applyValue({ args0 ->
args0.map({ args0 ->
args0.let({ args0 ->
args0.toJava()
})
})
}),
)
.ipv6PrefixCount(ipv6PrefixCount?.applyValue({ args0 -> args0 }))
.ipv6Prefixes(
ipv6Prefixes?.applyValue({ args0 ->
args0.map({ args0 ->
args0.let({ args0 ->
args0.toJava()
})
})
}),
)
.networkCardIndex(networkCardIndex?.applyValue({ args0 -> args0 }))
.networkInterfaceId(networkInterfaceId?.applyValue({ args0 -> args0 }))
.primaryIpv6(primaryIpv6?.applyValue({ args0 -> args0 }))
.privateIpAddress(privateIpAddress?.applyValue({ args0 -> args0 }))
.privateIpAddresses(
privateIpAddresses?.applyValue({ args0 ->
args0.map({ args0 ->
args0.let({ args0 -> args0.toJava() })
})
}),
)
.secondaryPrivateIpAddressCount(secondaryPrivateIpAddressCount?.applyValue({ args0 -> args0 }))
.subnetId(subnetId?.applyValue({ args0 -> args0 })).build()
}
/**
* Builder for [LaunchTemplateNetworkInterfaceArgs].
*/
@PulumiTagMarker
public class LaunchTemplateNetworkInterfaceArgsBuilder internal constructor() {
private var associateCarrierIpAddress: Output? = null
private var associatePublicIpAddress: Output? = null
private var connectionTrackingSpecification:
Output? = null
private var deleteOnTermination: Output? = null
private var description: Output? = null
private var deviceIndex: Output? = null
private var enaSrdSpecification: Output? = null
private var groups: Output>? = null
private var interfaceType: Output? = null
private var ipv4PrefixCount: Output? = null
private var ipv4Prefixes: Output>? = null
private var ipv6AddressCount: Output? = null
private var ipv6Addresses: Output>? = null
private var ipv6PrefixCount: Output? = null
private var ipv6Prefixes: Output>? = null
private var networkCardIndex: Output? = null
private var networkInterfaceId: Output? = null
private var primaryIpv6: Output? = null
private var privateIpAddress: Output? = null
private var privateIpAddresses: Output>? = null
private var secondaryPrivateIpAddressCount: Output? = null
private var subnetId: Output? = null
/**
* @param value Associates a Carrier IP address with eth0 for a new network interface.
* Use this option when you launch an instance in a Wavelength Zone and want to associate a Carrier IP address with the network interface. For more information about Carrier IP addresses, see [Carrier IP addresses](https://docs.aws.amazon.com/wavelength/latest/developerguide/how-wavelengths-work.html#provider-owned-ip) in the *Developer Guide*.
*/
@JvmName("qjvwxckbhvnmhmks")
public suspend fun associateCarrierIpAddress(`value`: Output) {
this.associateCarrierIpAddress = value
}
/**
* @param value Associates a public IPv4 address with eth0 for a new network interface.
* AWS charges for all public IPv4 addresses, including public IPv4 addresses associated with running instances and Elastic IP addresses. For more information, see the *Public IPv4 Address* tab on the [Amazon VPC pricing page](https://docs.aws.amazon.com/vpc/pricing/).
*/
@JvmName("fvldifommedbsjqx")
public suspend fun associatePublicIpAddress(`value`: Output) {
this.associatePublicIpAddress = value
}
/**
* @param value A connection tracking specification for the network interface.
*/
@JvmName("yqhfjrftqhbodayx")
public suspend fun connectionTrackingSpecification(`value`: Output) {
this.connectionTrackingSpecification = value
}
/**
* @param value Indicates whether the network interface is deleted when the instance is terminated.
*/
@JvmName("lnjnsxthqpsmtrrw")
public suspend fun deleteOnTermination(`value`: Output) {
this.deleteOnTermination = value
}
/**
* @param value A description for the network interface.
*/
@JvmName("ofoubtjhnnsvomqc")
public suspend fun description(`value`: Output) {
this.description = value
}
/**
* @param value The device index for the network interface attachment. Each network interface requires a device index. If you create a launch template that includes secondary network interfaces but not a primary network interface, then you must add a primary network interface as a launch parameter when you launch an instance from the template.
*/
@JvmName("bwjfqejgxafppxcp")
public suspend fun deviceIndex(`value`: Output) {
this.deviceIndex = value
}
/**
* @param value The ENA Express configuration for the network interface.
*/
@JvmName("jsppsvnupeuadojx")
public suspend fun enaSrdSpecification(`value`: Output) {
this.enaSrdSpecification = value
}
/**
* @param value The IDs of one or more security groups.
*/
@JvmName("vsdonnuhculbrpox")
public suspend fun groups(`value`: Output>) {
this.groups = value
}
@JvmName("jvpovafncgpbgqot")
public suspend fun groups(vararg values: Output) {
this.groups = Output.all(values.asList())
}
/**
* @param values The IDs of one or more security groups.
*/
@JvmName("hfmfsgnyvhlgncmr")
public suspend fun groups(values: List