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

title: compute alpha 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, otherwise the request will
      fail with error 412 conditionNotMet.
    type: string
  internalIpv6PrefixLength:
    description: |-
      [Output Only] The prefix length of the primary internal IPv6
      range.
    type: integer
  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 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 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
    - IPV6_ONLY
    - UNSPECIFIED_STACK_TYPE
  subinterfaces:
    description: |-
      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.
    type: array
    items:
      $ref: NetworkInterfaceSubInterface.yaml
  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.c
      om/compute/v1/projects/project/regions/region/su
      bnetworks/subnetwork  -
      regions/region/subnetworks/subnetwork
    type: string
