$schema: "http://json-schema.org/draft-06/schema#"

title: compute v1 NetworkInterface export schema
description: A gcloud export/import command YAML validation schema.
type: object
additionalProperties: false
properties:
  COMMENT:
    type: object
    description: User specified info ignored by gcloud import.
    additionalProperties: false
    properties:
      template-id:
        type: string
      region:
        type: string
      description:
        type: string
      date:
        type: string
      version:
        type: string
  UNKNOWN:
    type: array
    description: Unknown API fields that cannot be imported.
    items:
      type: string
  accessConfigs:
    description: |-
      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.
    type: array
    items:
      $ref: AccessConfig.yaml
  aliasIpRanges:
    description: |-
      An array of alias IP ranges for this network interface. You can only
      specify this field for network interfaces in VPC networks.
    type: array
    items:
      $ref: AliasIpRange.yaml
  fingerprint:
    description: |-
      Fingerprint hash of contents stored in this network interface.
      This field will be ignored when inserting an Instance or adding a
      NetworkInterface. An up-to-date fingerprint must be provided in
      order to update the NetworkInterface. The request will fail with
      error 400 Bad Request if the fingerprint is not provided, or 412
      Precondition Failed if the fingerprint is out of date.
    type: string
  ipv6AccessConfigs:
    description: |-
      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.
    type: array
    items:
      $ref: AccessConfig.yaml
  ipv6AccessType:
    description: |-
      [Output Only] One of EXTERNAL, INTERNAL to indicate whether
      the IP can be accessed from the Internet. This field is always
      inherited from its subnetwork. Valid only if stackType is
      IPV4_IPV6.
    type: string
    enum:
    - EXTERNAL
    - INTERNAL
    - UNSPECIFIED_IPV6_ACCESS_TYPE
  ipv6Address:
    description: |-
      [Output Only] An IPv6 internal network address for this
      network interface.
    type: string
  kind:
    description: |-
      [Output Only] Type of the resource. Always
      compute#networkInterface for network interfaces.
    type: string
  name:
    description: |-
      [Output Only] The name of the network interface, which is
      generated by the server. For network devices, these are eth0,
      eth1, etc.
    type: string
  network:
    description: |-
      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
    type: string
  networkIP:
    description: |-
      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.
    type: string
  nicType:
    description: |-
      The type of vNIC to be used on this interface. This may be
      gVNIC or VirtioNet.
    type: string
    enum:
    - GVNIC
    - UNSPECIFIED_NIC_TYPE
    - VIRTIO_NET
  queueCount:
    description: |-
      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.
    type: integer
  stackType:
    description: |-
      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.
    type: string
    enum:
    - IPV4_IPV6
    - IPV4_ONLY
    - UNSPECIFIED_STACK_TYPE
  subnetwork:
    description: |-
      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
    type: string
