def __init__(__self__, *, access_configs: Optional[pulumi.Input[Sequence[pulumi.Input['AccessConfigArgs']]]]=None, alias_ip_ranges: Optional[pulumi.Input[Sequence[pulumi.Input['AliasIpRangeArgs']]]]=None, internal_ipv6_prefix_length: Optional[pulumi.Input[int]]=None, ipv6_access_configs: Optional[pulumi.Input[Sequence[pulumi.Input['AccessConfigArgs']]]]=None, ipv6_address: Optional[pulumi.Input[str]]=None, network: Optional[pulumi.Input[str]]=None, network_ip: Optional[pulumi.Input[str]]=None, nic_type: Optional[pulumi.Input['NetworkInterfaceNicType']]=None, queue_count: Optional[pulumi.Input[int]]=None, stack_type: Optional[pulumi.Input['NetworkInterfaceStackType']]=None, subinterfaces: Optional[pulumi.Input[Sequence[pulumi.Input['NetworkInterfaceSubInterfaceArgs']]]]=None, subnetwork: Optional[pulumi.Input[str]]=None):
    "\n        A network interface resource attached to an instance.\n        :param pulumi.Input[Sequence[pulumi.Input['AccessConfigArgs']]] access_configs: An array of configurations for this interface. Currently, only one access config, ONE_TO_ONE_NAT, is supported. If there are no accessConfigs specified, then this instance will have no external internet access.\n        :param pulumi.Input[Sequence[pulumi.Input['AliasIpRangeArgs']]] alias_ip_ranges: An array of alias IP ranges for this network interface. You can only specify this field for network interfaces in VPC networks.\n        :param pulumi.Input[int] internal_ipv6_prefix_length: The prefix length of the primary internal IPv6 range.\n        :param pulumi.Input[Sequence[pulumi.Input['AccessConfigArgs']]] ipv6_access_configs: An array of IPv6 access configurations for this interface. Currently, only one IPv6 access config, DIRECT_IPV6, is supported. If there is no ipv6AccessConfig specified, then this instance will have no external IPv6 Internet access.\n        :param pulumi.Input[str] ipv6_address: An IPv6 internal network address for this network interface.\n        :param pulumi.Input[str] network: URL of the VPC network resource for this instance. When creating an instance, if neither the network nor the subnetwork is specified, the default network global/networks/default is used. If the selected project doesn't have the default network, you must specify a network or subnet. If the network is not specified but the subnetwork is specified, the network is inferred. If you specify this property, you can specify the network as a full or partial URL. For example, the following are all valid URLs: - https://www.googleapis.com/compute/v1/projects/project/global/networks/ network - projects/project/global/networks/network - global/networks/default \n        :param pulumi.Input[str] network_ip: An IPv4 internal IP address to assign to the instance for this network interface. If not specified by the user, an unused internal IP is assigned by the system.\n        :param pulumi.Input['NetworkInterfaceNicType'] nic_type: The type of vNIC to be used on this interface. This may be gVNIC or VirtioNet.\n        :param pulumi.Input[int] queue_count: The networking queue count that's specified by users for the network interface. Both Rx and Tx queues will be set to this number. It'll be empty if not specified by the users.\n        :param pulumi.Input['NetworkInterfaceStackType'] stack_type: The stack type for this network interface to identify whether the IPv6 feature is enabled or not. If not specified, IPV4_ONLY will be used. This field can be both set at instance creation and update network interface operations.\n        :param pulumi.Input[Sequence[pulumi.Input['NetworkInterfaceSubInterfaceArgs']]] subinterfaces: SubInterfaces help enable L2 communication for the instance over subnetworks that support L2. Every network interface will get a default untagged (vlan not specified) subinterface. Users can specify additional tagged subinterfaces which are sub-fields to the Network Interface.\n        :param pulumi.Input[str] subnetwork: The URL of the Subnetwork resource for this instance. If the network resource is in legacy mode, do not specify this field. If the network is in auto subnet mode, specifying the subnetwork is optional. If the network is in custom subnet mode, specifying the subnetwork is required. If you specify this field, you can specify the subnetwork as a full or partial URL. For example, the following are all valid URLs: - https://www.googleapis.com/compute/v1/projects/project/regions/region /subnetworks/subnetwork - regions/region/subnetworks/subnetwork \n        "
    if (access_configs is not None):
        pulumi.set(__self__, 'access_configs', access_configs)
    if (alias_ip_ranges is not None):
        pulumi.set(__self__, 'alias_ip_ranges', alias_ip_ranges)
    if (internal_ipv6_prefix_length is not None):
        pulumi.set(__self__, 'internal_ipv6_prefix_length', internal_ipv6_prefix_length)
    if (ipv6_access_configs is not None):
        pulumi.set(__self__, 'ipv6_access_configs', ipv6_access_configs)
    if (ipv6_address is not None):
        pulumi.set(__self__, 'ipv6_address', ipv6_address)
    if (network is not None):
        pulumi.set(__self__, 'network', network)
    if (network_ip is not None):
        pulumi.set(__self__, 'network_ip', network_ip)
    if (nic_type is not None):
        pulumi.set(__self__, 'nic_type', nic_type)
    if (queue_count is not None):
        pulumi.set(__self__, 'queue_count', queue_count)
    if (stack_type is not None):
        pulumi.set(__self__, 'stack_type', stack_type)
    if (subinterfaces is not None):
        pulumi.set(__self__, 'subinterfaces', subinterfaces)
    if (subnetwork is not None):
        pulumi.set(__self__, 'subnetwork', subnetwork)
