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

title: compute beta AttachedDiskInitializeParams 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
  description:
    description: |-
      An optional description. Provide this property when creating the disk.
    type: string
  diskName:
    description: |-
      Specifies the disk name. If not specified, the default is to use the name
      of the instance. If a disk with the same name already exists in the given
      region, the existing disk is attached to the new instance and the new disk
      is not created.
    type: string
  diskSizeGb:
    description: |-
      Specifies the size of the disk in base-2 GB. The size must be at least 10
      GB. If you specify a sourceImage, which is required for boot disks, the
      default size is the size of the sourceImage. If you do not specify a
      sourceImage, the default disk size is 500 GB.
    type: integer
  diskType:
    description: |-
      Specifies the disk type to use to create the instance. If not specified,
      the default is pd-standard, specified using the full URL. For
    type: string
  guestOsFeatures:
    description: |-
      A list of features to enable on the guest operating system. Applicable
      only for bootable images. Read  Enabling guest operating system features
      to see a list of available options.  Guest OS features are applied by
      merging initializeParams.guestOsFeatures and disks.guestOsFeatures
    type: array
    items:
      $ref: GuestOsFeature.yaml
  labels:
    description: |-
      Labels to apply to this disk. These can be later modified by the
      disks.setLabels method. This field is only applicable for persistent
      disks.
    $ref: LabelsValue.yaml
  multiWriter:
    description: |-
      Indicates whether or not the disk can be read/write attached to more
      than one instance.
    type: boolean
  onUpdateAction:
    description: |-
      Specifies which action to take on instance update with this disk.
      Default is to use the existing disk.
    type: string
    enum:
    - RECREATE_DISK
    - RECREATE_DISK_IF_SOURCE_CHANGED
    - USE_EXISTING_DISK
  provisionedIops:
    description: Indicates how many IOPS must be provisioned for the disk.
    type: integer
  resourcePolicies:
    description: |-
      Resource policies applied to this disk for automatic snapshot
      creations. Specified using the full or partial URL. For instance
      template, specify only the resource policy name.
    type: array
    items:
      type: string
  sourceImage:
    description: |-
      The source image to create this disk. When creating a new
      instance, one of initializeParams.sourceImage or
      initializeParams.sourceSnapshot or disks.source is required except
      for local SSD.  To create a disk with one of the public operating
      system images, specify the image by its family name. For example,
      specify family/debian-9 to use the latest Debian 9 image:
      projects/debian- cloud/global/images/family/debian-9
      Alternatively, use a specific version of a public operating system
      image: projects/debian- cloud/global/images/debian-9-stretch-
      vYYYYMMDD   To create a disk with a custom image that you created,
      specify the image name in the following
    type: string
  sourceImageEncryptionKey:
    description: |-
      The customer-supplied encryption key of the source image. Required
      if the source image is protected by a customer- supplied
      encryption key.  Instance templates do not store customer-
      supplied encryption keys, so you cannot create disks for instances
      in a managed instance group if the source images are encrypted
      with your own keys.
    $ref: CustomerEncryptionKey.yaml
  sourceSnapshot:
    description: |-
      The source snapshot to create this disk. When creating a new
      instance, one of initializeParams.sourceSnapshot or
      initializeParams.sourceImage or disks.source is required except
      for local SSD.  To create a disk with a snapshot that you created,
      specify the snapshot name in the following format:
      global/snapshots/my-backup If the source snapshot is deleted
      later, this field will not be set.
    type: string
  sourceSnapshotEncryptionKey:
    description: |-
      The customer-supplied encryption key of the source snapshot.
    $ref: CustomerEncryptionKey.yaml
