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

title: compute beta Instance 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
  advancedMachineFeatures:
    description: Controls for advanced machine-related behavior features.
    $ref: AdvancedMachineFeatures.yaml
  canIpForward:
    description: |-
      Allows this instance to send and receive packets with non- matching
      destination or source IPs. This is required if you plan to use this
      instance to forward routes. For more information, see Enabling IP
      Forwarding.
    type: boolean
  confidentialInstanceConfig:
    description: A ConfidentialInstanceConfig attribute.
    $ref: ConfidentialInstanceConfig.yaml
  cpuPlatform:
    description: '[Output Only] The CPU platform used by this instance.'
    type: string
  creationTimestamp:
    description: '[Output Only] Creation timestamp in RFC3339 text format.'
    type: string
  deletionProtection:
    description: Whether the resource should be protected against deletion.
    type: boolean
  description:
    description: |-
      An optional description of this resource. Provide this property when you
      create the resource.
    type: string
  disks:
    description: |-
      Array of disks associated with this instance. Persistent disks must be
      created before you can assign them.
    type: array
    items:
      $ref: AttachedDisk.yaml
  displayDevice:
    description: Enables display device for the instance.
    $ref: DisplayDevice.yaml
  eraseWindowsVssSignature:
    description: |-
      Specifies whether the disks restored from source snapshots or source
      machine image should erase Windows specific VSS signature.
    type: boolean
  fingerprint:
    description: |-
      Specifies a fingerprint for this resource, which is essentially a hash
      of the instance's contents and used for optimistic locking. The
      fingerprint is initially generated by Compute Engine and changes after
      every request to modify or update the instance. You must always
      provide an up-to-date fingerprint hash in order to update the
      instance.  To see the latest fingerprint, make get() request to the
      instance.
    type: string
  guestAccelerators:
    description: |-
      A list of the type and count of accelerator cards attached to the
      instance.
    type: array
    items:
      $ref: AcceleratorConfig.yaml
  hostname:
    description: |-
      Specifies the hostname of the instance. The specified hostname
      must be RFC1035 compliant. If hostname is not specified, the
      default hostname is [INSTANCE_NAME].c.[PROJECT_ID].internal when
      using the global DNS, and
      [INSTANCE_NAME].[ZONE].c.[PROJECT_ID].internal when using zonal
      DNS.
    type: string
  id:
    description: |-
      [Output Only] The unique identifier for the resource. This
      identifier is defined by the server.
    type: integer
  kind:
    description: |-
      [Output Only] Type of the resource. Always compute#instance for
      instances.
    type: string
  labelFingerprint:
    description: |-
      A fingerprint for this request, which is essentially a hash of the
      label's contents and used for optimistic locking. The fingerprint
      is initially generated by Compute Engine and changes after every
      request to modify or update labels. You must always provide an up-
      to-date fingerprint hash in order to update or change labels.  To
      see the latest fingerprint, make get() request to the instance.
    type: string
  labels:
    description: |-
      Labels to apply to this instance. These can be later modified by
      the setLabels method.
    $ref: LabelsValue.yaml
  lastStartTimestamp:
    description: |-
      [Output Only] Last start timestamp in RFC3339 text format.
    type: string
  lastStopTimestamp:
    description: |-
      [Output Only] Last stop timestamp in RFC3339 text format.
    type: string
  lastSuspendedTimestamp:
    description: |-
      [Output Only] Last suspended timestamp in RFC3339 text format.
    type: string
  machineType:
    description: |-
      Full or partial URL of the machine type resource to use for this
      instance, in the format: zones/zone/machineTypes/machine-type.
      This is provided by the client when the instance is created. For
      example, the following is a valid partial url to a predefined
      machine type: zones/us- central1-f/machineTypes/n1-standard-1   To
      create a custom machine type, provide a URL to a machine type in
      the following format, where CPUS is 1 or an even number up to 32
      (2, 4, 6, ... 24, etc), and MEMORY is the total memory for this
      instance. Memory must be a multiple of 256 MB and must be supplied
      in MB (e.g. 5 GB of memory is 5120 MB):
      zones/zone/machineTypes/custom-CPUS-MEMORY   For example:
      zones/us- central1-f/machineTypes/custom-4-5120   For a full list
      of restrictions, read the Specifications for custom machine types.
    type: string
  metadata:
    description: |-
      The metadata key/value pairs assigned to this instance. This
      includes custom metadata and predefined keys.
    $ref: Metadata.yaml
  minCpuPlatform:
    description: |-
      "Intel Haswell" or minCpuPlatform: "Intel Sandy Bridge".
    type: string
  name:
    description: |-
      The name of the resource, provided by the client when initially
      creating the resource. The resource name must be 1-63 characters
      long, and comply with RFC1035. Specifically, the name must be 1-63
      characters long and match the regular expression
      `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must
      be a lowercase letter, and all following characters must be a
      dash, lowercase letter, or digit, except the last character, which
      cannot be a dash.
    type: string
  networkInterfaces:
    description: |-
      An array of network configurations for this instance. These
      specify how interfaces are configured to interact with other
      network services, such as connecting to the internet. Multiple
      interfaces are supported per instance.
    type: array
    items:
      $ref: NetworkInterface.yaml
  networkPerformanceConfig:
    description: A NetworkPerformanceConfig attribute.
    $ref: NetworkPerformanceConfig.yaml
  params:
    description: |-
      Input only. [Input Only] Additional params passed with the
      request, but not persisted as part of resource payload.
    $ref: InstanceParams.yaml
  postKeyRevocationActionType:
    description: PostKeyRevocationActionType of the instance.
    type: string
    enum:
    - NOOP
    - POST_KEY_REVOCATION_ACTION_TYPE_UNSPECIFIED
    - SHUTDOWN
  keyRevocationActionType:
    description: KeyRevocationActionType of the instance.
    type: string
    enum:
    - NONE
    - STOP
    - KEY_REVOCATION_ACTION_TYPE_UNSPECIFIED
  privateIpv6GoogleAccess:
    description: |-
      The private IPv6 google access type for the VM. If not
      specified, use  INHERIT_FROM_SUBNETWORK as default.
    type: string
    enum:
    - ENABLE_BIDIRECTIONAL_ACCESS_TO_GOOGLE
    - ENABLE_OUTBOUND_VM_ACCESS_TO_GOOGLE
    - INHERIT_FROM_SUBNETWORK
  reservationAffinity:
    description: |-
      Specifies the reservations that this instance can consume
      from.
    $ref: ReservationAffinity.yaml
  resourcePolicies:
    description: Resource policies applied to this instance.
    type: array
    items:
      type: string
  satisfiesPzs:
    description: '[Output Only] Reserved for future use.'
    type: boolean
  scheduling:
    description: Sets the scheduling options for this instance.
    $ref: Scheduling.yaml
  selfLink:
    description: |-
      [Output Only] Server-defined URL for this resource.
    type: string
  serviceAccounts:
    description: |-
      A list of service accounts, with their specified scopes,
      authorized for this instance. Only one service account per
      VM instance is supported.  Service accounts generate
      access tokens that can be accessed through the metadata
      server and used to authenticate applications on the
      instance. See Service Accounts for more information.
    type: array
    items:
      $ref: ServiceAccount.yaml
  shieldedInstanceConfig:
    description: A ShieldedInstanceConfig attribute.
    $ref: ShieldedInstanceConfig.yaml
  shieldedInstanceIntegrityPolicy:
    description: |-
      A ShieldedInstanceIntegrityPolicy attribute.
    $ref: ShieldedInstanceIntegrityPolicy.yaml
  shieldedVmConfig:
    description: |-
      Deprecating, please use shielded_instance_config.
    $ref: ShieldedVmConfig.yaml
  shieldedVmIntegrityPolicy:
    description: |-
      Deprecating, please use
      shielded_instance_integrity_policy.
    $ref: ShieldedVmIntegrityPolicy.yaml
  sourceMachineImage:
    description: Source machine image
    type: string
  sourceMachineImageEncryptionKey:
    description: |-
      Source machine image encryption key when creating an
      instance from a machine image.
    $ref: CustomerEncryptionKey.yaml
  startRestricted:
    description: |-
      [Output Only] Whether a VM has been restricted for
      start because Compute Engine has detected suspicious
      activity.
    type: boolean
  status:
    description: |-
      [Output Only] The status of the instance. One of the
      following
    type: string
    enum:
    - DEPROVISIONING
    - PROVISIONING
    - REPAIRING
    - RUNNING
    - STAGING
    - STOPPED
    - STOPPING
    - SUSPENDED
    - SUSPENDING
    - TERMINATED
  statusMessage:
    description: |-
      [Output Only] An optional, human-readable explanation
      of the status.
    type: string
  tags:
    description: |-
      Tags to apply to this instance. Tags are used to
      identify valid sources or targets for network
      firewalls and are specified by the client during
      instance creation. The tags can be later modified by
      the setTags method. Each tag within the list must
      comply with RFC1035. Multiple tags can be specified
      via the 'tags.items' field.
    $ref: Tags.yaml
  zone:
    description: |-
      [Output Only] URL of the zone where the instance
      resides. You must specify this field as part of the
      HTTP request URL. It is not settable as a field in the
      request body.
    type: string