A network interface resource attached to an instance.
:param pulumi.Input[Sequence[pulumi.Input['AccessConfigArgs']]] access_configs: An array of configurations for this interface. Currently, only one access config, ONE_TO_ONE_NAT, is supported. If there are no accessConfigs specified, then this instance will have no external internet access.
:param pulumi.Input[Sequence[pulumi.Input['AliasIpRangeArgs']]] alias_ip_ranges: An array of alias IP ranges for this network interface. You can only specify this field for network interfaces in VPC networks.
:param pulumi.Input[int] internal_ipv6_prefix_length: The prefix length of the primary internal IPv6 range.
:param pulumi.Input[Sequence[pulumi.Input['AccessConfigArgs']]] ipv6_access_configs: An array of IPv6 access configurations for this interface. Currently, only one IPv6 access config, DIRECT_IPV6, is supported. If there is no ipv6AccessConfig specified, then this instance will have no external IPv6 Internet access.
:param pulumi.Input[str] ipv6_address: An IPv6 internal network address for this network interface.
:param pulumi.Input[str] network: URL of the VPC network resource for this instance. When creating an instance, if neither the network nor the subnetwork is specified, the default network global/networks/default is used. If the selected project doesn't have the default network, you must specify a network or subnet. If the network is not specified but the subnetwork is specified, the network is inferred. If you specify this property, you can specify the network as a full or partial URL. For example, the following are all valid URLs: - https://www.googleapis.com/compute/v1/projects/project/global/networks/ network - projects/project/global/networks/network - global/networks/default 
:param pulumi.Input[str] network_ip: An IPv4 internal IP address to assign to the instance for this network interface. If not specified by the user, an unused internal IP is assigned by the system.
:param pulumi.Input['NetworkInterfaceNicType'] nic_type: The type of vNIC to be used on this interface. This may be gVNIC or VirtioNet.
:param pulumi.Input[int] queue_count: The networking queue count that's specified by users for the network interface. Both Rx and Tx queues will be set to this number. It'll be empty if not specified by the users.
:param pulumi.Input['NetworkInterfaceStackType'] stack_type: The stack type for this network interface to identify whether the IPv6 feature is enabled or not. If not specified, IPV4_ONLY will be used. This field can be both set at instance creation and update network interface operations.
:param pulumi.Input[Sequence[pulumi.Input['NetworkInterfaceSubInterfaceArgs']]] subinterfaces: SubInterfaces help enable L2 communication for the instance over subnetworks that support L2. Every network interface will get a default untagged (vlan not specified) subinterface. Users can specify additional tagged subinterfaces which are sub-fields to the Network Interface.
:param pulumi.Input[str] subnetwork: The URL of the Subnetwork resource for this instance. If the network resource is in legacy mode, do not specify this field. If the network is in auto subnet mode, specifying the subnetwork is optional. If the network is in custom subnet mode, specifying the subnetwork is required. If you specify this field, you can specify the subnetwork as a full or partial URL. For example, the following are all valid URLs: - https://www.googleapis.com/compute/v1/projects/project/regions/region /subnetworks/subnetwork - regions/region/subnetworks/subnetwork
def __init__(__self__, *, access_configs: Optional[pulumi.Input[Sequence[pulumi.Input['AccessConfigArgs']]]]=None, alias_ip_ranges: Optional[pulumi.Input[Sequence[pulumi.Input['AliasIpRangeArgs']]]]=None, internal_ipv6_prefix_length: Optional[pulumi.Input[int]]=None, ipv6_access_configs: Optional[pulumi.Input[Sequence[pulumi.Input['AccessConfigArgs']]]]=None, ipv6_address: Optional[pulumi.Input[str]]=None, network: Optional[pulumi.Input[str]]=None, network_ip: Optional[pulumi.Input[str]]=None, nic_type: Optional[pulumi.Input['NetworkInterfaceNicType']]=None, queue_count: Optional[pulumi.Input[int]]=None, stack_type: Optional[pulumi.Input['NetworkInterfaceStackType']]=None, subinterfaces: Optional[pulumi.Input[Sequence[pulumi.Input['NetworkInterfaceSubInterfaceArgs']]]]=None, subnetwork: Optional[pulumi.Input[str]]=None):
    "\n        A network interface resource attached to an instance.\n        :param pulumi.Input[Sequence[pulumi.Input['AccessConfigArgs']]] access_configs: An array of configurations for this interface. Currently, only one access config, ONE_TO_ONE_NAT, is supported. If there are no accessConfigs specified, then this instance will have no external internet access.\n        :param pulumi.Input[Sequence[pulumi.Input['AliasIpRangeArgs']]] alias_ip_ranges: An array of alias IP ranges for this network interface. You can only specify this field for network interfaces in VPC networks.\n        :param pulumi.Input[int] internal_ipv6_prefix_length: The prefix length of the primary internal IPv6 range.\n        :param pulumi.Input[Sequence[pulumi.Input['AccessConfigArgs']]] ipv6_access_configs: An array of IPv6 access configurations for this interface. Currently, only one IPv6 access config, DIRECT_IPV6, is supported. If there is no ipv6AccessConfig specified, then this instance will have no external IPv6 Internet access.\n        :param pulumi.Input[str] ipv6_address: An IPv6 internal network address for this network interface.\n        :param pulumi.Input[str] network: URL of the VPC network resource for this instance. When creating an instance, if neither the network nor the subnetwork is specified, the default network global/networks/default is used. If the selected project doesn't have the default network, you must specify a network or subnet. If the network is not specified but the subnetwork is specified, the network is inferred. If you specify this property, you can specify the network as a full or partial URL. For example, the following are all valid URLs: - https://www.googleapis.com/compute/v1/projects/project/global/networks/ network - projects/project/global/networks/network - global/networks/default \n        :param pulumi.Input[str] network_ip: An IPv4 internal IP address to assign to the instance for this network interface. If not specified by the user, an unused internal IP is assigned by the system.\n        :param pulumi.Input['NetworkInterfaceNicType'] nic_type: The type of vNIC to be used on this interface. This may be gVNIC or VirtioNet.\n        :param pulumi.Input[int] queue_count: The networking queue count that's specified by users for the network interface. Both Rx and Tx queues will be set to this number. It'll be empty if not specified by the users.\n        :param pulumi.Input['NetworkInterfaceStackType'] stack_type: The stack type for this network interface to identify whether the IPv6 feature is enabled or not. If not specified, IPV4_ONLY will be used. This field can be both set at instance creation and update network interface operations.\n        :param pulumi.Input[Sequence[pulumi.Input['NetworkInterfaceSubInterfaceArgs']]] subinterfaces: SubInterfaces help enable L2 communication for the instance over subnetworks that support L2. Every network interface will get a default untagged (vlan not specified) subinterface. Users can specify additional tagged subinterfaces which are sub-fields to the Network Interface.\n        :param pulumi.Input[str] subnetwork: The URL of the Subnetwork resource for this instance. If the network resource is in legacy mode, do not specify this field. If the network is in auto subnet mode, specifying the subnetwork is optional. If the network is in custom subnet mode, specifying the subnetwork is required. If you specify this field, you can specify the subnetwork as a full or partial URL. For example, the following are all valid URLs: - https://www.googleapis.com/compute/v1/projects/project/regions/region /subnetworks/subnetwork - regions/region/subnetworks/subnetwork \n        "
    if (access_configs is not None):
        pulumi.set(__self__, 'access_configs', access_configs)
    if (alias_ip_ranges is not None):
        pulumi.set(__self__, 'alias_ip_ranges', alias_ip_ranges)
    if (internal_ipv6_prefix_length is not None):
        pulumi.set(__self__, 'internal_ipv6_prefix_length', internal_ipv6_prefix_length)
    if (ipv6_access_configs is not None):
        pulumi.set(__self__, 'ipv6_access_configs', ipv6_access_configs)
    if (ipv6_address is not None):
        pulumi.set(__self__, 'ipv6_address', ipv6_address)
    if (network is not None):
        pulumi.set(__self__, 'network', network)
    if (network_ip is not None):
        pulumi.set(__self__, 'network_ip', network_ip)
    if (nic_type is not None):
        pulumi.set(__self__, 'nic_type', nic_type)
    if (queue_count is not None):
        pulumi.set(__self__, 'queue_count', queue_count)
    if (stack_type is not None):
        pulumi.set(__self__, 'stack_type', stack_type)
    if (subinterfaces is not None):
        pulumi.set(__self__, 'subinterfaces', subinterfaces)
    if (subnetwork is not None):
        pulumi.set(__self__, 'subnetwork', subnetwork)