apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  annotations:
    cert-manager.io/inject-ca-from: azureserviceoperator-system/azureserviceoperator-serving-cert
    controller-gen.kubebuilder.io/version: (devel)
  name: virtualmachines.compute.azure.com
spec:
  conversion:
    strategy: Webhook
    webhook:
      clientConfig:
        service:
          name: azureserviceoperator-webhook-service
          namespace: azureserviceoperator-system
          path: /convert
      conversionReviewVersions:
      - v1beta1
  group: compute.azure.com
  names:
    kind: VirtualMachine
    listKind: VirtualMachineList
    plural: virtualmachines
    singular: virtualmachine
  preserveUnknownFields: false
  scope: Namespaced
  versions:
  - additionalPrinterColumns:
    - jsonPath: .status.conditions[?(@.type=='Ready')].status
      name: Ready
      type: string
    - jsonPath: .status.conditions[?(@.type=='Ready')].severity
      name: Severity
      type: string
    - jsonPath: .status.conditions[?(@.type=='Ready')].reason
      name: Reason
      type: string
    - jsonPath: .status.conditions[?(@.type=='Ready')].message
      name: Message
      type: string
    name: v1alpha1api20201201
    schema:
      openAPIV3Schema:
        description: 'Generated from: https://schema.management.azure.com/schemas/2020-12-01/Microsoft.Compute.json#/resourceDefinitions/virtualMachines'
        properties:
          apiVersion:
            description: 'APIVersion defines the versioned schema of this representation
              of an object. Servers should convert recognized schemas to the latest
              internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
            type: string
          kind:
            description: 'Kind is a string value representing the REST resource this
              object represents. Servers may infer this from the endpoint the client
              submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
            type: string
          metadata:
            type: object
          spec:
            properties:
              additionalCapabilities:
                description: 'AdditionalCapabilities: Enables or disables a capability
                  on the virtual machine or virtual machine scale set.'
                properties:
                  ultraSSDEnabled:
                    description: 'UltraSSDEnabled: The flag that enables or disables
                      a capability to have one or more managed data disks with UltraSSD_LRS
                      storage account type on the VM or VMSS. Managed disks with storage
                      account type UltraSSD_LRS can be added to a virtual machine
                      or virtual machine scale set only if this property is enabled.'
                    type: boolean
                type: object
              availabilitySet:
                description: 'Generated from: https://schema.management.azure.com/schemas/2020-12-01/Microsoft.Compute.json#/definitions/SubResource'
                properties:
                  reference:
                    description: 'Reference: Resource Id'
                    properties:
                      armId:
                        description: 'TODO: The below regex may be overly restrictive
                          ARMID is a string of the form /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}.
                          The /resourcegroups/{resourceGroupName} bit is optional
                          as some resources are scoped at the subscription level ARMID
                          is mutually exclusive with Group, Kind, Namespace and Name.'
                        pattern: (?i)^/subscriptions/([^/]+)(/resourcegroups/([^/]+))?/providers/([^/]+)/([^/]+/[^/]+)(/([^/]+/[^/]+))*$
                        type: string
                      group:
                        description: Group is the Kubernetes group of the resource.
                        type: string
                      kind:
                        description: Kind is the Kubernetes kind of the resource.
                        type: string
                      name:
                        description: Name is the Kubernetes name of the resource.
                        type: string
                    type: object
                type: object
              azureName:
                description: 'AzureName: The name of the resource in Azure. This is
                  often the same as the name of the resource in Kubernetes but it
                  doesn''t have to be.'
                type: string
              billingProfile:
                description: 'BillingProfile: Specifies the billing related details
                  of a Azure Spot VM or VMSS. Minimum api-version: 2019-03-01.'
                properties:
                  maxPrice:
                    description: 'MaxPrice: Specifies the maximum price you are willing
                      to pay for a Azure Spot VM/VMSS. This price is in US Dollars.
                      This price will be compared with the current Azure Spot price
                      for the VM size. Also, the prices are compared at the time of
                      create/update of Azure Spot VM/VMSS and the operation will only
                      succeed if  the maxPrice is greater than the current Azure Spot
                      price. The maxPrice will also be used for evicting a Azure Spot
                      VM/VMSS if the current Azure Spot price goes beyond the maxPrice
                      after creation of VM/VMSS. Possible values are: - Any decimal
                      value greater than zero. Example: 0.01538 -1 – indicates default
                      price to be up-to on-demand. You can set the maxPrice to -1
                      to indicate that the Azure Spot VM/VMSS should not be evicted
                      for price reasons. Also, the default max price is -1 if it is
                      not provided by you. Minimum api-version: 2019-03-01.'
                    type: number
                type: object
              diagnosticsProfile:
                description: 'DiagnosticsProfile: Specifies the boot diagnostic settings
                  state. Minimum api-version: 2015-06-15.'
                properties:
                  bootDiagnostics:
                    description: 'BootDiagnostics: Boot Diagnostics is a debugging
                      feature which allows you to view Console Output and Screenshot
                      to diagnose VM status. You can easily view the output of your
                      console log. Azure also enables you to see a screenshot of the
                      VM from the hypervisor.'
                    properties:
                      enabled:
                        description: 'Enabled: Whether boot diagnostics should be
                          enabled on the Virtual Machine.'
                        type: boolean
                      storageUri:
                        description: 'StorageUri: Uri of the storage account to use
                          for placing the console output and screenshot. If storageUri
                          is not specified while enabling boot diagnostics, managed
                          storage will be used.'
                        type: string
                    type: object
                type: object
              evictionPolicy:
                description: 'EvictionPolicy: Specifies the eviction policy for the
                  Azure Spot virtual machine and Azure Spot scale set. For Azure Spot
                  virtual machines, both ''Deallocate'' and ''Delete'' are supported
                  and the minimum api-version is 2019-03-01. For Azure Spot scale
                  sets, both ''Deallocate'' and ''Delete'' are supported and the minimum
                  api-version is 2017-10-30-preview.'
                enum:
                - Deallocate
                - Delete
                type: string
              extendedLocation:
                description: 'ExtendedLocation: The complex type of the extended location.'
                properties:
                  name:
                    description: 'Name: The name of the extended location.'
                    type: string
                  type:
                    description: 'Type: The type of the extended location.'
                    enum:
                    - EdgeZone
                    type: string
                type: object
              extensionsTimeBudget:
                description: 'ExtensionsTimeBudget: Specifies the time alloted for
                  all extensions to start. The time duration should be between 15
                  minutes and 120 minutes (inclusive) and should be specified in ISO
                  8601 format. The default value is 90 minutes (PT1H30M). Minimum
                  api-version: 2020-06-01'
                type: string
              hardwareProfile:
                description: 'HardwareProfile: Specifies the hardware settings for
                  the virtual machine.'
                properties:
                  vmSize:
                    description: 'VmSize: Specifies the size of the virtual machine.
                      The enum data type is currently deprecated and will be removed
                      by December 23rd 2023. Recommended way to get the list of available
                      sizes is using these APIs: [List all available virtual machine
                      sizes in an availability set](https://docs.microsoft.com/rest/api/compute/availabilitysets/listavailablesizes)
                      [List all available virtual machine sizes in a region]( https://docs.microsoft.com/en-us/rest/api/compute/resourceskus/list)
                      [List all available virtual machine sizes for resizing](https://docs.microsoft.com/rest/api/compute/virtualmachines/listavailablesizes).
                      For more information about virtual machine sizes, see [Sizes
                      for virtual machines](https://docs.microsoft.com/en-us/azure/virtual-machines/sizes).
                      The available VM sizes depend on region and availability set.'
                    enum:
                    - Basic_A0
                    - Basic_A1
                    - Basic_A2
                    - Basic_A3
                    - Basic_A4
                    - Standard_A0
                    - Standard_A1
                    - Standard_A10
                    - Standard_A11
                    - Standard_A1_v2
                    - Standard_A2
                    - Standard_A2m_v2
                    - Standard_A2_v2
                    - Standard_A3
                    - Standard_A4
                    - Standard_A4m_v2
                    - Standard_A4_v2
                    - Standard_A5
                    - Standard_A6
                    - Standard_A7
                    - Standard_A8
                    - Standard_A8m_v2
                    - Standard_A8_v2
                    - Standard_A9
                    - Standard_B1ms
                    - Standard_B1s
                    - Standard_B2ms
                    - Standard_B2s
                    - Standard_B4ms
                    - Standard_B8ms
                    - Standard_D1
                    - Standard_D11
                    - Standard_D11_v2
                    - Standard_D12
                    - Standard_D12_v2
                    - Standard_D13
                    - Standard_D13_v2
                    - Standard_D14
                    - Standard_D14_v2
                    - Standard_D15_v2
                    - Standard_D16s_v3
                    - Standard_D16_v3
                    - Standard_D1_v2
                    - Standard_D2
                    - Standard_D2s_v3
                    - Standard_D2_v2
                    - Standard_D2_v3
                    - Standard_D3
                    - Standard_D32s_v3
                    - Standard_D32_v3
                    - Standard_D3_v2
                    - Standard_D4
                    - Standard_D4s_v3
                    - Standard_D4_v2
                    - Standard_D4_v3
                    - Standard_D5_v2
                    - Standard_D64s_v3
                    - Standard_D64_v3
                    - Standard_D8s_v3
                    - Standard_D8_v3
                    - Standard_DS1
                    - Standard_DS11
                    - Standard_DS11_v2
                    - Standard_DS12
                    - Standard_DS12_v2
                    - Standard_DS13
                    - Standard_DS13-2_v2
                    - Standard_DS13-4_v2
                    - Standard_DS13_v2
                    - Standard_DS14
                    - Standard_DS14-4_v2
                    - Standard_DS14-8_v2
                    - Standard_DS14_v2
                    - Standard_DS15_v2
                    - Standard_DS1_v2
                    - Standard_DS2
                    - Standard_DS2_v2
                    - Standard_DS3
                    - Standard_DS3_v2
                    - Standard_DS4
                    - Standard_DS4_v2
                    - Standard_DS5_v2
                    - Standard_E16s_v3
                    - Standard_E16_v3
                    - Standard_E2s_v3
                    - Standard_E2_v3
                    - Standard_E32-16_v3
                    - Standard_E32-8s_v3
                    - Standard_E32s_v3
                    - Standard_E32_v3
                    - Standard_E4s_v3
                    - Standard_E4_v3
                    - Standard_E64-16s_v3
                    - Standard_E64-32s_v3
                    - Standard_E64s_v3
                    - Standard_E64_v3
                    - Standard_E8s_v3
                    - Standard_E8_v3
                    - Standard_F1
                    - Standard_F16
                    - Standard_F16s
                    - Standard_F16s_v2
                    - Standard_F1s
                    - Standard_F2
                    - Standard_F2s
                    - Standard_F2s_v2
                    - Standard_F32s_v2
                    - Standard_F4
                    - Standard_F4s
                    - Standard_F4s_v2
                    - Standard_F64s_v2
                    - Standard_F72s_v2
                    - Standard_F8
                    - Standard_F8s
                    - Standard_F8s_v2
                    - Standard_G1
                    - Standard_G2
                    - Standard_G3
                    - Standard_G4
                    - Standard_G5
                    - Standard_GS1
                    - Standard_GS2
                    - Standard_GS3
                    - Standard_GS4
                    - Standard_GS4-4
                    - Standard_GS4-8
                    - Standard_GS5
                    - Standard_GS5-16
                    - Standard_GS5-8
                    - Standard_H16
                    - Standard_H16m
                    - Standard_H16mr
                    - Standard_H16r
                    - Standard_H8
                    - Standard_H8m
                    - Standard_L16s
                    - Standard_L32s
                    - Standard_L4s
                    - Standard_L8s
                    - Standard_M128-32ms
                    - Standard_M128-64ms
                    - Standard_M128ms
                    - Standard_M128s
                    - Standard_M64-16ms
                    - Standard_M64-32ms
                    - Standard_M64ms
                    - Standard_M64s
                    - Standard_NC12
                    - Standard_NC12s_v2
                    - Standard_NC12s_v3
                    - Standard_NC24
                    - Standard_NC24r
                    - Standard_NC24rs_v2
                    - Standard_NC24rs_v3
                    - Standard_NC24s_v2
                    - Standard_NC24s_v3
                    - Standard_NC6
                    - Standard_NC6s_v2
                    - Standard_NC6s_v3
                    - Standard_ND12s
                    - Standard_ND24rs
                    - Standard_ND24s
                    - Standard_ND6s
                    - Standard_NV12
                    - Standard_NV24
                    - Standard_NV6
                    type: string
                type: object
              host:
                description: 'Generated from: https://schema.management.azure.com/schemas/2020-12-01/Microsoft.Compute.json#/definitions/SubResource'
                properties:
                  reference:
                    description: 'Reference: Resource Id'
                    properties:
                      armId:
                        description: 'TODO: The below regex may be overly restrictive
                          ARMID is a string of the form /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}.
                          The /resourcegroups/{resourceGroupName} bit is optional
                          as some resources are scoped at the subscription level ARMID
                          is mutually exclusive with Group, Kind, Namespace and Name.'
                        pattern: (?i)^/subscriptions/([^/]+)(/resourcegroups/([^/]+))?/providers/([^/]+)/([^/]+/[^/]+)(/([^/]+/[^/]+))*$
                        type: string
                      group:
                        description: Group is the Kubernetes group of the resource.
                        type: string
                      kind:
                        description: Kind is the Kubernetes kind of the resource.
                        type: string
                      name:
                        description: Name is the Kubernetes name of the resource.
                        type: string
                    type: object
                type: object
              hostGroup:
                description: 'Generated from: https://schema.management.azure.com/schemas/2020-12-01/Microsoft.Compute.json#/definitions/SubResource'
                properties:
                  reference:
                    description: 'Reference: Resource Id'
                    properties:
                      armId:
                        description: 'TODO: The below regex may be overly restrictive
                          ARMID is a string of the form /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}.
                          The /resourcegroups/{resourceGroupName} bit is optional
                          as some resources are scoped at the subscription level ARMID
                          is mutually exclusive with Group, Kind, Namespace and Name.'
                        pattern: (?i)^/subscriptions/([^/]+)(/resourcegroups/([^/]+))?/providers/([^/]+)/([^/]+/[^/]+)(/([^/]+/[^/]+))*$
                        type: string
                      group:
                        description: Group is the Kubernetes group of the resource.
                        type: string
                      kind:
                        description: Kind is the Kubernetes kind of the resource.
                        type: string
                      name:
                        description: Name is the Kubernetes name of the resource.
                        type: string
                    type: object
                type: object
              identity:
                description: 'Identity: Identity for the virtual machine.'
                properties:
                  type:
                    description: 'Type: The type of identity used for the virtual
                      machine. The type ''SystemAssigned, UserAssigned'' includes
                      both an implicitly created identity and a set of user assigned
                      identities. The type ''None'' will remove any identities from
                      the virtual machine.'
                    enum:
                    - None
                    - SystemAssigned
                    - SystemAssigned, UserAssigned
                    - UserAssigned
                    type: string
                  userAssignedIdentities:
                    additionalProperties:
                      x-kubernetes-preserve-unknown-fields: true
                    description: 'UserAssignedIdentities: The list of user identities
                      associated with the Virtual Machine. The user identity dictionary
                      key references will be ARM resource ids in the form: ''/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}''.'
                    type: object
                type: object
              licenseType:
                description: 'LicenseType: Specifies that the image or disk that is
                  being used was licensed on-premises. Possible values for Windows
                  Server operating system are: Windows_Client Windows_Server Possible
                  values for Linux Server operating system are: RHEL_BYOS (for RHEL)
                  SLES_BYOS (for SUSE) For more information, see [Azure Hybrid Use
                  Benefit for Windows Server](https://docs.microsoft.com/azure/virtual-machines/windows/hybrid-use-benefit-licensing)
                  [Azure Hybrid Use Benefit for Linux Server](https://docs.microsoft.com/azure/virtual-machines/linux/azure-hybrid-benefit-linux)
                  Minimum api-version: 2015-06-15'
                type: string
              location:
                description: 'Location: Location to deploy resource to'
                type: string
              networkProfile:
                description: 'NetworkProfile: Specifies the network interfaces of
                  the virtual machine.'
                properties:
                  networkInterfaces:
                    description: 'NetworkInterfaces: Specifies the list of resource
                      Ids for the network interfaces associated with the virtual machine.'
                    items:
                      properties:
                        primary:
                          description: 'Primary: Specifies the primary network interface
                            in case the virtual machine has more than 1 network interface.'
                          type: boolean
                        reference:
                          description: 'Reference: Resource Id'
                          properties:
                            armId:
                              description: 'TODO: The below regex may be overly restrictive
                                ARMID is a string of the form /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}.
                                The /resourcegroups/{resourceGroupName} bit is optional
                                as some resources are scoped at the subscription level
                                ARMID is mutually exclusive with Group, Kind, Namespace
                                and Name.'
                              pattern: (?i)^/subscriptions/([^/]+)(/resourcegroups/([^/]+))?/providers/([^/]+)/([^/]+/[^/]+)(/([^/]+/[^/]+))*$
                              type: string
                            group:
                              description: Group is the Kubernetes group of the resource.
                              type: string
                            kind:
                              description: Kind is the Kubernetes kind of the resource.
                              type: string
                            name:
                              description: Name is the Kubernetes name of the resource.
                              type: string
                          type: object
                      type: object
                    type: array
                type: object
              osProfile:
                description: 'OsProfile: Specifies the operating system settings for
                  the virtual machine. Some of the settings cannot be changed once
                  VM is provisioned.'
                properties:
                  adminPassword:
                    description: 'AdminPassword: Specifies the password of the administrator
                      account. Minimum-length (Windows): 8 characters Minimum-length
                      (Linux): 6 characters Max-length (Windows): 123 characters Max-length
                      (Linux): 72 characters Complexity requirements: 3 out of 4 conditions
                      below need to be fulfilled Has lower characters Has upper characters
                      Has a digit Has a special character (Regex match [\W_]) Disallowed
                      values: "abc@123", "P@$$w0rd", "P@ssw0rd", "P@ssword123", "Pa$$word",
                      "pass@word1", "Password!", "Password1", "Password22", "iloveyou!"
                      For resetting the password, see [How to reset the Remote Desktop
                      service or its login password in a Windows VM](https://docs.microsoft.com/azure/virtual-machines/virtual-machines-windows-reset-rdp?toc=%2fazure%2fvirtual-machines%2fwindows%2ftoc.json)
                      For resetting root password, see [Manage users, SSH, and check
                      or repair disks on Azure Linux VMs using the VMAccess Extension](https://docs.microsoft.com/azure/virtual-machines/virtual-machines-linux-using-vmaccess-extension?toc=%2fazure%2fvirtual-machines%2flinux%2ftoc.json#reset-root-password)'
                    properties:
                      key:
                        description: Key is the key in the Kubernetes secret being
                          referenced
                        type: string
                      name:
                        description: SecretName is the name of the Kubernetes secret
                          being referenced. The secret must be in the same namespace
                          as the resource
                        type: string
                    required:
                    - key
                    - name
                    type: object
                  adminUsername:
                    description: 'AdminUsername: Specifies the name of the administrator
                      account. This property cannot be updated after the VM is created.
                      Windows-only restriction: Cannot end in "." Disallowed values:
                      "administrator", "admin", "user", "user1", "test", "user2",
                      "test1", "user3", "admin1", "1", "123", "a", "actuser", "adm",
                      "admin2", "aspnet", "backup", "console", "david", "guest", "john",
                      "owner", "root", "server", "sql", "support", "support_388945a0",
                      "sys", "test2", "test3", "user4", "user5". Minimum-length (Linux):
                      1  character Max-length (Linux): 64 characters Max-length (Windows):
                      20 characters <li> For root access to the Linux VM, see [Using
                      root privileges on Linux virtual machines in Azure](https://docs.microsoft.com/azure/virtual-machines/virtual-machines-linux-use-root-privileges?toc=%2fazure%2fvirtual-machines%2flinux%2ftoc.json)
                      <li> For a list of built-in system users on Linux that should
                      not be used in this field, see [Selecting User Names for Linux
                      on Azure](https://docs.microsoft.com/azure/virtual-machines/virtual-machines-linux-usernames?toc=%2fazure%2fvirtual-machines%2flinux%2ftoc.json)'
                    type: string
                  allowExtensionOperations:
                    description: 'AllowExtensionOperations: Specifies whether extension
                      operations should be allowed on the virtual machine. This may
                      only be set to False when no extensions are present on the virtual
                      machine.'
                    type: boolean
                  computerName:
                    description: 'ComputerName: Specifies the host OS name of the
                      virtual machine. This name cannot be updated after the VM is
                      created. Max-length (Windows): 15 characters Max-length (Linux):
                      64 characters. For naming conventions and restrictions see [Azure
                      infrastructure services implementation guidelines](https://docs.microsoft.com/azure/virtual-machines/virtual-machines-linux-infrastructure-subscription-accounts-guidelines?toc=%2fazure%2fvirtual-machines%2flinux%2ftoc.json#1-naming-conventions).'
                    type: string
                  customData:
                    description: 'CustomData: Specifies a base-64 encoded string of
                      custom data. The base-64 encoded string is decoded to a binary
                      array that is saved as a file on the Virtual Machine. The maximum
                      length of the binary array is 65535 bytes. Note: Do not pass
                      any secrets or passwords in customData property This property
                      cannot be updated after the VM is created. customData is passed
                      to the VM to be saved as a file, for more information see [Custom
                      Data on Azure VMs](https://azure.microsoft.com/en-us/blog/custom-data-and-cloud-init-on-windows-azure/)
                      For using cloud-init for your Linux VM, see [Using cloud-init
                      to customize a Linux VM during creation](https://docs.microsoft.com/azure/virtual-machines/virtual-machines-linux-using-cloud-init?toc=%2fazure%2fvirtual-machines%2flinux%2ftoc.json)'
                    type: string
                  linuxConfiguration:
                    description: 'LinuxConfiguration: Specifies the Linux operating
                      system settings on the virtual machine. For a list of supported
                      Linux distributions, see [Linux on Azure-Endorsed Distributions](https://docs.microsoft.com/azure/virtual-machines/virtual-machines-linux-endorsed-distros?toc=%2fazure%2fvirtual-machines%2flinux%2ftoc.json)
                      For running non-endorsed distributions, see [Information for
                      Non-Endorsed Distributions](https://docs.microsoft.com/azure/virtual-machines/virtual-machines-linux-create-upload-generic?toc=%2fazure%2fvirtual-machines%2flinux%2ftoc.json).'
                    properties:
                      disablePasswordAuthentication:
                        description: 'DisablePasswordAuthentication: Specifies whether
                          password authentication should be disabled.'
                        type: boolean
                      patchSettings:
                        description: 'PatchSettings: Specifies settings related to
                          VM Guest Patching on Linux.'
                        properties:
                          patchMode:
                            description: 'PatchMode: Specifies the mode of VM Guest
                              Patching to IaaS virtual machine. Possible values are:
                              ImageDefault - The virtual machine''s default patching
                              configuration is used. AutomaticByPlatform - The virtual
                              machine will be automatically updated by the platform.
                              The property provisionVMAgent must be true.'
                            enum:
                            - AutomaticByPlatform
                            - ImageDefault
                            type: string
                        type: object
                      provisionVMAgent:
                        description: 'ProvisionVMAgent: Indicates whether virtual
                          machine agent should be provisioned on the virtual machine.
                          When this property is not specified in the request body,
                          default behavior is to set it to true.  This will ensure
                          that VM Agent is installed on the VM so that extensions
                          can be added to the VM later.'
                        type: boolean
                      ssh:
                        description: 'Ssh: SSH configuration for Linux based VMs running
                          on Azure'
                        properties:
                          publicKeys:
                            description: 'PublicKeys: The list of SSH public keys
                              used to authenticate with linux based VMs.'
                            items:
                              description: 'Generated from: https://schema.management.azure.com/schemas/2020-12-01/Microsoft.Compute.json#/definitions/SshPublicKey'
                              properties:
                                keyData:
                                  description: 'KeyData: SSH public key certificate
                                    used to authenticate with the VM through ssh.
                                    The key needs to be at least 2048-bit and in ssh-rsa
                                    format. For creating ssh keys, see [Create SSH
                                    keys on Linux and Mac for Linux VMs in Azure](https://docs.microsoft.com/en-us/azure/virtual-machines/linux/mac-create-ssh-keys?toc=%2fazure%2fvirtual-machines%2flinux%2ftoc.json).'
                                  type: string
                                path:
                                  description: 'Path: Specifies the full path on the
                                    created VM where ssh public key is stored. If
                                    the file already exists, the specified key is
                                    appended to the file. Example: /home/user/.ssh/authorized_keys'
                                  type: string
                              type: object
                            type: array
                        type: object
                    type: object
                  requireGuestProvisionSignal:
                    description: 'RequireGuestProvisionSignal: Specifies whether the
                      guest provision signal is required to infer provision success
                      of the virtual machine.  Note: This property is for private
                      testing only, and all customers must not set the property to
                      false.'
                    type: boolean
                  secrets:
                    description: 'Secrets: Specifies set of certificates that should
                      be installed onto the virtual machine.'
                    items:
                      description: 'Generated from: https://schema.management.azure.com/schemas/2020-12-01/Microsoft.Compute.json#/definitions/VaultSecretGroup'
                      properties:
                        sourceVault:
                          description: 'Generated from: https://schema.management.azure.com/schemas/2020-12-01/Microsoft.Compute.json#/definitions/SubResource'
                          properties:
                            reference:
                              description: 'Reference: Resource Id'
                              properties:
                                armId:
                                  description: 'TODO: The below regex may be overly
                                    restrictive ARMID is a string of the form /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}.
                                    The /resourcegroups/{resourceGroupName} bit is
                                    optional as some resources are scoped at the subscription
                                    level ARMID is mutually exclusive with Group,
                                    Kind, Namespace and Name.'
                                  pattern: (?i)^/subscriptions/([^/]+)(/resourcegroups/([^/]+))?/providers/([^/]+)/([^/]+/[^/]+)(/([^/]+/[^/]+))*$
                                  type: string
                                group:
                                  description: Group is the Kubernetes group of the
                                    resource.
                                  type: string
                                kind:
                                  description: Kind is the Kubernetes kind of the
                                    resource.
                                  type: string
                                name:
                                  description: Name is the Kubernetes name of the
                                    resource.
                                  type: string
                              type: object
                          type: object
                        vaultCertificates:
                          description: 'VaultCertificates: The list of key vault references
                            in SourceVault which contain certificates.'
                          items:
                            description: 'Generated from: https://schema.management.azure.com/schemas/2020-12-01/Microsoft.Compute.json#/definitions/VaultCertificate'
                            properties:
                              certificateStore:
                                description: 'CertificateStore: For Windows VMs, specifies
                                  the certificate store on the Virtual Machine to
                                  which the certificate should be added. The specified
                                  certificate store is implicitly in the LocalMachine
                                  account. For Linux VMs, the certificate file is
                                  placed under the /var/lib/waagent directory, with
                                  the file name &lt;UppercaseThumbprint&gt;.crt for
                                  the X509 certificate file and &lt;UppercaseThumbprint&gt;.prv
                                  for private key. Both of these files are .pem formatted.'
                                type: string
                              certificateUrl:
                                description: 'CertificateUrl: This is the URL of a
                                  certificate that has been uploaded to Key Vault
                                  as a secret. For adding a secret to the Key Vault,
                                  see [Add a key or secret to the key vault](https://docs.microsoft.com/azure/key-vault/key-vault-get-started/#add).
                                  In this case, your certificate needs to be It is
                                  the Base64 encoding of the following JSON Object
                                  which is encoded in UTF-8: { "data":"<Base64-encoded-certificate>",
                                  "dataType":"pfx", "password":"<pfx-file-password>"
                                  }'
                                type: string
                            type: object
                          type: array
                      type: object
                    type: array
                  windowsConfiguration:
                    description: 'WindowsConfiguration: Specifies Windows operating
                      system settings on the virtual machine.'
                    properties:
                      additionalUnattendContent:
                        description: 'AdditionalUnattendContent: Specifies additional
                          base-64 encoded XML formatted information that can be included
                          in the Unattend.xml file, which is used by Windows Setup.'
                        items:
                          description: 'Generated from: https://schema.management.azure.com/schemas/2020-12-01/Microsoft.Compute.json#/definitions/AdditionalUnattendContent'
                          properties:
                            componentName:
                              description: 'ComponentName: The component name. Currently,
                                the only allowable value is Microsoft-Windows-Shell-Setup.'
                              enum:
                              - Microsoft-Windows-Shell-Setup
                              type: string
                            content:
                              description: 'Content: Specifies the XML formatted content
                                that is added to the unattend.xml file for the specified
                                path and component. The XML must be less than 4KB
                                and must include the root element for the setting
                                or feature that is being inserted.'
                              type: string
                            passName:
                              description: 'PassName: The pass name. Currently, the
                                only allowable value is OobeSystem.'
                              enum:
                              - OobeSystem
                              type: string
                            settingName:
                              description: 'SettingName: Specifies the name of the
                                setting to which the content applies. Possible values
                                are: FirstLogonCommands and AutoLogon.'
                              enum:
                              - AutoLogon
                              - FirstLogonCommands
                              type: string
                          type: object
                        type: array
                      enableAutomaticUpdates:
                        description: 'EnableAutomaticUpdates: Indicates whether Automatic
                          Updates is enabled for the Windows virtual machine. Default
                          value is true. For virtual machine scale sets, this property
                          can be updated and updates will take effect on OS reprovisioning.'
                        type: boolean
                      patchSettings:
                        description: 'PatchSettings: Specifies settings related to
                          VM Guest Patching on Windows.'
                        properties:
                          enableHotpatching:
                            description: 'EnableHotpatching: Enables customers to
                              patch their Azure VMs without requiring a reboot. For
                              enableHotpatching, the ''provisionVMAgent'' must be
                              set to true and ''patchMode'' must be set to ''AutomaticByPlatform''.'
                            type: boolean
                          patchMode:
                            description: 'PatchMode: Specifies the mode of VM Guest
                              Patching to IaaS virtual machine. Possible values are:
                              Manual - You  control the application of patches to
                              a virtual machine. You do this by applying patches manually
                              inside the VM. In this mode, automatic updates are disabled;
                              the property WindowsConfiguration.enableAutomaticUpdates
                              must be false AutomaticByOS - The virtual machine will
                              automatically be updated by the OS. The property WindowsConfiguration.enableAutomaticUpdates
                              must be true. AutomaticByPlatform - the virtual machine
                              will automatically updated by the platform. The properties
                              provisionVMAgent and WindowsConfiguration.enableAutomaticUpdates
                              must be true.'
                            enum:
                            - AutomaticByOS
                            - AutomaticByPlatform
                            - Manual
                            type: string
                        type: object
                      provisionVMAgent:
                        description: 'ProvisionVMAgent: Indicates whether virtual
                          machine agent should be provisioned on the virtual machine.
                          When this property is not specified in the request body,
                          default behavior is to set it to true.  This will ensure
                          that VM Agent is installed on the VM so that extensions
                          can be added to the VM later.'
                        type: boolean
                      timeZone:
                        description: 'TimeZone: Specifies the time zone of the virtual
                          machine. e.g. "Pacific Standard Time". Possible values can
                          be [TimeZoneInfo.Id](https://docs.microsoft.com/en-us/dotnet/api/system.timezoneinfo.id?#System_TimeZoneInfo_Id)
                          value from time zones returned by [TimeZoneInfo.GetSystemTimeZones](https://docs.microsoft.com/en-us/dotnet/api/system.timezoneinfo.getsystemtimezones).'
                        type: string
                      winRM:
                        description: 'WinRM: Describes Windows Remote Management configuration
                          of the VM'
                        properties:
                          listeners:
                            description: 'Listeners: The list of Windows Remote Management
                              listeners'
                            items:
                              description: 'Generated from: https://schema.management.azure.com/schemas/2020-12-01/Microsoft.Compute.json#/definitions/WinRMListener'
                              properties:
                                certificateUrl:
                                  description: 'CertificateUrl: This is the URL of
                                    a certificate that has been uploaded to Key Vault
                                    as a secret. For adding a secret to the Key Vault,
                                    see [Add a key or secret to the key vault](https://docs.microsoft.com/azure/key-vault/key-vault-get-started/#add).
                                    In this case, your certificate needs to be It
                                    is the Base64 encoding of the following JSON Object
                                    which is encoded in UTF-8: { "data":"<Base64-encoded-certificate>",
                                    "dataType":"pfx", "password":"<pfx-file-password>"
                                    }'
                                  type: string
                                protocol:
                                  description: 'Protocol: Specifies the protocol of
                                    WinRM listener. Possible values are: http https.'
                                  enum:
                                  - Http
                                  - Https
                                  type: string
                              type: object
                            type: array
                        type: object
                    type: object
                type: object
              owner:
                description: KnownResourceReference is a resource reference to a known
                  type.
                properties:
                  name:
                    description: This is the name of the Kubernetes resource to reference.
                    type: string
                required:
                - name
                type: object
              plan:
                description: 'Plan: Specifies information about the marketplace image
                  used to create the virtual machine. This element is only used for
                  marketplace images. Before you can use a marketplace image from
                  an API, you must enable the image for programmatic use.  In the
                  Azure portal, find the marketplace image that you want to use and
                  then click Want to deploy programmatically, Get Started ->. Enter
                  any required information and then click Save.'
                properties:
                  name:
                    description: 'Name: The plan ID.'
                    type: string
                  product:
                    description: 'Product: Specifies the product of the image from
                      the marketplace. This is the same value as Offer under the imageReference
                      element.'
                    type: string
                  promotionCode:
                    description: 'PromotionCode: The promotion code.'
                    type: string
                  publisher:
                    description: 'Publisher: The publisher ID.'
                    type: string
                type: object
              platformFaultDomain:
                description: 'PlatformFaultDomain: Specifies the scale set logical
                  fault domain into which the Virtual Machine will be created. By
                  default, the Virtual Machine will by automatically assigned to a
                  fault domain that best maintains balance across available fault
                  domains. <li>This is applicable only if the ''virtualMachineScaleSet''
                  property of this Virtual Machine is set.<li>The Virtual Machine
                  Scale Set that is referenced, must have ''platformFaultDomainCount''
                  &gt; 1.<li>This property cannot be updated once the Virtual Machine
                  is created.<li>Fault domain assignment can be viewed in the Virtual
                  Machine Instance View. Minimum api‐version: 2020‐12‐01'
                type: integer
              priority:
                description: 'Priority: Specifies the priority for the virtual machine.
                  Minimum api-version: 2019-03-01.'
                enum:
                - Low
                - Regular
                - Spot
                type: string
              proximityPlacementGroup:
                description: 'Generated from: https://schema.management.azure.com/schemas/2020-12-01/Microsoft.Compute.json#/definitions/SubResource'
                properties:
                  reference:
                    description: 'Reference: Resource Id'
                    properties:
                      armId:
                        description: 'TODO: The below regex may be overly restrictive
                          ARMID is a string of the form /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}.
                          The /resourcegroups/{resourceGroupName} bit is optional
                          as some resources are scoped at the subscription level ARMID
                          is mutually exclusive with Group, Kind, Namespace and Name.'
                        pattern: (?i)^/subscriptions/([^/]+)(/resourcegroups/([^/]+))?/providers/([^/]+)/([^/]+/[^/]+)(/([^/]+/[^/]+))*$
                        type: string
                      group:
                        description: Group is the Kubernetes group of the resource.
                        type: string
                      kind:
                        description: Kind is the Kubernetes kind of the resource.
                        type: string
                      name:
                        description: Name is the Kubernetes name of the resource.
                        type: string
                    type: object
                type: object
              securityProfile:
                description: 'SecurityProfile: Specifies the Security profile settings
                  for the virtual machine or virtual machine scale set.'
                properties:
                  encryptionAtHost:
                    description: 'EncryptionAtHost: This property can be used by user
                      in the request to enable or disable the Host Encryption for
                      the virtual machine or virtual machine scale set. This will
                      enable the encryption for all the disks including Resource/Temp
                      disk at host itself. Default: The Encryption at host will be
                      disabled unless this property is set to true for the resource.'
                    type: boolean
                  securityType:
                    description: 'SecurityType: Specifies the SecurityType of the
                      virtual machine. It is set as TrustedLaunch to enable UefiSettings.
                      Default: UefiSettings will not be enabled unless this property
                      is set as TrustedLaunch.'
                    enum:
                    - TrustedLaunch
                    type: string
                  uefiSettings:
                    description: 'UefiSettings: Specifies the security settings like
                      secure boot and vTPM used while creating the virtual machine.
                      Minimum api-version: 2020-12-01'
                    properties:
                      secureBootEnabled:
                        description: 'SecureBootEnabled: Specifies whether secure
                          boot should be enabled on the virtual machine. Minimum api-version:
                          2020-12-01'
                        type: boolean
                      vTpmEnabled:
                        description: 'VTpmEnabled: Specifies whether vTPM should be
                          enabled on the virtual machine. Minimum api-version: 2020-12-01'
                        type: boolean
                    type: object
                type: object
              storageProfile:
                description: 'StorageProfile: Specifies the storage settings for the
                  virtual machine disks.'
                properties:
                  dataDisks:
                    description: 'DataDisks: Specifies the parameters that are used
                      to add a data disk to a virtual machine. For more information
                      about disks, see [About disks and VHDs for Azure virtual machines](https://docs.microsoft.com/azure/virtual-machines/virtual-machines-windows-about-disks-vhds?toc=%2fazure%2fvirtual-machines%2fwindows%2ftoc.json).'
                    items:
                      description: 'Generated from: https://schema.management.azure.com/schemas/2020-12-01/Microsoft.Compute.json#/definitions/DataDisk'
                      properties:
                        caching:
                          description: 'Caching: Specifies the caching requirements.
                            Possible values are: None ReadOnly ReadWrite Default:
                            None for Standard storage. ReadOnly for Premium storage.'
                          enum:
                          - None
                          - ReadOnly
                          - ReadWrite
                          type: string
                        createOption:
                          description: 'CreateOption: Specifies how the virtual machine
                            should be created. Possible values are: Attach \u2013
                            This value is used when you are using a specialized disk
                            to create the virtual machine. FromImage \u2013 This value
                            is used when you are using an image to create the virtual
                            machine. If you are using a platform image, you also use
                            the imageReference element described above. If you are
                            using a marketplace image, you  also use the plan element
                            previously described.'
                          enum:
                          - Attach
                          - Empty
                          - FromImage
                          type: string
                        detachOption:
                          description: 'DetachOption: Specifies the detach behavior
                            to be used while detaching a disk or which is already
                            in the process of detachment from the virtual machine.
                            Supported values: ForceDetach. detachOption: ForceDetach
                            is applicable only for managed data disks. If a previous
                            detachment attempt of the data disk did not complete due
                            to an unexpected failure from the virtual machine and
                            the disk is still not released then use force-detach as
                            a last resort option to detach the disk forcibly from
                            the VM. All writes might not have been flushed when using
                            this detach behavior. This feature is still in preview
                            mode and is not supported for VirtualMachineScaleSet.
                            To force-detach a data disk update toBeDetached to ''true''
                            along with setting detachOption: ''ForceDetach''.'
                          enum:
                          - ForceDetach
                          type: string
                        diskSizeGB:
                          description: 'DiskSizeGB: Specifies the size of an empty
                            data disk in gigabytes. This element can be used to overwrite
                            the size of the disk in a virtual machine image. This
                            value cannot be larger than 1023 GB'
                          type: integer
                        image:
                          description: 'Image: Describes the uri of a disk.'
                          properties:
                            uri:
                              description: 'Uri: Specifies the virtual hard disk''s
                                uri.'
                              type: string
                          type: object
                        lun:
                          description: 'Lun: Specifies the logical unit number of
                            the data disk. This value is used to identify data disks
                            within the VM and therefore must be unique for each data
                            disk attached to a VM.'
                          type: integer
                        managedDisk:
                          description: 'ManagedDisk: The parameters of a managed disk.'
                          properties:
                            diskEncryptionSet:
                              description: 'DiskEncryptionSet: Describes the parameter
                                of customer managed disk encryption set resource id
                                that can be specified for disk. NOTE: The disk encryption
                                set resource id can only be specified for managed
                                disk. Please refer https://aka.ms/mdssewithcmkoverview
                                for more details.'
                              properties:
                                reference:
                                  description: 'Reference: Resource Id'
                                  properties:
                                    armId:
                                      description: 'TODO: The below regex may be overly
                                        restrictive ARMID is a string of the form
                                        /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}.
                                        The /resourcegroups/{resourceGroupName} bit
                                        is optional as some resources are scoped at
                                        the subscription level ARMID is mutually exclusive
                                        with Group, Kind, Namespace and Name.'
                                      pattern: (?i)^/subscriptions/([^/]+)(/resourcegroups/([^/]+))?/providers/([^/]+)/([^/]+/[^/]+)(/([^/]+/[^/]+))*$
                                      type: string
                                    group:
                                      description: Group is the Kubernetes group of
                                        the resource.
                                      type: string
                                    kind:
                                      description: Kind is the Kubernetes kind of
                                        the resource.
                                      type: string
                                    name:
                                      description: Name is the Kubernetes name of
                                        the resource.
                                      type: string
                                  type: object
                              type: object
                            reference:
                              description: 'Reference: Resource Id'
                              properties:
                                armId:
                                  description: 'TODO: The below regex may be overly
                                    restrictive ARMID is a string of the form /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}.
                                    The /resourcegroups/{resourceGroupName} bit is
                                    optional as some resources are scoped at the subscription
                                    level ARMID is mutually exclusive with Group,
                                    Kind, Namespace and Name.'
                                  pattern: (?i)^/subscriptions/([^/]+)(/resourcegroups/([^/]+))?/providers/([^/]+)/([^/]+/[^/]+)(/([^/]+/[^/]+))*$
                                  type: string
                                group:
                                  description: Group is the Kubernetes group of the
                                    resource.
                                  type: string
                                kind:
                                  description: Kind is the Kubernetes kind of the
                                    resource.
                                  type: string
                                name:
                                  description: Name is the Kubernetes name of the
                                    resource.
                                  type: string
                              type: object
                            storageAccountType:
                              description: 'StorageAccountType: Specifies the storage
                                account type for the managed disk. Managed OS disk
                                storage account type can only be set when you create
                                the scale set. NOTE: UltraSSD_LRS can only be used
                                with data disks, it cannot be used with OS Disk.'
                              enum:
                              - Premium_LRS
                              - Premium_ZRS
                              - Standard_LRS
                              - StandardSSD_LRS
                              - StandardSSD_ZRS
                              - UltraSSD_LRS
                              type: string
                          type: object
                        name:
                          description: 'Name: The disk name.'
                          type: string
                        toBeDetached:
                          description: 'ToBeDetached: Specifies whether the data disk
                            is in process of detachment from the VirtualMachine/VirtualMachineScaleset'
                          type: boolean
                        vhd:
                          description: 'Vhd: Describes the uri of a disk.'
                          properties:
                            uri:
                              description: 'Uri: Specifies the virtual hard disk''s
                                uri.'
                              type: string
                          type: object
                        writeAcceleratorEnabled:
                          description: 'WriteAcceleratorEnabled: Specifies whether
                            writeAccelerator should be enabled or disabled on the
                            disk.'
                          type: boolean
                      required:
                      - createOption
                      - lun
                      type: object
                    type: array
                  imageReference:
                    description: 'ImageReference: Specifies information about the
                      image to use. You can specify information about platform images,
                      marketplace images, or virtual machine images. This element
                      is required when you want to use a platform image, marketplace
                      image, or virtual machine image, but is not used in other creation
                      operations. NOTE: Image reference publisher and offer can only
                      be set when you create the scale set.'
                    properties:
                      offer:
                        description: 'Offer: Specifies the offer of the platform image
                          or marketplace image used to create the virtual machine.'
                        type: string
                      publisher:
                        description: 'Publisher: The image publisher.'
                        type: string
                      reference:
                        description: 'Reference: Resource Id'
                        properties:
                          armId:
                            description: 'TODO: The below regex may be overly restrictive
                              ARMID is a string of the form /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}.
                              The /resourcegroups/{resourceGroupName} bit is optional
                              as some resources are scoped at the subscription level
                              ARMID is mutually exclusive with Group, Kind, Namespace
                              and Name.'
                            pattern: (?i)^/subscriptions/([^/]+)(/resourcegroups/([^/]+))?/providers/([^/]+)/([^/]+/[^/]+)(/([^/]+/[^/]+))*$
                            type: string
                          group:
                            description: Group is the Kubernetes group of the resource.
                            type: string
                          kind:
                            description: Kind is the Kubernetes kind of the resource.
                            type: string
                          name:
                            description: Name is the Kubernetes name of the resource.
                            type: string
                        type: object
                      sku:
                        description: 'Sku: The image SKU.'
                        type: string
                      version:
                        description: 'Version: Specifies the version of the platform
                          image or marketplace image used to create the virtual machine.
                          The allowed formats are Major.Minor.Build or ''latest''.
                          Major, Minor, and Build are decimal numbers. Specify ''latest''
                          to use the latest version of an image available at deploy
                          time. Even if you use ''latest'', the VM image will not
                          automatically update after deploy time even if a new version
                          becomes available.'
                        type: string
                    type: object
                  osDisk:
                    description: 'OsDisk: Specifies information about the operating
                      system disk used by the virtual machine. For more information
                      about disks, see [About disks and VHDs for Azure virtual machines](https://docs.microsoft.com/azure/virtual-machines/virtual-machines-windows-about-disks-vhds?toc=%2fazure%2fvirtual-machines%2fwindows%2ftoc.json).'
                    properties:
                      caching:
                        description: 'Caching: Specifies the caching requirements.
                          Possible values are: None ReadOnly ReadWrite Default: None
                          for Standard storage. ReadOnly for Premium storage.'
                        enum:
                        - None
                        - ReadOnly
                        - ReadWrite
                        type: string
                      createOption:
                        description: 'CreateOption: Specifies how the virtual machine
                          should be created. Possible values are: Attach \u2013 This
                          value is used when you are using a specialized disk to create
                          the virtual machine. FromImage \u2013 This value is used
                          when you are using an image to create the virtual machine.
                          If you are using a platform image, you also use the imageReference
                          element described above. If you are using a marketplace
                          image, you  also use the plan element previously described.'
                        enum:
                        - Attach
                        - Empty
                        - FromImage
                        type: string
                      diffDiskSettings:
                        description: 'DiffDiskSettings: Describes the parameters of
                          ephemeral disk settings that can be specified for operating
                          system disk. NOTE: The ephemeral disk settings can only
                          be specified for managed disk.'
                        properties:
                          option:
                            description: 'Option: Specifies the ephemeral disk settings
                              for operating system disk.'
                            enum:
                            - Local
                            type: string
                          placement:
                            description: 'Placement: Specifies the ephemeral disk
                              placement for operating system disk. Possible values
                              are: CacheDisk ResourceDisk Default: CacheDisk if one
                              is configured for the VM size otherwise ResourceDisk
                              is used. Refer to VM size documentation for Windows
                              VM at https://docs.microsoft.com/en-us/azure/virtual-machines/windows/sizes
                              and Linux VM at https://docs.microsoft.com/en-us/azure/virtual-machines/linux/sizes
                              to check which VM sizes exposes a cache disk.'
                            enum:
                            - CacheDisk
                            - ResourceDisk
                            type: string
                        type: object
                      diskSizeGB:
                        description: 'DiskSizeGB: Specifies the size of an empty data
                          disk in gigabytes. This element can be used to overwrite
                          the size of the disk in a virtual machine image. This value
                          cannot be larger than 1023 GB'
                        type: integer
                      encryptionSettings:
                        description: 'EncryptionSettings: Describes a Encryption Settings
                          for a Disk'
                        properties:
                          diskEncryptionKey:
                            description: 'DiskEncryptionKey: Describes a reference
                              to Key Vault Secret'
                            properties:
                              secretUrl:
                                description: 'SecretUrl: The URL referencing a secret
                                  in a Key Vault.'
                                type: string
                              sourceVault:
                                description: 'Generated from: https://schema.management.azure.com/schemas/2020-12-01/Microsoft.Compute.json#/definitions/SubResource'
                                properties:
                                  reference:
                                    description: 'Reference: Resource Id'
                                    properties:
                                      armId:
                                        description: 'TODO: The below regex may be
                                          overly restrictive ARMID is a string of
                                          the form /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}.
                                          The /resourcegroups/{resourceGroupName}
                                          bit is optional as some resources are scoped
                                          at the subscription level ARMID is mutually
                                          exclusive with Group, Kind, Namespace and
                                          Name.'
                                        pattern: (?i)^/subscriptions/([^/]+)(/resourcegroups/([^/]+))?/providers/([^/]+)/([^/]+/[^/]+)(/([^/]+/[^/]+))*$
                                        type: string
                                      group:
                                        description: Group is the Kubernetes group
                                          of the resource.
                                        type: string
                                      kind:
                                        description: Kind is the Kubernetes kind of
                                          the resource.
                                        type: string
                                      name:
                                        description: Name is the Kubernetes name of
                                          the resource.
                                        type: string
                                    type: object
                                type: object
                            required:
                            - secretUrl
                            - sourceVault
                            type: object
                          enabled:
                            description: 'Enabled: Specifies whether disk encryption
                              should be enabled on the virtual machine.'
                            type: boolean
                          keyEncryptionKey:
                            description: 'KeyEncryptionKey: Describes a reference
                              to Key Vault Key'
                            properties:
                              keyUrl:
                                description: 'KeyUrl: The URL referencing a key encryption
                                  key in Key Vault.'
                                type: string
                              sourceVault:
                                description: 'Generated from: https://schema.management.azure.com/schemas/2020-12-01/Microsoft.Compute.json#/definitions/SubResource'
                                properties:
                                  reference:
                                    description: 'Reference: Resource Id'
                                    properties:
                                      armId:
                                        description: 'TODO: The below regex may be
                                          overly restrictive ARMID is a string of
                                          the form /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}.
                                          The /resourcegroups/{resourceGroupName}
                                          bit is optional as some resources are scoped
                                          at the subscription level ARMID is mutually
                                          exclusive with Group, Kind, Namespace and
                                          Name.'
                                        pattern: (?i)^/subscriptions/([^/]+)(/resourcegroups/([^/]+))?/providers/([^/]+)/([^/]+/[^/]+)(/([^/]+/[^/]+))*$
                                        type: string
                                      group:
                                        description: Group is the Kubernetes group
                                          of the resource.
                                        type: string
                                      kind:
                                        description: Kind is the Kubernetes kind of
                                          the resource.
                                        type: string
                                      name:
                                        description: Name is the Kubernetes name of
                                          the resource.
                                        type: string
                                    type: object
                                type: object
                            required:
                            - keyUrl
                            - sourceVault
                            type: object
                        type: object
                      image:
                        description: 'Image: Describes the uri of a disk.'
                        properties:
                          uri:
                            description: 'Uri: Specifies the virtual hard disk''s
                              uri.'
                            type: string
                        type: object
                      managedDisk:
                        description: 'ManagedDisk: The parameters of a managed disk.'
                        properties:
                          diskEncryptionSet:
                            description: 'DiskEncryptionSet: Describes the parameter
                              of customer managed disk encryption set resource id
                              that can be specified for disk. NOTE: The disk encryption
                              set resource id can only be specified for managed disk.
                              Please refer https://aka.ms/mdssewithcmkoverview for
                              more details.'
                            properties:
                              reference:
                                description: 'Reference: Resource Id'
                                properties:
                                  armId:
                                    description: 'TODO: The below regex may be overly
                                      restrictive ARMID is a string of the form /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}.
                                      The /resourcegroups/{resourceGroupName} bit
                                      is optional as some resources are scoped at
                                      the subscription level ARMID is mutually exclusive
                                      with Group, Kind, Namespace and Name.'
                                    pattern: (?i)^/subscriptions/([^/]+)(/resourcegroups/([^/]+))?/providers/([^/]+)/([^/]+/[^/]+)(/([^/]+/[^/]+))*$
                                    type: string
                                  group:
                                    description: Group is the Kubernetes group of
                                      the resource.
                                    type: string
                                  kind:
                                    description: Kind is the Kubernetes kind of the
                                      resource.
                                    type: string
                                  name:
                                    description: Name is the Kubernetes name of the
                                      resource.
                                    type: string
                                type: object
                            type: object
                          reference:
                            description: 'Reference: Resource Id'
                            properties:
                              armId:
                                description: 'TODO: The below regex may be overly
                                  restrictive ARMID is a string of the form /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}.
                                  The /resourcegroups/{resourceGroupName} bit is optional
                                  as some resources are scoped at the subscription
                                  level ARMID is mutually exclusive with Group, Kind,
                                  Namespace and Name.'
                                pattern: (?i)^/subscriptions/([^/]+)(/resourcegroups/([^/]+))?/providers/([^/]+)/([^/]+/[^/]+)(/([^/]+/[^/]+))*$
                                type: string
                              group:
                                description: Group is the Kubernetes group of the
                                  resource.
                                type: string
                              kind:
                                description: Kind is the Kubernetes kind of the resource.
                                type: string
                              name:
                                description: Name is the Kubernetes name of the resource.
                                type: string
                            type: object
                          storageAccountType:
                            description: 'StorageAccountType: Specifies the storage
                              account type for the managed disk. Managed OS disk storage
                              account type can only be set when you create the scale
                              set. NOTE: UltraSSD_LRS can only be used with data disks,
                              it cannot be used with OS Disk.'
                            enum:
                            - Premium_LRS
                            - Premium_ZRS
                            - Standard_LRS
                            - StandardSSD_LRS
                            - StandardSSD_ZRS
                            - UltraSSD_LRS
                            type: string
                        type: object
                      name:
                        description: 'Name: The disk name.'
                        type: string
                      osType:
                        description: 'OsType: This property allows you to specify
                          the type of the OS that is included in the disk if creating
                          a VM from user-image or a specialized VHD. Possible values
                          are: Windows Linux.'
                        enum:
                        - Linux
                        - Windows
                        type: string
                      vhd:
                        description: 'Vhd: Describes the uri of a disk.'
                        properties:
                          uri:
                            description: 'Uri: Specifies the virtual hard disk''s
                              uri.'
                            type: string
                        type: object
                      writeAcceleratorEnabled:
                        description: 'WriteAcceleratorEnabled: Specifies whether writeAccelerator
                          should be enabled or disabled on the disk.'
                        type: boolean
                    required:
                    - createOption
                    type: object
                type: object
              tags:
                additionalProperties:
                  type: string
                description: 'Tags: Name-value pairs to add to the resource'
                type: object
              virtualMachineScaleSet:
                description: 'Generated from: https://schema.management.azure.com/schemas/2020-12-01/Microsoft.Compute.json#/definitions/SubResource'
                properties:
                  reference:
                    description: 'Reference: Resource Id'
                    properties:
                      armId:
                        description: 'TODO: The below regex may be overly restrictive
                          ARMID is a string of the form /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}.
                          The /resourcegroups/{resourceGroupName} bit is optional
                          as some resources are scoped at the subscription level ARMID
                          is mutually exclusive with Group, Kind, Namespace and Name.'
                        pattern: (?i)^/subscriptions/([^/]+)(/resourcegroups/([^/]+))?/providers/([^/]+)/([^/]+/[^/]+)(/([^/]+/[^/]+))*$
                        type: string
                      group:
                        description: Group is the Kubernetes group of the resource.
                        type: string
                      kind:
                        description: Kind is the Kubernetes kind of the resource.
                        type: string
                      name:
                        description: Name is the Kubernetes name of the resource.
                        type: string
                    type: object
                type: object
              zones:
                description: 'Zones: The virtual machine zones.'
                items:
                  type: string
                type: array
            required:
            - owner
            type: object
          status:
            properties:
              additionalCapabilities:
                description: 'AdditionalCapabilities: Specifies additional capabilities
                  enabled or disabled on the virtual machine.'
                properties:
                  ultraSSDEnabled:
                    description: 'UltraSSDEnabled: The flag that enables or disables
                      a capability to have one or more managed data disks with UltraSSD_LRS
                      storage account type on the VM or VMSS. Managed disks with storage
                      account type UltraSSD_LRS can be added to a virtual machine
                      or virtual machine scale set only if this property is enabled.'
                    type: boolean
                type: object
              availabilitySet:
                description: 'AvailabilitySet: Specifies information about the availability
                  set that the virtual machine should be assigned to. Virtual machines
                  specified in the same availability set are allocated to different
                  nodes to maximize availability. For more information about availability
                  sets, see [Manage the availability of virtual machines](https://docs.microsoft.com/azure/virtual-machines/virtual-machines-windows-manage-availability?toc=%2fazure%2fvirtual-machines%2fwindows%2ftoc.json).
                  For more information on Azure planned maintenance, see [Planned
                  maintenance for virtual machines in Azure](https://docs.microsoft.com/azure/virtual-machines/virtual-machines-windows-planned-maintenance?toc=%2fazure%2fvirtual-machines%2fwindows%2ftoc.json)
                  Currently, a VM can only be added to availability set at creation
                  time. The availability set to which the VM is being added should
                  be under the same resource group as the availability set resource.
                  An existing VM cannot be added to an availability set. This property
                  cannot exist along with a non-null properties.virtualMachineScaleSet
                  reference.'
                properties:
                  id:
                    description: 'Id: Resource Id'
                    type: string
                type: object
              billingProfile:
                description: 'BillingProfile: Specifies the billing related details
                  of a Azure Spot virtual machine. Minimum api-version: 2019-03-01.'
                properties:
                  maxPrice:
                    description: 'MaxPrice: Specifies the maximum price you are willing
                      to pay for a Azure Spot VM/VMSS. This price is in US Dollars.
                      This price will be compared with the current Azure Spot price
                      for the VM size. Also, the prices are compared at the time of
                      create/update of Azure Spot VM/VMSS and the operation will only
                      succeed if  the maxPrice is greater than the current Azure Spot
                      price. The maxPrice will also be used for evicting a Azure Spot
                      VM/VMSS if the current Azure Spot price goes beyond the maxPrice
                      after creation of VM/VMSS. Possible values are: - Any decimal
                      value greater than zero. Example: 0.01538 -1 – indicates default
                      price to be up-to on-demand. You can set the maxPrice to -1
                      to indicate that the Azure Spot VM/VMSS should not be evicted
                      for price reasons. Also, the default max price is -1 if it is
                      not provided by you. Minimum api-version: 2019-03-01.'
                    type: number
                type: object
              conditions:
                description: 'Conditions: The observed state of the resource'
                items:
                  description: Condition defines an extension to status (an observation)
                    of a resource
                  properties:
                    lastTransitionTime:
                      description: LastTransitionTime is the last time the condition
                        transitioned from one status to another.
                      format: date-time
                      type: string
                    message:
                      description: Message is a human readable message indicating
                        details about the transition. This field may be empty.
                      type: string
                    observedGeneration:
                      description: ObservedGeneration is the .metadata.generation
                        that the condition was set based upon. For instance, if .metadata.generation
                        is currently 12, but the .status.condition[x].observedGeneration
                        is 9, the condition is out of date with respect to the current
                        state of the instance.
                      format: int64
                      type: integer
                    reason:
                      description: Reason for the condition's last transition. Reasons
                        are upper CamelCase (PascalCase) with no spaces. A reason
                        is always provided, this field will not be empty.
                      type: string
                    severity:
                      description: Severity with which to treat failures of this type
                        of condition. For conditions which have positive polarity
                        (Status == True is their normal/healthy state), this will
                        be omitted when Status == True For conditions which have negative
                        polarity (Status == False is their normal/healthy state),
                        this will be omitted when Status == False. This is omitted
                        in all cases when Status == Unknown
                      type: string
                    status:
                      description: Status of the condition, one of True, False, or
                        Unknown.
                      type: string
                    type:
                      description: Type of condition.
                      type: string
                  required:
                  - lastTransitionTime
                  - reason
                  - status
                  - type
                  type: object
                type: array
              diagnosticsProfile:
                description: 'DiagnosticsProfile: Specifies the boot diagnostic settings
                  state. Minimum api-version: 2015-06-15.'
                properties:
                  bootDiagnostics:
                    description: 'BootDiagnostics: Boot Diagnostics is a debugging
                      feature which allows you to view Console Output and Screenshot
                      to diagnose VM status. You can easily view the output of your
                      console log. Azure also enables you to see a screenshot of the
                      VM from the hypervisor.'
                    properties:
                      enabled:
                        description: 'Enabled: Whether boot diagnostics should be
                          enabled on the Virtual Machine.'
                        type: boolean
                      storageUri:
                        description: 'StorageUri: Uri of the storage account to use
                          for placing the console output and screenshot. If storageUri
                          is not specified while enabling boot diagnostics, managed
                          storage will be used.'
                        type: string
                    type: object
                type: object
              evictionPolicy:
                description: 'EvictionPolicy: Specifies the eviction policy for the
                  Azure Spot virtual machine and Azure Spot scale set. For Azure Spot
                  virtual machines, both ''Deallocate'' and ''Delete'' are supported
                  and the minimum api-version is 2019-03-01. For Azure Spot scale
                  sets, both ''Deallocate'' and ''Delete'' are supported and the minimum
                  api-version is 2017-10-30-preview.'
                type: string
              extendedLocation:
                description: 'ExtendedLocation: The extended location of the Virtual
                  Machine.'
                properties:
                  name:
                    description: 'Name: The name of the extended location.'
                    type: string
                  type:
                    description: 'Type: The type of the extended location.'
                    type: string
                type: object
              extensionsTimeBudget:
                description: 'ExtensionsTimeBudget: Specifies the time alloted for
                  all extensions to start. The time duration should be between 15
                  minutes and 120 minutes (inclusive) and should be specified in ISO
                  8601 format. The default value is 90 minutes (PT1H30M). Minimum
                  api-version: 2020-06-01'
                type: string
              hardwareProfile:
                description: 'HardwareProfile: Specifies the hardware settings for
                  the virtual machine.'
                properties:
                  vmSize:
                    description: 'VmSize: Specifies the size of the virtual machine.
                      The enum data type is currently deprecated and will be removed
                      by December 23rd 2023. Recommended way to get the list of available
                      sizes is using these APIs: [List all available virtual machine
                      sizes in an availability set](https://docs.microsoft.com/rest/api/compute/availabilitysets/listavailablesizes)
                      [List all available virtual machine sizes in a region]( https://docs.microsoft.com/en-us/rest/api/compute/resourceskus/list)
                      [List all available virtual machine sizes for resizing](https://docs.microsoft.com/rest/api/compute/virtualmachines/listavailablesizes).
                      For more information about virtual machine sizes, see [Sizes
                      for virtual machines](https://docs.microsoft.com/en-us/azure/virtual-machines/sizes).
                      The available VM sizes depend on region and availability set.'
                    type: string
                type: object
              host:
                description: 'Host: Specifies information about the dedicated host
                  that the virtual machine resides in. Minimum api-version: 2018-10-01.'
                properties:
                  id:
                    description: 'Id: Resource Id'
                    type: string
                type: object
              hostGroup:
                description: 'HostGroup: Specifies information about the dedicated
                  host group that the virtual machine resides in. Minimum api-version:
                  2020-06-01. NOTE: User cannot specify both host and hostGroup properties.'
                properties:
                  id:
                    description: 'Id: Resource Id'
                    type: string
                type: object
              id:
                description: 'Id: Resource Id'
                type: string
              identity:
                description: 'Identity: The identity of the virtual machine, if configured.'
                properties:
                  principalId:
                    description: 'PrincipalId: The principal id of virtual machine
                      identity. This property will only be provided for a system assigned
                      identity.'
                    type: string
                  tenantId:
                    description: 'TenantId: The tenant id associated with the virtual
                      machine. This property will only be provided for a system assigned
                      identity.'
                    type: string
                  type:
                    description: 'Type: The type of identity used for the virtual
                      machine. The type ''SystemAssigned, UserAssigned'' includes
                      both an implicitly created identity and a set of user assigned
                      identities. The type ''None'' will remove any identities from
                      the virtual machine.'
                    type: string
                  userAssignedIdentities:
                    additionalProperties:
                      properties:
                        clientId:
                          description: 'ClientId: The client id of user assigned identity.'
                          type: string
                        principalId:
                          description: 'PrincipalId: The principal id of user assigned
                            identity.'
                          type: string
                      type: object
                    description: 'UserAssignedIdentities: The list of user identities
                      associated with the Virtual Machine. The user identity dictionary
                      key references will be ARM resource ids in the form: ''/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}''.'
                    type: object
                type: object
              instanceView:
                description: 'InstanceView: The virtual machine instance view.'
                properties:
                  assignedHost:
                    description: 'AssignedHost: Resource id of the dedicated host,
                      on which the virtual machine is allocated through automatic
                      placement, when the virtual machine is associated with a dedicated
                      host group that has automatic placement enabled. Minimum api-version:
                      2020-06-01.'
                    type: string
                  bootDiagnostics:
                    description: 'BootDiagnostics: Boot Diagnostics is a debugging
                      feature which allows you to view Console Output and Screenshot
                      to diagnose VM status. You can easily view the output of your
                      console log. Azure also enables you to see a screenshot of the
                      VM from the hypervisor.'
                    properties:
                      consoleScreenshotBlobUri:
                        description: 'ConsoleScreenshotBlobUri: The console screenshot
                          blob URI. NOTE: This will not be set if boot diagnostics
                          is currently enabled with managed storage.'
                        type: string
                      serialConsoleLogBlobUri:
                        description: 'SerialConsoleLogBlobUri: The serial console
                          log blob Uri. NOTE: This will not be set if boot diagnostics
                          is currently enabled with managed storage.'
                        type: string
                      status:
                        description: 'Status: The boot diagnostics status information
                          for the VM. NOTE: It will be set only if there are errors
                          encountered in enabling boot diagnostics.'
                        properties:
                          code:
                            description: 'Code: The status code.'
                            type: string
                          displayStatus:
                            description: 'DisplayStatus: The short localizable label
                              for the status.'
                            type: string
                          level:
                            description: 'Level: The level code.'
                            type: string
                          message:
                            description: 'Message: The detailed status message, including
                              for alerts and error messages.'
                            type: string
                          time:
                            description: 'Time: The time of the status.'
                            type: string
                        type: object
                    type: object
                  computerName:
                    description: 'ComputerName: The computer name assigned to the
                      virtual machine.'
                    type: string
                  disks:
                    description: 'Disks: The virtual machine disk information.'
                    items:
                      properties:
                        encryptionSettings:
                          description: 'EncryptionSettings: Specifies the encryption
                            settings for the OS Disk. Minimum api-version: 2015-06-15'
                          items:
                            properties:
                              diskEncryptionKey:
                                description: 'DiskEncryptionKey: Specifies the location
                                  of the disk encryption key, which is a Key Vault
                                  Secret.'
                                properties:
                                  secretUrl:
                                    description: 'SecretUrl: The URL referencing a
                                      secret in a Key Vault.'
                                    type: string
                                  sourceVault:
                                    description: 'SourceVault: The relative URL of
                                      the Key Vault containing the secret.'
                                    properties:
                                      id:
                                        description: 'Id: Resource Id'
                                        type: string
                                    type: object
                                required:
                                - secretUrl
                                - sourceVault
                                type: object
                              enabled:
                                description: 'Enabled: Specifies whether disk encryption
                                  should be enabled on the virtual machine.'
                                type: boolean
                              keyEncryptionKey:
                                description: 'KeyEncryptionKey: Specifies the location
                                  of the key encryption key in Key Vault.'
                                properties:
                                  keyUrl:
                                    description: 'KeyUrl: The URL referencing a key
                                      encryption key in Key Vault.'
                                    type: string
                                  sourceVault:
                                    description: 'SourceVault: The relative URL of
                                      the Key Vault containing the key.'
                                    properties:
                                      id:
                                        description: 'Id: Resource Id'
                                        type: string
                                    type: object
                                required:
                                - keyUrl
                                - sourceVault
                                type: object
                            type: object
                          type: array
                        name:
                          description: 'Name: The disk name.'
                          type: string
                        statuses:
                          description: 'Statuses: The resource status information.'
                          items:
                            properties:
                              code:
                                description: 'Code: The status code.'
                                type: string
                              displayStatus:
                                description: 'DisplayStatus: The short localizable
                                  label for the status.'
                                type: string
                              level:
                                description: 'Level: The level code.'
                                type: string
                              message:
                                description: 'Message: The detailed status message,
                                  including for alerts and error messages.'
                                type: string
                              time:
                                description: 'Time: The time of the status.'
                                type: string
                            type: object
                          type: array
                      type: object
                    type: array
                  extensions:
                    description: 'Extensions: The extensions information.'
                    items:
                      properties:
                        name:
                          description: 'Name: The virtual machine extension name.'
                          type: string
                        statuses:
                          description: 'Statuses: The resource status information.'
                          items:
                            properties:
                              code:
                                description: 'Code: The status code.'
                                type: string
                              displayStatus:
                                description: 'DisplayStatus: The short localizable
                                  label for the status.'
                                type: string
                              level:
                                description: 'Level: The level code.'
                                type: string
                              message:
                                description: 'Message: The detailed status message,
                                  including for alerts and error messages.'
                                type: string
                              time:
                                description: 'Time: The time of the status.'
                                type: string
                            type: object
                          type: array
                        substatuses:
                          description: 'Substatuses: The resource status information.'
                          items:
                            properties:
                              code:
                                description: 'Code: The status code.'
                                type: string
                              displayStatus:
                                description: 'DisplayStatus: The short localizable
                                  label for the status.'
                                type: string
                              level:
                                description: 'Level: The level code.'
                                type: string
                              message:
                                description: 'Message: The detailed status message,
                                  including for alerts and error messages.'
                                type: string
                              time:
                                description: 'Time: The time of the status.'
                                type: string
                            type: object
                          type: array
                        type:
                          description: 'Type: Specifies the type of the extension;
                            an example is "CustomScriptExtension".'
                          type: string
                        typeHandlerVersion:
                          description: 'TypeHandlerVersion: Specifies the version
                            of the script handler.'
                          type: string
                      type: object
                    type: array
                  hyperVGeneration:
                    description: 'HyperVGeneration: Specifies the HyperVGeneration
                      Type associated with a resource'
                    type: string
                  maintenanceRedeployStatus:
                    description: 'MaintenanceRedeployStatus: The Maintenance Operation
                      status on the virtual machine.'
                    properties:
                      isCustomerInitiatedMaintenanceAllowed:
                        description: 'IsCustomerInitiatedMaintenanceAllowed: True,
                          if customer is allowed to perform Maintenance.'
                        type: boolean
                      lastOperationMessage:
                        description: 'LastOperationMessage: Message returned for the
                          last Maintenance Operation.'
                        type: string
                      lastOperationResultCode:
                        description: 'LastOperationResultCode: The Last Maintenance
                          Operation Result Code.'
                        type: string
                      maintenanceWindowEndTime:
                        description: 'MaintenanceWindowEndTime: End Time for the Maintenance
                          Window.'
                        type: string
                      maintenanceWindowStartTime:
                        description: 'MaintenanceWindowStartTime: Start Time for the
                          Maintenance Window.'
                        type: string
                      preMaintenanceWindowEndTime:
                        description: 'PreMaintenanceWindowEndTime: End Time for the
                          Pre Maintenance Window.'
                        type: string
                      preMaintenanceWindowStartTime:
                        description: 'PreMaintenanceWindowStartTime: Start Time for
                          the Pre Maintenance Window.'
                        type: string
                    type: object
                  osName:
                    description: 'OsName: The Operating System running on the virtual
                      machine.'
                    type: string
                  osVersion:
                    description: 'OsVersion: The version of Operating System running
                      on the virtual machine.'
                    type: string
                  patchStatus:
                    description: 'PatchStatus: [Preview Feature] The status of virtual
                      machine patch operations.'
                    properties:
                      availablePatchSummary:
                        description: 'AvailablePatchSummary: The available patch summary
                          of the latest assessment operation for the virtual machine.'
                        properties:
                          assessmentActivityId:
                            description: 'AssessmentActivityId: The activity ID of
                              the operation that produced this result. It is used
                              to correlate across CRP and extension logs.'
                            type: string
                          criticalAndSecurityPatchCount:
                            description: 'CriticalAndSecurityPatchCount: The number
                              of critical or security patches that have been detected
                              as available and not yet installed.'
                            type: integer
                          error:
                            description: 'Error: The errors that were encountered
                              during execution of the operation. The details array
                              contains the list of them.'
                            properties:
                              code:
                                description: 'Code: The error code.'
                                type: string
                              details:
                                description: 'Details: The Api error details'
                                items:
                                  properties:
                                    code:
                                      description: 'Code: The error code.'
                                      type: string
                                    message:
                                      description: 'Message: The error message.'
                                      type: string
                                    target:
                                      description: 'Target: The target of the particular
                                        error.'
                                      type: string
                                  type: object
                                type: array
                              innererror:
                                description: 'Innererror: The Api inner error'
                                properties:
                                  errordetail:
                                    description: 'Errordetail: The internal error
                                      message or exception dump.'
                                    type: string
                                  exceptiontype:
                                    description: 'Exceptiontype: The exception type.'
                                    type: string
                                type: object
                              message:
                                description: 'Message: The error message.'
                                type: string
                              target:
                                description: 'Target: The target of the particular
                                  error.'
                                type: string
                            type: object
                          lastModifiedTime:
                            description: 'LastModifiedTime: The UTC timestamp when
                              the operation began.'
                            type: string
                          otherPatchCount:
                            description: 'OtherPatchCount: The number of all available
                              patches excluding critical and security.'
                            type: integer
                          rebootPending:
                            description: 'RebootPending: The overall reboot status
                              of the VM. It will be true when partially installed
                              patches require a reboot to complete installation but
                              the reboot has not yet occurred.'
                            type: boolean
                          startTime:
                            description: 'StartTime: The UTC timestamp when the operation
                              began.'
                            type: string
                          status:
                            description: 'Status: The overall success or failure status
                              of the operation. It remains "InProgress" until the
                              operation completes. At that point it will become "Unknown",
                              "Failed", "Succeeded", or "CompletedWithWarnings."'
                            type: string
                        type: object
                      configurationStatuses:
                        description: 'ConfigurationStatuses: The enablement status
                          of the specified patchMode'
                        items:
                          properties:
                            code:
                              description: 'Code: The status code.'
                              type: string
                            displayStatus:
                              description: 'DisplayStatus: The short localizable label
                                for the status.'
                              type: string
                            level:
                              description: 'Level: The level code.'
                              type: string
                            message:
                              description: 'Message: The detailed status message,
                                including for alerts and error messages.'
                              type: string
                            time:
                              description: 'Time: The time of the status.'
                              type: string
                          type: object
                        type: array
                      lastPatchInstallationSummary:
                        description: 'LastPatchInstallationSummary: The installation
                          summary of the latest installation operation for the virtual
                          machine.'
                        properties:
                          error:
                            description: 'Error: The errors that were encountered
                              during execution of the operation. The details array
                              contains the list of them.'
                            properties:
                              code:
                                description: 'Code: The error code.'
                                type: string
                              details:
                                description: 'Details: The Api error details'
                                items:
                                  properties:
                                    code:
                                      description: 'Code: The error code.'
                                      type: string
                                    message:
                                      description: 'Message: The error message.'
                                      type: string
                                    target:
                                      description: 'Target: The target of the particular
                                        error.'
                                      type: string
                                  type: object
                                type: array
                              innererror:
                                description: 'Innererror: The Api inner error'
                                properties:
                                  errordetail:
                                    description: 'Errordetail: The internal error
                                      message or exception dump.'
                                    type: string
                                  exceptiontype:
                                    description: 'Exceptiontype: The exception type.'
                                    type: string
                                type: object
                              message:
                                description: 'Message: The error message.'
                                type: string
                              target:
                                description: 'Target: The target of the particular
                                  error.'
                                type: string
                            type: object
                          excludedPatchCount:
                            description: 'ExcludedPatchCount: The number of all available
                              patches but excluded explicitly by a customer-specified
                              exclusion list match.'
                            type: integer
                          failedPatchCount:
                            description: 'FailedPatchCount: The count of patches that
                              failed installation.'
                            type: integer
                          installationActivityId:
                            description: 'InstallationActivityId: The activity ID
                              of the operation that produced this result. It is used
                              to correlate across CRP and extension logs.'
                            type: string
                          installedPatchCount:
                            description: 'InstalledPatchCount: The count of patches
                              that successfully installed.'
                            type: integer
                          lastModifiedTime:
                            description: 'LastModifiedTime: The UTC timestamp when
                              the operation began.'
                            type: string
                          maintenanceWindowExceeded:
                            description: 'MaintenanceWindowExceeded: Describes whether
                              the operation ran out of time before it completed all
                              its intended actions'
                            type: boolean
                          notSelectedPatchCount:
                            description: 'NotSelectedPatchCount: The number of all
                              available patches but not going to be installed because
                              it didn''t match a classification or inclusion list
                              entry.'
                            type: integer
                          pendingPatchCount:
                            description: 'PendingPatchCount: The number of all available
                              patches expected to be installed over the course of
                              the patch installation operation.'
                            type: integer
                          startTime:
                            description: 'StartTime: The UTC timestamp when the operation
                              began.'
                            type: string
                          status:
                            description: 'Status: The overall success or failure status
                              of the operation. It remains "InProgress" until the
                              operation completes. At that point it will become "Unknown",
                              "Failed", "Succeeded", or "CompletedWithWarnings."'
                            type: string
                        type: object
                    type: object
                  platformFaultDomain:
                    description: 'PlatformFaultDomain: Specifies the fault domain
                      of the virtual machine.'
                    type: integer
                  platformUpdateDomain:
                    description: 'PlatformUpdateDomain: Specifies the update domain
                      of the virtual machine.'
                    type: integer
                  rdpThumbPrint:
                    description: 'RdpThumbPrint: The Remote desktop certificate thumbprint.'
                    type: string
                  statuses:
                    description: 'Statuses: The resource status information.'
                    items:
                      properties:
                        code:
                          description: 'Code: The status code.'
                          type: string
                        displayStatus:
                          description: 'DisplayStatus: The short localizable label
                            for the status.'
                          type: string
                        level:
                          description: 'Level: The level code.'
                          type: string
                        message:
                          description: 'Message: The detailed status message, including
                            for alerts and error messages.'
                          type: string
                        time:
                          description: 'Time: The time of the status.'
                          type: string
                      type: object
                    type: array
                  vmAgent:
                    description: 'VmAgent: The VM Agent running on the virtual machine.'
                    properties:
                      extensionHandlers:
                        description: 'ExtensionHandlers: The virtual machine extension
                          handler instance view.'
                        items:
                          properties:
                            status:
                              description: 'Status: The extension handler status.'
                              properties:
                                code:
                                  description: 'Code: The status code.'
                                  type: string
                                displayStatus:
                                  description: 'DisplayStatus: The short localizable
                                    label for the status.'
                                  type: string
                                level:
                                  description: 'Level: The level code.'
                                  type: string
                                message:
                                  description: 'Message: The detailed status message,
                                    including for alerts and error messages.'
                                  type: string
                                time:
                                  description: 'Time: The time of the status.'
                                  type: string
                              type: object
                            type:
                              description: 'Type: Specifies the type of the extension;
                                an example is "CustomScriptExtension".'
                              type: string
                            typeHandlerVersion:
                              description: 'TypeHandlerVersion: Specifies the version
                                of the script handler.'
                              type: string
                          type: object
                        type: array
                      statuses:
                        description: 'Statuses: The resource status information.'
                        items:
                          properties:
                            code:
                              description: 'Code: The status code.'
                              type: string
                            displayStatus:
                              description: 'DisplayStatus: The short localizable label
                                for the status.'
                              type: string
                            level:
                              description: 'Level: The level code.'
                              type: string
                            message:
                              description: 'Message: The detailed status message,
                                including for alerts and error messages.'
                              type: string
                            time:
                              description: 'Time: The time of the status.'
                              type: string
                          type: object
                        type: array
                      vmAgentVersion:
                        description: 'VmAgentVersion: The VM Agent full version.'
                        type: string
                    type: object
                  vmHealth:
                    description: 'VmHealth: The health status for the VM.'
                    properties:
                      status:
                        description: 'Status: The health status information for the
                          VM.'
                        properties:
                          code:
                            description: 'Code: The status code.'
                            type: string
                          displayStatus:
                            description: 'DisplayStatus: The short localizable label
                              for the status.'
                            type: string
                          level:
                            description: 'Level: The level code.'
                            type: string
                          message:
                            description: 'Message: The detailed status message, including
                              for alerts and error messages.'
                            type: string
                          time:
                            description: 'Time: The time of the status.'
                            type: string
                        type: object
                    type: object
                type: object
              licenseType:
                description: 'LicenseType: Specifies that the image or disk that is
                  being used was licensed on-premises. Possible values for Windows
                  Server operating system are: Windows_Client Windows_Server Possible
                  values for Linux Server operating system are: RHEL_BYOS (for RHEL)
                  SLES_BYOS (for SUSE) For more information, see [Azure Hybrid Use
                  Benefit for Windows Server](https://docs.microsoft.com/azure/virtual-machines/windows/hybrid-use-benefit-licensing)
                  [Azure Hybrid Use Benefit for Linux Server](https://docs.microsoft.com/azure/virtual-machines/linux/azure-hybrid-benefit-linux)
                  Minimum api-version: 2015-06-15'
                type: string
              location:
                description: 'Location: Resource location'
                type: string
              name:
                description: 'Name: Resource name'
                type: string
              networkProfile:
                description: 'NetworkProfile: Specifies the network interfaces of
                  the virtual machine.'
                properties:
                  networkInterfaces:
                    description: 'NetworkInterfaces: Specifies the list of resource
                      Ids for the network interfaces associated with the virtual machine.'
                    items:
                      properties:
                        id:
                          description: 'Id: Resource Id'
                          type: string
                        primary:
                          description: 'Primary: Specifies the primary network interface
                            in case the virtual machine has more than 1 network interface.'
                          type: boolean
                      type: object
                    type: array
                type: object
              osProfile:
                description: 'OsProfile: Specifies the operating system settings used
                  while creating the virtual machine. Some of the settings cannot
                  be changed once VM is provisioned.'
                properties:
                  adminPassword:
                    description: 'AdminPassword: Specifies the password of the administrator
                      account. Minimum-length (Windows): 8 characters Minimum-length
                      (Linux): 6 characters Max-length (Windows): 123 characters Max-length
                      (Linux): 72 characters Complexity requirements: 3 out of 4 conditions
                      below need to be fulfilled Has lower characters Has upper characters
                      Has a digit Has a special character (Regex match [\W_]) Disallowed
                      values: "abc@123", "P@$$w0rd", "P@ssw0rd", "P@ssword123", "Pa$$word",
                      "pass@word1", "Password!", "Password1", "Password22", "iloveyou!"
                      For resetting the password, see [How to reset the Remote Desktop
                      service or its login password in a Windows VM](https://docs.microsoft.com/azure/virtual-machines/virtual-machines-windows-reset-rdp?toc=%2fazure%2fvirtual-machines%2fwindows%2ftoc.json)
                      For resetting root password, see [Manage users, SSH, and check
                      or repair disks on Azure Linux VMs using the VMAccess Extension](https://docs.microsoft.com/azure/virtual-machines/virtual-machines-linux-using-vmaccess-extension?toc=%2fazure%2fvirtual-machines%2flinux%2ftoc.json#reset-root-password)'
                    type: string
                  adminUsername:
                    description: 'AdminUsername: Specifies the name of the administrator
                      account. This property cannot be updated after the VM is created.
                      Windows-only restriction: Cannot end in "." Disallowed values:
                      "administrator", "admin", "user", "user1", "test", "user2",
                      "test1", "user3", "admin1", "1", "123", "a", "actuser", "adm",
                      "admin2", "aspnet", "backup", "console", "david", "guest", "john",
                      "owner", "root", "server", "sql", "support", "support_388945a0",
                      "sys", "test2", "test3", "user4", "user5". Minimum-length (Linux):
                      1  character Max-length (Linux): 64 characters Max-length (Windows):
                      20 characters <li> For root access to the Linux VM, see [Using
                      root privileges on Linux virtual machines in Azure](https://docs.microsoft.com/azure/virtual-machines/virtual-machines-linux-use-root-privileges?toc=%2fazure%2fvirtual-machines%2flinux%2ftoc.json)
                      <li> For a list of built-in system users on Linux that should
                      not be used in this field, see [Selecting User Names for Linux
                      on Azure](https://docs.microsoft.com/azure/virtual-machines/virtual-machines-linux-usernames?toc=%2fazure%2fvirtual-machines%2flinux%2ftoc.json)'
                    type: string
                  allowExtensionOperations:
                    description: 'AllowExtensionOperations: Specifies whether extension
                      operations should be allowed on the virtual machine. This may
                      only be set to False when no extensions are present on the virtual
                      machine.'
                    type: boolean
                  computerName:
                    description: 'ComputerName: Specifies the host OS name of the
                      virtual machine. This name cannot be updated after the VM is
                      created. Max-length (Windows): 15 characters Max-length (Linux):
                      64 characters. For naming conventions and restrictions see [Azure
                      infrastructure services implementation guidelines](https://docs.microsoft.com/azure/virtual-machines/virtual-machines-linux-infrastructure-subscription-accounts-guidelines?toc=%2fazure%2fvirtual-machines%2flinux%2ftoc.json#1-naming-conventions).'
                    type: string
                  customData:
                    description: 'CustomData: Specifies a base-64 encoded string of
                      custom data. The base-64 encoded string is decoded to a binary
                      array that is saved as a file on the Virtual Machine. The maximum
                      length of the binary array is 65535 bytes. Note: Do not pass
                      any secrets or passwords in customData property This property
                      cannot be updated after the VM is created. customData is passed
                      to the VM to be saved as a file, for more information see [Custom
                      Data on Azure VMs](https://azure.microsoft.com/en-us/blog/custom-data-and-cloud-init-on-windows-azure/)
                      For using cloud-init for your Linux VM, see [Using cloud-init
                      to customize a Linux VM during creation](https://docs.microsoft.com/azure/virtual-machines/virtual-machines-linux-using-cloud-init?toc=%2fazure%2fvirtual-machines%2flinux%2ftoc.json)'
                    type: string
                  linuxConfiguration:
                    description: 'LinuxConfiguration: Specifies the Linux operating
                      system settings on the virtual machine. For a list of supported
                      Linux distributions, see [Linux on Azure-Endorsed Distributions](https://docs.microsoft.com/azure/virtual-machines/virtual-machines-linux-endorsed-distros?toc=%2fazure%2fvirtual-machines%2flinux%2ftoc.json)
                      For running non-endorsed distributions, see [Information for
                      Non-Endorsed Distributions](https://docs.microsoft.com/azure/virtual-machines/virtual-machines-linux-create-upload-generic?toc=%2fazure%2fvirtual-machines%2flinux%2ftoc.json).'
                    properties:
                      disablePasswordAuthentication:
                        description: 'DisablePasswordAuthentication: Specifies whether
                          password authentication should be disabled.'
                        type: boolean
                      patchSettings:
                        description: 'PatchSettings: [Preview Feature] Specifies settings
                          related to VM Guest Patching on Linux.'
                        properties:
                          patchMode:
                            description: 'PatchMode: Specifies the mode of VM Guest
                              Patching to IaaS virtual machine. Possible values are:
                              ImageDefault - The virtual machine''s default patching
                              configuration is used. AutomaticByPlatform - The virtual
                              machine will be automatically updated by the platform.
                              The property provisionVMAgent must be true'
                            type: string
                        type: object
                      provisionVMAgent:
                        description: 'ProvisionVMAgent: Indicates whether virtual
                          machine agent should be provisioned on the virtual machine.
                          When this property is not specified in the request body,
                          default behavior is to set it to true.  This will ensure
                          that VM Agent is installed on the VM so that extensions
                          can be added to the VM later.'
                        type: boolean
                      ssh:
                        description: 'Ssh: Specifies the ssh key configuration for
                          a Linux OS.'
                        properties:
                          publicKeys:
                            description: 'PublicKeys: The list of SSH public keys
                              used to authenticate with linux based VMs.'
                            items:
                              properties:
                                keyData:
                                  description: 'KeyData: SSH public key certificate
                                    used to authenticate with the VM through ssh.
                                    The key needs to be at least 2048-bit and in ssh-rsa
                                    format. For creating ssh keys, see [Create SSH
                                    keys on Linux and Mac for Linux VMs in Azure](https://docs.microsoft.com/en-us/azure/virtual-machines/linux/mac-create-ssh-keys?toc=%2fazure%2fvirtual-machines%2flinux%2ftoc.json).'
                                  type: string
                                path:
                                  description: 'Path: Specifies the full path on the
                                    created VM where ssh public key is stored. If
                                    the file already exists, the specified key is
                                    appended to the file. Example: /home/user/.ssh/authorized_keys'
                                  type: string
                              type: object
                            type: array
                        type: object
                    type: object
                  requireGuestProvisionSignal:
                    description: 'RequireGuestProvisionSignal: Specifies whether the
                      guest provision signal is required to infer provision success
                      of the virtual machine.  Note: This property is for private
                      testing only, and all customers must not set the property to
                      false.'
                    type: boolean
                  secrets:
                    description: 'Secrets: Specifies set of certificates that should
                      be installed onto the virtual machine.'
                    items:
                      properties:
                        sourceVault:
                          description: 'SourceVault: The relative URL of the Key Vault
                            containing all of the certificates in VaultCertificates.'
                          properties:
                            id:
                              description: 'Id: Resource Id'
                              type: string
                          type: object
                        vaultCertificates:
                          description: 'VaultCertificates: The list of key vault references
                            in SourceVault which contain certificates.'
                          items:
                            properties:
                              certificateStore:
                                description: 'CertificateStore: For Windows VMs, specifies
                                  the certificate store on the Virtual Machine to
                                  which the certificate should be added. The specified
                                  certificate store is implicitly in the LocalMachine
                                  account. For Linux VMs, the certificate file is
                                  placed under the /var/lib/waagent directory, with
                                  the file name &lt;UppercaseThumbprint&gt;.crt for
                                  the X509 certificate file and &lt;UppercaseThumbprint&gt;.prv
                                  for private key. Both of these files are .pem formatted.'
                                type: string
                              certificateUrl:
                                description: 'CertificateUrl: This is the URL of a
                                  certificate that has been uploaded to Key Vault
                                  as a secret. For adding a secret to the Key Vault,
                                  see [Add a key or secret to the key vault](https://docs.microsoft.com/azure/key-vault/key-vault-get-started/#add).
                                  In this case, your certificate needs to be It is
                                  the Base64 encoding of the following JSON Object
                                  which is encoded in UTF-8: { "data":"<Base64-encoded-certificate>",
                                  "dataType":"pfx", "password":"<pfx-file-password>"
                                  }'
                                type: string
                            type: object
                          type: array
                      type: object
                    type: array
                  windowsConfiguration:
                    description: 'WindowsConfiguration: Specifies Windows operating
                      system settings on the virtual machine.'
                    properties:
                      additionalUnattendContent:
                        description: 'AdditionalUnattendContent: Specifies additional
                          base-64 encoded XML formatted information that can be included
                          in the Unattend.xml file, which is used by Windows Setup.'
                        items:
                          properties:
                            componentName:
                              description: 'ComponentName: The component name. Currently,
                                the only allowable value is Microsoft-Windows-Shell-Setup.'
                              type: string
                            content:
                              description: 'Content: Specifies the XML formatted content
                                that is added to the unattend.xml file for the specified
                                path and component. The XML must be less than 4KB
                                and must include the root element for the setting
                                or feature that is being inserted.'
                              type: string
                            passName:
                              description: 'PassName: The pass name. Currently, the
                                only allowable value is OobeSystem.'
                              type: string
                            settingName:
                              description: 'SettingName: Specifies the name of the
                                setting to which the content applies. Possible values
                                are: FirstLogonCommands and AutoLogon.'
                              type: string
                          type: object
                        type: array
                      enableAutomaticUpdates:
                        description: 'EnableAutomaticUpdates: Indicates whether Automatic
                          Updates is enabled for the Windows virtual machine. Default
                          value is true. For virtual machine scale sets, this property
                          can be updated and updates will take effect on OS reprovisioning.'
                        type: boolean
                      patchSettings:
                        description: 'PatchSettings: [Preview Feature] Specifies settings
                          related to VM Guest Patching on Windows.'
                        properties:
                          enableHotpatching:
                            description: 'EnableHotpatching: Enables customers to
                              patch their Azure VMs without requiring a reboot. For
                              enableHotpatching, the ''provisionVMAgent'' must be
                              set to true and ''patchMode'' must be set to ''AutomaticByPlatform''.'
                            type: boolean
                          patchMode:
                            description: 'PatchMode: Specifies the mode of VM Guest
                              Patching to IaaS virtual machine. Possible values are:
                              Manual - You  control the application of patches to
                              a virtual machine. You do this by applying patches manually
                              inside the VM. In this mode, automatic updates are disabled;
                              the property WindowsConfiguration.enableAutomaticUpdates
                              must be false AutomaticByOS - The virtual machine will
                              automatically be updated by the OS. The property WindowsConfiguration.enableAutomaticUpdates
                              must be true. AutomaticByPlatform - the virtual machine
                              will automatically updated by the platform. The properties
                              provisionVMAgent and WindowsConfiguration.enableAutomaticUpdates
                              must be true'
                            type: string
                        type: object
                      provisionVMAgent:
                        description: 'ProvisionVMAgent: Indicates whether virtual
                          machine agent should be provisioned on the virtual machine.
                          When this property is not specified in the request body,
                          default behavior is to set it to true.  This will ensure
                          that VM Agent is installed on the VM so that extensions
                          can be added to the VM later.'
                        type: boolean
                      timeZone:
                        description: 'TimeZone: Specifies the time zone of the virtual
                          machine. e.g. "Pacific Standard Time". Possible values can
                          be [TimeZoneInfo.Id](https://docs.microsoft.com/en-us/dotnet/api/system.timezoneinfo.id?#System_TimeZoneInfo_Id)
                          value from time zones returned by [TimeZoneInfo.GetSystemTimeZones](https://docs.microsoft.com/en-us/dotnet/api/system.timezoneinfo.getsystemtimezones).'
                        type: string
                      winRM:
                        description: 'WinRM: Specifies the Windows Remote Management
                          listeners. This enables remote Windows PowerShell.'
                        properties:
                          listeners:
                            description: 'Listeners: The list of Windows Remote Management
                              listeners'
                            items:
                              properties:
                                certificateUrl:
                                  description: 'CertificateUrl: This is the URL of
                                    a certificate that has been uploaded to Key Vault
                                    as a secret. For adding a secret to the Key Vault,
                                    see [Add a key or secret to the key vault](https://docs.microsoft.com/azure/key-vault/key-vault-get-started/#add).
                                    In this case, your certificate needs to be It
                                    is the Base64 encoding of the following JSON Object
                                    which is encoded in UTF-8: { "data":"<Base64-encoded-certificate>",
                                    "dataType":"pfx", "password":"<pfx-file-password>"
                                    }'
                                  type: string
                                protocol:
                                  description: 'Protocol: Specifies the protocol of
                                    WinRM listener. Possible values are: http https'
                                  type: string
                              type: object
                            type: array
                        type: object
                    type: object
                type: object
              plan:
                description: 'Plan: Specifies information about the marketplace image
                  used to create the virtual machine. This element is only used for
                  marketplace images. Before you can use a marketplace image from
                  an API, you must enable the image for programmatic use.  In the
                  Azure portal, find the marketplace image that you want to use and
                  then click Want to deploy programmatically, Get Started ->. Enter
                  any required information and then click Save.'
                properties:
                  name:
                    description: 'Name: The plan ID.'
                    type: string
                  product:
                    description: 'Product: Specifies the product of the image from
                      the marketplace. This is the same value as Offer under the imageReference
                      element.'
                    type: string
                  promotionCode:
                    description: 'PromotionCode: The promotion code.'
                    type: string
                  publisher:
                    description: 'Publisher: The publisher ID.'
                    type: string
                type: object
              platformFaultDomain:
                description: 'PlatformFaultDomain: Specifies the scale set logical
                  fault domain into which the Virtual Machine will be created. By
                  default, the Virtual Machine will by automatically assigned to a
                  fault domain that best maintains balance across available fault
                  domains. <li>This is applicable only if the ''virtualMachineScaleSet''
                  property of this Virtual Machine is set.<li>The Virtual Machine
                  Scale Set that is referenced, must have ''platformFaultDomainCount''
                  &gt; 1.<li>This property cannot be updated once the Virtual Machine
                  is created.<li>Fault domain assignment can be viewed in the Virtual
                  Machine Instance View. Minimum api‐version: 2020‐12‐01'
                type: integer
              priority:
                description: 'Priority: Specifies the priority for the virtual machine.
                  Minimum api-version: 2019-03-01'
                type: string
              provisioningState:
                description: 'ProvisioningState: The provisioning state, which only
                  appears in the response.'
                type: string
              proximityPlacementGroup:
                description: 'ProximityPlacementGroup: Specifies information about
                  the proximity placement group that the virtual machine should be
                  assigned to. Minimum api-version: 2018-04-01.'
                properties:
                  id:
                    description: 'Id: Resource Id'
                    type: string
                type: object
              resources:
                description: 'Resources: The virtual machine child extension resources.'
                items:
                  properties:
                    autoUpgradeMinorVersion:
                      description: 'AutoUpgradeMinorVersion: Indicates whether the
                        extension should use a newer minor version if one is available
                        at deployment time. Once deployed, however, the extension
                        will not upgrade minor versions unless redeployed, even with
                        this property set to true.'
                      type: boolean
                    enableAutomaticUpgrade:
                      description: 'EnableAutomaticUpgrade: Indicates whether the
                        extension should be automatically upgraded by the platform
                        if there is a newer version of the extension available.'
                      type: boolean
                    forceUpdateTag:
                      description: 'ForceUpdateTag: How the extension handler should
                        be forced to update even if the extension configuration has
                        not changed.'
                      type: string
                    id:
                      description: 'Id: Resource Id'
                      type: string
                    instanceView:
                      description: 'InstanceView: The virtual machine extension instance
                        view.'
                      properties:
                        name:
                          description: 'Name: The virtual machine extension name.'
                          type: string
                        statuses:
                          description: 'Statuses: The resource status information.'
                          items:
                            properties:
                              code:
                                description: 'Code: The status code.'
                                type: string
                              displayStatus:
                                description: 'DisplayStatus: The short localizable
                                  label for the status.'
                                type: string
                              level:
                                description: 'Level: The level code.'
                                type: string
                              message:
                                description: 'Message: The detailed status message,
                                  including for alerts and error messages.'
                                type: string
                              time:
                                description: 'Time: The time of the status.'
                                type: string
                            type: object
                          type: array
                        substatuses:
                          description: 'Substatuses: The resource status information.'
                          items:
                            properties:
                              code:
                                description: 'Code: The status code.'
                                type: string
                              displayStatus:
                                description: 'DisplayStatus: The short localizable
                                  label for the status.'
                                type: string
                              level:
                                description: 'Level: The level code.'
                                type: string
                              message:
                                description: 'Message: The detailed status message,
                                  including for alerts and error messages.'
                                type: string
                              time:
                                description: 'Time: The time of the status.'
                                type: string
                            type: object
                          type: array
                        type:
                          description: 'Type: Specifies the type of the extension;
                            an example is "CustomScriptExtension".'
                          type: string
                        typeHandlerVersion:
                          description: 'TypeHandlerVersion: Specifies the version
                            of the script handler.'
                          type: string
                      type: object
                    location:
                      description: 'Location: Resource location'
                      type: string
                    name:
                      description: 'Name: Resource name'
                      type: string
                    properties_type:
                      description: 'PropertiesType: Specifies the type of the extension;
                        an example is "CustomScriptExtension".'
                      type: string
                    protectedSettings:
                      additionalProperties:
                        x-kubernetes-preserve-unknown-fields: true
                      description: 'ProtectedSettings: The extension can contain either
                        protectedSettings or protectedSettingsFromKeyVault or no protected
                        settings at all.'
                      type: object
                    provisioningState:
                      description: 'ProvisioningState: The provisioning state, which
                        only appears in the response.'
                      type: string
                    publisher:
                      description: 'Publisher: The name of the extension handler publisher.'
                      type: string
                    settings:
                      additionalProperties:
                        x-kubernetes-preserve-unknown-fields: true
                      description: 'Settings: Json formatted public settings for the
                        extension.'
                      type: object
                    tags:
                      additionalProperties:
                        type: string
                      description: 'Tags: Resource tags'
                      type: object
                    type:
                      description: 'Type: Resource type'
                      type: string
                    typeHandlerVersion:
                      description: 'TypeHandlerVersion: Specifies the version of the
                        script handler.'
                      type: string
                  required:
                  - location
                  type: object
                type: array
              securityProfile:
                description: 'SecurityProfile: Specifies the Security related profile
                  settings for the virtual machine.'
                properties:
                  encryptionAtHost:
                    description: 'EncryptionAtHost: This property can be used by user
                      in the request to enable or disable the Host Encryption for
                      the virtual machine or virtual machine scale set. This will
                      enable the encryption for all the disks including Resource/Temp
                      disk at host itself. Default: The Encryption at host will be
                      disabled unless this property is set to true for the resource.'
                    type: boolean
                  securityType:
                    description: 'SecurityType: Specifies the SecurityType of the
                      virtual machine. It is set as TrustedLaunch to enable UefiSettings.
                      Default: UefiSettings will not be enabled unless this property
                      is set as TrustedLaunch.'
                    type: string
                  uefiSettings:
                    description: 'UefiSettings: Specifies the security settings like
                      secure boot and vTPM used while creating the virtual machine.
                      Minimum api-version: 2020-12-01'
                    properties:
                      secureBootEnabled:
                        description: 'SecureBootEnabled: Specifies whether secure
                          boot should be enabled on the virtual machine. Minimum api-version:
                          2020-12-01'
                        type: boolean
                      vTpmEnabled:
                        description: 'VTpmEnabled: Specifies whether vTPM should be
                          enabled on the virtual machine. Minimum api-version: 2020-12-01'
                        type: boolean
                    type: object
                type: object
              storageProfile:
                description: 'StorageProfile: Specifies the storage settings for the
                  virtual machine disks.'
                properties:
                  dataDisks:
                    description: 'DataDisks: Specifies the parameters that are used
                      to add a data disk to a virtual machine. For more information
                      about disks, see [About disks and VHDs for Azure virtual machines](https://docs.microsoft.com/azure/virtual-machines/virtual-machines-windows-about-disks-vhds?toc=%2fazure%2fvirtual-machines%2fwindows%2ftoc.json).'
                    items:
                      properties:
                        caching:
                          description: 'Caching: Specifies the caching requirements.
                            Possible values are: None ReadOnly ReadWrite Default:
                            None for Standard storage. ReadOnly for Premium storage'
                          type: string
                        createOption:
                          description: 'CreateOption: Specifies how the virtual machine
                            should be created. Possible values are: Attach \u2013
                            This value is used when you are using a specialized disk
                            to create the virtual machine. FromImage \u2013 This value
                            is used when you are using an image to create the virtual
                            machine. If you are using a platform image, you also use
                            the imageReference element described above. If you are
                            using a marketplace image, you  also use the plan element
                            previously described.'
                          type: string
                        detachOption:
                          description: 'DetachOption: Specifies the detach behavior
                            to be used while detaching a disk or which is already
                            in the process of detachment from the virtual machine.
                            Supported values: ForceDetach. detachOption: ForceDetach
                            is applicable only for managed data disks. If a previous
                            detachment attempt of the data disk did not complete due
                            to an unexpected failure from the virtual machine and
                            the disk is still not released then use force-detach as
                            a last resort option to detach the disk forcibly from
                            the VM. All writes might not have been flushed when using
                            this detach behavior. This feature is still in preview
                            mode and is not supported for VirtualMachineScaleSet.
                            To force-detach a data disk update toBeDetached to ''true''
                            along with setting detachOption: ''ForceDetach''.'
                          type: string
                        diskIOPSReadWrite:
                          description: 'DiskIOPSReadWrite: Specifies the Read-Write
                            IOPS for the managed disk when StorageAccountType is UltraSSD_LRS.
                            Returned only for VirtualMachine ScaleSet VM disks. Can
                            be updated only via updates to the VirtualMachine Scale
                            Set.'
                          type: integer
                        diskMBpsReadWrite:
                          description: 'DiskMBpsReadWrite: Specifies the bandwidth
                            in MB per second for the managed disk when StorageAccountType
                            is UltraSSD_LRS. Returned only for VirtualMachine ScaleSet
                            VM disks. Can be updated only via updates to the VirtualMachine
                            Scale Set.'
                          type: integer
                        diskSizeGB:
                          description: 'DiskSizeGB: Specifies the size of an empty
                            data disk in gigabytes. This element can be used to overwrite
                            the size of the disk in a virtual machine image. This
                            value cannot be larger than 1023 GB'
                          type: integer
                        image:
                          description: 'Image: The source user image virtual hard
                            disk. The virtual hard disk will be copied before being
                            attached to the virtual machine. If SourceImage is provided,
                            the destination virtual hard drive must not exist.'
                          properties:
                            uri:
                              description: 'Uri: Specifies the virtual hard disk''s
                                uri.'
                              type: string
                          type: object
                        lun:
                          description: 'Lun: Specifies the logical unit number of
                            the data disk. This value is used to identify data disks
                            within the VM and therefore must be unique for each data
                            disk attached to a VM.'
                          type: integer
                        managedDisk:
                          description: 'ManagedDisk: The managed disk parameters.'
                          properties:
                            diskEncryptionSet:
                              description: 'DiskEncryptionSet: Specifies the customer
                                managed disk encryption set resource id for the managed
                                disk.'
                              properties:
                                id:
                                  description: 'Id: Resource Id'
                                  type: string
                              type: object
                            id:
                              description: 'Id: Resource Id'
                              type: string
                            storageAccountType:
                              description: 'StorageAccountType: Specifies the storage
                                account type for the managed disk. Managed OS disk
                                storage account type can only be set when you create
                                the scale set. NOTE: UltraSSD_LRS can only be used
                                with data disks, it cannot be used with OS Disk.'
                              type: string
                          type: object
                        name:
                          description: 'Name: The disk name.'
                          type: string
                        toBeDetached:
                          description: 'ToBeDetached: Specifies whether the data disk
                            is in process of detachment from the VirtualMachine/VirtualMachineScaleset'
                          type: boolean
                        vhd:
                          description: 'Vhd: The virtual hard disk.'
                          properties:
                            uri:
                              description: 'Uri: Specifies the virtual hard disk''s
                                uri.'
                              type: string
                          type: object
                        writeAcceleratorEnabled:
                          description: 'WriteAcceleratorEnabled: Specifies whether
                            writeAccelerator should be enabled or disabled on the
                            disk.'
                          type: boolean
                      required:
                      - createOption
                      - lun
                      type: object
                    type: array
                  imageReference:
                    description: 'ImageReference: Specifies information about the
                      image to use. You can specify information about platform images,
                      marketplace images, or virtual machine images. This element
                      is required when you want to use a platform image, marketplace
                      image, or virtual machine image, but is not used in other creation
                      operations.'
                    properties:
                      exactVersion:
                        description: 'ExactVersion: Specifies in decimal numbers,
                          the version of platform image or marketplace image used
                          to create the virtual machine. This readonly field differs
                          from ''version'', only if the value specified in ''version''
                          field is ''latest''.'
                        type: string
                      id:
                        description: 'Id: Resource Id'
                        type: string
                      offer:
                        description: 'Offer: Specifies the offer of the platform image
                          or marketplace image used to create the virtual machine.'
                        type: string
                      publisher:
                        description: 'Publisher: The image publisher.'
                        type: string
                      sku:
                        description: 'Sku: The image SKU.'
                        type: string
                      version:
                        description: 'Version: Specifies the version of the platform
                          image or marketplace image used to create the virtual machine.
                          The allowed formats are Major.Minor.Build or ''latest''.
                          Major, Minor, and Build are decimal numbers. Specify ''latest''
                          to use the latest version of an image available at deploy
                          time. Even if you use ''latest'', the VM image will not
                          automatically update after deploy time even if a new version
                          becomes available.'
                        type: string
                    type: object
                  osDisk:
                    description: 'OsDisk: Specifies information about the operating
                      system disk used by the virtual machine. For more information
                      about disks, see [About disks and VHDs for Azure virtual machines](https://docs.microsoft.com/azure/virtual-machines/virtual-machines-windows-about-disks-vhds?toc=%2fazure%2fvirtual-machines%2fwindows%2ftoc.json).'
                    properties:
                      caching:
                        description: 'Caching: Specifies the caching requirements.
                          Possible values are: None ReadOnly ReadWrite Default: None
                          for Standard storage. ReadOnly for Premium storage.'
                        type: string
                      createOption:
                        description: 'CreateOption: Specifies how the virtual machine
                          should be created. Possible values are: Attach \u2013 This
                          value is used when you are using a specialized disk to create
                          the virtual machine. FromImage \u2013 This value is used
                          when you are using an image to create the virtual machine.
                          If you are using a platform image, you also use the imageReference
                          element described above. If you are using a marketplace
                          image, you  also use the plan element previously described.'
                        type: string
                      diffDiskSettings:
                        description: 'DiffDiskSettings: Specifies the ephemeral Disk
                          Settings for the operating system disk used by the virtual
                          machine.'
                        properties:
                          option:
                            description: 'Option: Specifies the ephemeral disk settings
                              for operating system disk.'
                            type: string
                          placement:
                            description: 'Placement: Specifies the ephemeral disk
                              placement for operating system disk. Possible values
                              are: CacheDisk ResourceDisk Default: CacheDisk if one
                              is configured for the VM size otherwise ResourceDisk
                              is used. Refer to VM size documentation for Windows
                              VM at https://docs.microsoft.com/en-us/azure/virtual-machines/windows/sizes
                              and Linux VM at https://docs.microsoft.com/en-us/azure/virtual-machines/linux/sizes
                              to check which VM sizes exposes a cache disk.'
                            type: string
                        type: object
                      diskSizeGB:
                        description: 'DiskSizeGB: Specifies the size of an empty data
                          disk in gigabytes. This element can be used to overwrite
                          the size of the disk in a virtual machine image. This value
                          cannot be larger than 1023 GB'
                        type: integer
                      encryptionSettings:
                        description: 'EncryptionSettings: Specifies the encryption
                          settings for the OS Disk. Minimum api-version: 2015-06-15'
                        properties:
                          diskEncryptionKey:
                            description: 'DiskEncryptionKey: Specifies the location
                              of the disk encryption key, which is a Key Vault Secret.'
                            properties:
                              secretUrl:
                                description: 'SecretUrl: The URL referencing a secret
                                  in a Key Vault.'
                                type: string
                              sourceVault:
                                description: 'SourceVault: The relative URL of the
                                  Key Vault containing the secret.'
                                properties:
                                  id:
                                    description: 'Id: Resource Id'
                                    type: string
                                type: object
                            required:
                            - secretUrl
                            - sourceVault
                            type: object
                          enabled:
                            description: 'Enabled: Specifies whether disk encryption
                              should be enabled on the virtual machine.'
                            type: boolean
                          keyEncryptionKey:
                            description: 'KeyEncryptionKey: Specifies the location
                              of the key encryption key in Key Vault.'
                            properties:
                              keyUrl:
                                description: 'KeyUrl: The URL referencing a key encryption
                                  key in Key Vault.'
                                type: string
                              sourceVault:
                                description: 'SourceVault: The relative URL of the
                                  Key Vault containing the key.'
                                properties:
                                  id:
                                    description: 'Id: Resource Id'
                                    type: string
                                type: object
                            required:
                            - keyUrl
                            - sourceVault
                            type: object
                        type: object
                      image:
                        description: 'Image: The source user image virtual hard disk.
                          The virtual hard disk will be copied before being attached
                          to the virtual machine. If SourceImage is provided, the
                          destination virtual hard drive must not exist.'
                        properties:
                          uri:
                            description: 'Uri: Specifies the virtual hard disk''s
                              uri.'
                            type: string
                        type: object
                      managedDisk:
                        description: 'ManagedDisk: The managed disk parameters.'
                        properties:
                          diskEncryptionSet:
                            description: 'DiskEncryptionSet: Specifies the customer
                              managed disk encryption set resource id for the managed
                              disk.'
                            properties:
                              id:
                                description: 'Id: Resource Id'
                                type: string
                            type: object
                          id:
                            description: 'Id: Resource Id'
                            type: string
                          storageAccountType:
                            description: 'StorageAccountType: Specifies the storage
                              account type for the managed disk. Managed OS disk storage
                              account type can only be set when you create the scale
                              set. NOTE: UltraSSD_LRS can only be used with data disks,
                              it cannot be used with OS Disk.'
                            type: string
                        type: object
                      name:
                        description: 'Name: The disk name.'
                        type: string
                      osType:
                        description: 'OsType: This property allows you to specify
                          the type of the OS that is included in the disk if creating
                          a VM from user-image or a specialized VHD. Possible values
                          are: Windows Linux'
                        type: string
                      vhd:
                        description: 'Vhd: The virtual hard disk.'
                        properties:
                          uri:
                            description: 'Uri: Specifies the virtual hard disk''s
                              uri.'
                            type: string
                        type: object
                      writeAcceleratorEnabled:
                        description: 'WriteAcceleratorEnabled: Specifies whether writeAccelerator
                          should be enabled or disabled on the disk.'
                        type: boolean
                    required:
                    - createOption
                    type: object
                type: object
              tags:
                additionalProperties:
                  type: string
                description: 'Tags: Resource tags'
                type: object
              type:
                description: 'Type: Resource type'
                type: string
              virtualMachineScaleSet:
                description: 'VirtualMachineScaleSet: Specifies information about
                  the virtual machine scale set that the virtual machine should be
                  assigned to. Virtual machines specified in the same virtual machine
                  scale set are allocated to different nodes to maximize availability.
                  Currently, a VM can only be added to virtual machine scale set at
                  creation time. An existing VM cannot be added to a virtual machine
                  scale set. This property cannot exist along with a non-null properties.availabilitySet
                  reference. Minimum api‐version: 2019‐03‐01'
                properties:
                  id:
                    description: 'Id: Resource Id'
                    type: string
                type: object
              vmId:
                description: 'VmId: Specifies the VM unique ID which is a 128-bits
                  identifier that is encoded and stored in all Azure IaaS VMs SMBIOS
                  and can be read using platform BIOS commands.'
                type: string
              zones:
                description: 'Zones: The virtual machine zones.'
                items:
                  type: string
                type: array
            type: object
        type: object
    served: true
    storage: false
    subresources:
      status: {}
  - additionalPrinterColumns:
    - jsonPath: .status.conditions[?(@.type=='Ready')].status
      name: Ready
      type: string
    - jsonPath: .status.conditions[?(@.type=='Ready')].severity
      name: Severity
      type: string
    - jsonPath: .status.conditions[?(@.type=='Ready')].reason
      name: Reason
      type: string
    - jsonPath: .status.conditions[?(@.type=='Ready')].message
      name: Message
      type: string
    name: v1alpha1api20201201storage
    schema:
      openAPIV3Schema:
        description: 'Storage version of v1alpha1api20201201.VirtualMachine Generated
          from: https://schema.management.azure.com/schemas/2020-12-01/Microsoft.Compute.json#/resourceDefinitions/virtualMachines'
        properties:
          apiVersion:
            description: 'APIVersion defines the versioned schema of this representation
              of an object. Servers should convert recognized schemas to the latest
              internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
            type: string
          kind:
            description: 'Kind is a string value representing the REST resource this
              object represents. Servers may infer this from the endpoint the client
              submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
            type: string
          metadata:
            type: object
          spec:
            description: Storage version of v1alpha1api20201201.VirtualMachines_Spec
            properties:
              $propertyBag:
                additionalProperties:
                  type: string
                description: PropertyBag is an unordered set of stashed information
                  that used for properties not directly supported by storage resources,
                  allowing for full fidelity round trip conversions
                type: object
              additionalCapabilities:
                description: 'Storage version of v1alpha1api20201201.AdditionalCapabilities
                  Generated from: https://schema.management.azure.com/schemas/2020-12-01/Microsoft.Compute.json#/definitions/AdditionalCapabilities'
                properties:
                  $propertyBag:
                    additionalProperties:
                      type: string
                    description: PropertyBag is an unordered set of stashed information
                      that used for properties not directly supported by storage resources,
                      allowing for full fidelity round trip conversions
                    type: object
                  ultraSSDEnabled:
                    type: boolean
                type: object
              availabilitySet:
                description: 'Storage version of v1alpha1api20201201.SubResource Generated
                  from: https://schema.management.azure.com/schemas/2020-12-01/Microsoft.Compute.json#/definitions/SubResource'
                properties:
                  $propertyBag:
                    additionalProperties:
                      type: string
                    description: PropertyBag is an unordered set of stashed information
                      that used for properties not directly supported by storage resources,
                      allowing for full fidelity round trip conversions
                    type: object
                  reference:
                    description: 'Reference: Resource Id'
                    properties:
                      armId:
                        description: 'TODO: The below regex may be overly restrictive
                          ARMID is a string of the form /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}.
                          The /resourcegroups/{resourceGroupName} bit is optional
                          as some resources are scoped at the subscription level ARMID
                          is mutually exclusive with Group, Kind, Namespace and Name.'
                        pattern: (?i)^/subscriptions/([^/]+)(/resourcegroups/([^/]+))?/providers/([^/]+)/([^/]+/[^/]+)(/([^/]+/[^/]+))*$
                        type: string
                      group:
                        description: Group is the Kubernetes group of the resource.
                        type: string
                      kind:
                        description: Kind is the Kubernetes kind of the resource.
                        type: string
                      name:
                        description: Name is the Kubernetes name of the resource.
                        type: string
                    type: object
                type: object
              azureName:
                description: 'AzureName: The name of the resource in Azure. This is
                  often the same as the name of the resource in Kubernetes but it
                  doesn''t have to be.'
                type: string
              billingProfile:
                description: 'Storage version of v1alpha1api20201201.BillingProfile
                  Generated from: https://schema.management.azure.com/schemas/2020-12-01/Microsoft.Compute.json#/definitions/BillingProfile'
                properties:
                  $propertyBag:
                    additionalProperties:
                      type: string
                    description: PropertyBag is an unordered set of stashed information
                      that used for properties not directly supported by storage resources,
                      allowing for full fidelity round trip conversions
                    type: object
                  maxPrice:
                    type: number
                type: object
              diagnosticsProfile:
                description: 'Storage version of v1alpha1api20201201.DiagnosticsProfile
                  Generated from: https://schema.management.azure.com/schemas/2020-12-01/Microsoft.Compute.json#/definitions/DiagnosticsProfile'
                properties:
                  $propertyBag:
                    additionalProperties:
                      type: string
                    description: PropertyBag is an unordered set of stashed information
                      that used for properties not directly supported by storage resources,
                      allowing for full fidelity round trip conversions
                    type: object
                  bootDiagnostics:
                    description: 'Storage version of v1alpha1api20201201.BootDiagnostics
                      Generated from: https://schema.management.azure.com/schemas/2020-12-01/Microsoft.Compute.json#/definitions/BootDiagnostics'
                    properties:
                      $propertyBag:
                        additionalProperties:
                          type: string
                        description: PropertyBag is an unordered set of stashed information
                          that used for properties not directly supported by storage
                          resources, allowing for full fidelity round trip conversions
                        type: object
                      enabled:
                        type: boolean
                      storageUri:
                        type: string
                    type: object
                type: object
              evictionPolicy:
                type: string
              extendedLocation:
                description: 'Storage version of v1alpha1api20201201.ExtendedLocation
                  Generated from: https://schema.management.azure.com/schemas/2020-12-01/Microsoft.Compute.json#/definitions/ExtendedLocation'
                properties:
                  $propertyBag:
                    additionalProperties:
                      type: string
                    description: PropertyBag is an unordered set of stashed information
                      that used for properties not directly supported by storage resources,
                      allowing for full fidelity round trip conversions
                    type: object
                  name:
                    type: string
                  type:
                    type: string
                type: object
              extensionsTimeBudget:
                type: string
              hardwareProfile:
                description: 'Storage version of v1alpha1api20201201.HardwareProfile
                  Generated from: https://schema.management.azure.com/schemas/2020-12-01/Microsoft.Compute.json#/definitions/HardwareProfile'
                properties:
                  $propertyBag:
                    additionalProperties:
                      type: string
                    description: PropertyBag is an unordered set of stashed information
                      that used for properties not directly supported by storage resources,
                      allowing for full fidelity round trip conversions
                    type: object
                  vmSize:
                    type: string
                type: object
              host:
                description: 'Storage version of v1alpha1api20201201.SubResource Generated
                  from: https://schema.management.azure.com/schemas/2020-12-01/Microsoft.Compute.json#/definitions/SubResource'
                properties:
                  $propertyBag:
                    additionalProperties:
                      type: string
                    description: PropertyBag is an unordered set of stashed information
                      that used for properties not directly supported by storage resources,
                      allowing for full fidelity round trip conversions
                    type: object
                  reference:
                    description: 'Reference: Resource Id'
                    properties:
                      armId:
                        description: 'TODO: The below regex may be overly restrictive
                          ARMID is a string of the form /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}.
                          The /resourcegroups/{resourceGroupName} bit is optional
                          as some resources are scoped at the subscription level ARMID
                          is mutually exclusive with Group, Kind, Namespace and Name.'
                        pattern: (?i)^/subscriptions/([^/]+)(/resourcegroups/([^/]+))?/providers/([^/]+)/([^/]+/[^/]+)(/([^/]+/[^/]+))*$
                        type: string
                      group:
                        description: Group is the Kubernetes group of the resource.
                        type: string
                      kind:
                        description: Kind is the Kubernetes kind of the resource.
                        type: string
                      name:
                        description: Name is the Kubernetes name of the resource.
                        type: string
                    type: object
                type: object
              hostGroup:
                description: 'Storage version of v1alpha1api20201201.SubResource Generated
                  from: https://schema.management.azure.com/schemas/2020-12-01/Microsoft.Compute.json#/definitions/SubResource'
                properties:
                  $propertyBag:
                    additionalProperties:
                      type: string
                    description: PropertyBag is an unordered set of stashed information
                      that used for properties not directly supported by storage resources,
                      allowing for full fidelity round trip conversions
                    type: object
                  reference:
                    description: 'Reference: Resource Id'
                    properties:
                      armId:
                        description: 'TODO: The below regex may be overly restrictive
                          ARMID is a string of the form /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}.
                          The /resourcegroups/{resourceGroupName} bit is optional
                          as some resources are scoped at the subscription level ARMID
                          is mutually exclusive with Group, Kind, Namespace and Name.'
                        pattern: (?i)^/subscriptions/([^/]+)(/resourcegroups/([^/]+))?/providers/([^/]+)/([^/]+/[^/]+)(/([^/]+/[^/]+))*$
                        type: string
                      group:
                        description: Group is the Kubernetes group of the resource.
                        type: string
                      kind:
                        description: Kind is the Kubernetes kind of the resource.
                        type: string
                      name:
                        description: Name is the Kubernetes name of the resource.
                        type: string
                    type: object
                type: object
              identity:
                description: 'Storage version of v1alpha1api20201201.VirtualMachineIdentity
                  Generated from: https://schema.management.azure.com/schemas/2020-12-01/Microsoft.Compute.json#/definitions/VirtualMachineIdentity'
                properties:
                  $propertyBag:
                    additionalProperties:
                      type: string
                    description: PropertyBag is an unordered set of stashed information
                      that used for properties not directly supported by storage resources,
                      allowing for full fidelity round trip conversions
                    type: object
                  type:
                    type: string
                  userAssignedIdentities:
                    additionalProperties:
                      x-kubernetes-preserve-unknown-fields: true
                    type: object
                type: object
              licenseType:
                type: string
              location:
                type: string
              networkProfile:
                description: Storage version of v1alpha1api20201201.VirtualMachines_Spec_Properties_NetworkProfile
                properties:
                  $propertyBag:
                    additionalProperties:
                      type: string
                    description: PropertyBag is an unordered set of stashed information
                      that used for properties not directly supported by storage resources,
                      allowing for full fidelity round trip conversions
                    type: object
                  networkInterfaces:
                    items:
                      description: Storage version of v1alpha1api20201201.VirtualMachines_Spec_Properties_NetworkProfile_NetworkInterfaces
                      properties:
                        $propertyBag:
                          additionalProperties:
                            type: string
                          description: PropertyBag is an unordered set of stashed
                            information that used for properties not directly supported
                            by storage resources, allowing for full fidelity round
                            trip conversions
                          type: object
                        primary:
                          type: boolean
                        reference:
                          description: 'Reference: Resource Id'
                          properties:
                            armId:
                              description: 'TODO: The below regex may be overly restrictive
                                ARMID is a string of the form /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}.
                                The /resourcegroups/{resourceGroupName} bit is optional
                                as some resources are scoped at the subscription level
                                ARMID is mutually exclusive with Group, Kind, Namespace
                                and Name.'
                              pattern: (?i)^/subscriptions/([^/]+)(/resourcegroups/([^/]+))?/providers/([^/]+)/([^/]+/[^/]+)(/([^/]+/[^/]+))*$
                              type: string
                            group:
                              description: Group is the Kubernetes group of the resource.
                              type: string
                            kind:
                              description: Kind is the Kubernetes kind of the resource.
                              type: string
                            name:
                              description: Name is the Kubernetes name of the resource.
                              type: string
                          type: object
                      type: object
                    type: array
                type: object
              originalVersion:
                type: string
              osProfile:
                description: 'Storage version of v1alpha1api20201201.OSProfile Generated
                  from: https://schema.management.azure.com/schemas/2020-12-01/Microsoft.Compute.json#/definitions/OSProfile'
                properties:
                  $propertyBag:
                    additionalProperties:
                      type: string
                    description: PropertyBag is an unordered set of stashed information
                      that used for properties not directly supported by storage resources,
                      allowing for full fidelity round trip conversions
                    type: object
                  adminPassword:
                    description: SecretReference is a reference to a Kubernetes secret
                      and key in the same namespace as the resource it is on.
                    properties:
                      key:
                        description: Key is the key in the Kubernetes secret being
                          referenced
                        type: string
                      name:
                        description: SecretName is the name of the Kubernetes secret
                          being referenced. The secret must be in the same namespace
                          as the resource
                        type: string
                    required:
                    - key
                    - name
                    type: object
                  adminUsername:
                    type: string
                  allowExtensionOperations:
                    type: boolean
                  computerName:
                    type: string
                  customData:
                    type: string
                  linuxConfiguration:
                    description: 'Storage version of v1alpha1api20201201.LinuxConfiguration
                      Generated from: https://schema.management.azure.com/schemas/2020-12-01/Microsoft.Compute.json#/definitions/LinuxConfiguration'
                    properties:
                      $propertyBag:
                        additionalProperties:
                          type: string
                        description: PropertyBag is an unordered set of stashed information
                          that used for properties not directly supported by storage
                          resources, allowing for full fidelity round trip conversions
                        type: object
                      disablePasswordAuthentication:
                        type: boolean
                      patchSettings:
                        description: 'Storage version of v1alpha1api20201201.LinuxPatchSettings
                          Generated from: https://schema.management.azure.com/schemas/2020-12-01/Microsoft.Compute.json#/definitions/LinuxPatchSettings'
                        properties:
                          $propertyBag:
                            additionalProperties:
                              type: string
                            description: PropertyBag is an unordered set of stashed
                              information that used for properties not directly supported
                              by storage resources, allowing for full fidelity round
                              trip conversions
                            type: object
                          patchMode:
                            type: string
                        type: object
                      provisionVMAgent:
                        type: boolean
                      ssh:
                        description: 'Storage version of v1alpha1api20201201.SshConfiguration
                          Generated from: https://schema.management.azure.com/schemas/2020-12-01/Microsoft.Compute.json#/definitions/SshConfiguration'
                        properties:
                          $propertyBag:
                            additionalProperties:
                              type: string
                            description: PropertyBag is an unordered set of stashed
                              information that used for properties not directly supported
                              by storage resources, allowing for full fidelity round
                              trip conversions
                            type: object
                          publicKeys:
                            items:
                              description: 'Storage version of v1alpha1api20201201.SshPublicKey
                                Generated from: https://schema.management.azure.com/schemas/2020-12-01/Microsoft.Compute.json#/definitions/SshPublicKey'
                              properties:
                                $propertyBag:
                                  additionalProperties:
                                    type: string
                                  description: PropertyBag is an unordered set of
                                    stashed information that used for properties not
                                    directly supported by storage resources, allowing
                                    for full fidelity round trip conversions
                                  type: object
                                keyData:
                                  type: string
                                path:
                                  type: string
                              type: object
                            type: array
                        type: object
                    type: object
                  requireGuestProvisionSignal:
                    type: boolean
                  secrets:
                    items:
                      description: 'Storage version of v1alpha1api20201201.VaultSecretGroup
                        Generated from: https://schema.management.azure.com/schemas/2020-12-01/Microsoft.Compute.json#/definitions/VaultSecretGroup'
                      properties:
                        $propertyBag:
                          additionalProperties:
                            type: string
                          description: PropertyBag is an unordered set of stashed
                            information that used for properties not directly supported
                            by storage resources, allowing for full fidelity round
                            trip conversions
                          type: object
                        sourceVault:
                          description: 'Storage version of v1alpha1api20201201.SubResource
                            Generated from: https://schema.management.azure.com/schemas/2020-12-01/Microsoft.Compute.json#/definitions/SubResource'
                          properties:
                            $propertyBag:
                              additionalProperties:
                                type: string
                              description: PropertyBag is an unordered set of stashed
                                information that used for properties not directly
                                supported by storage resources, allowing for full
                                fidelity round trip conversions
                              type: object
                            reference:
                              description: 'Reference: Resource Id'
                              properties:
                                armId:
                                  description: 'TODO: The below regex may be overly
                                    restrictive ARMID is a string of the form /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}.
                                    The /resourcegroups/{resourceGroupName} bit is
                                    optional as some resources are scoped at the subscription
                                    level ARMID is mutually exclusive with Group,
                                    Kind, Namespace and Name.'
                                  pattern: (?i)^/subscriptions/([^/]+)(/resourcegroups/([^/]+))?/providers/([^/]+)/([^/]+/[^/]+)(/([^/]+/[^/]+))*$
                                  type: string
                                group:
                                  description: Group is the Kubernetes group of the
                                    resource.
                                  type: string
                                kind:
                                  description: Kind is the Kubernetes kind of the
                                    resource.
                                  type: string
                                name:
                                  description: Name is the Kubernetes name of the
                                    resource.
                                  type: string
                              type: object
                          type: object
                        vaultCertificates:
                          items:
                            description: 'Storage version of v1alpha1api20201201.VaultCertificate
                              Generated from: https://schema.management.azure.com/schemas/2020-12-01/Microsoft.Compute.json#/definitions/VaultCertificate'
                            properties:
                              $propertyBag:
                                additionalProperties:
                                  type: string
                                description: PropertyBag is an unordered set of stashed
                                  information that used for properties not directly
                                  supported by storage resources, allowing for full
                                  fidelity round trip conversions
                                type: object
                              certificateStore:
                                type: string
                              certificateUrl:
                                type: string
                            type: object
                          type: array
                      type: object
                    type: array
                  windowsConfiguration:
                    description: 'Storage version of v1alpha1api20201201.WindowsConfiguration
                      Generated from: https://schema.management.azure.com/schemas/2020-12-01/Microsoft.Compute.json#/definitions/WindowsConfiguration'
                    properties:
                      $propertyBag:
                        additionalProperties:
                          type: string
                        description: PropertyBag is an unordered set of stashed information
                          that used for properties not directly supported by storage
                          resources, allowing for full fidelity round trip conversions
                        type: object
                      additionalUnattendContent:
                        items:
                          description: 'Storage version of v1alpha1api20201201.AdditionalUnattendContent
                            Generated from: https://schema.management.azure.com/schemas/2020-12-01/Microsoft.Compute.json#/definitions/AdditionalUnattendContent'
                          properties:
                            $propertyBag:
                              additionalProperties:
                                type: string
                              description: PropertyBag is an unordered set of stashed
                                information that used for properties not directly
                                supported by storage resources, allowing for full
                                fidelity round trip conversions
                              type: object
                            componentName:
                              type: string
                            content:
                              type: string
                            passName:
                              type: string
                            settingName:
                              type: string
                          type: object
                        type: array
                      enableAutomaticUpdates:
                        type: boolean
                      patchSettings:
                        description: 'Storage version of v1alpha1api20201201.PatchSettings
                          Generated from: https://schema.management.azure.com/schemas/2020-12-01/Microsoft.Compute.json#/definitions/PatchSettings'
                        properties:
                          $propertyBag:
                            additionalProperties:
                              type: string
                            description: PropertyBag is an unordered set of stashed
                              information that used for properties not directly supported
                              by storage resources, allowing for full fidelity round
                              trip conversions
                            type: object
                          enableHotpatching:
                            type: boolean
                          patchMode:
                            type: string
                        type: object
                      provisionVMAgent:
                        type: boolean
                      timeZone:
                        type: string
                      winRM:
                        description: 'Storage version of v1alpha1api20201201.WinRMConfiguration
                          Generated from: https://schema.management.azure.com/schemas/2020-12-01/Microsoft.Compute.json#/definitions/WinRMConfiguration'
                        properties:
                          $propertyBag:
                            additionalProperties:
                              type: string
                            description: PropertyBag is an unordered set of stashed
                              information that used for properties not directly supported
                              by storage resources, allowing for full fidelity round
                              trip conversions
                            type: object
                          listeners:
                            items:
                              description: 'Storage version of v1alpha1api20201201.WinRMListener
                                Generated from: https://schema.management.azure.com/schemas/2020-12-01/Microsoft.Compute.json#/definitions/WinRMListener'
                              properties:
                                $propertyBag:
                                  additionalProperties:
                                    type: string
                                  description: PropertyBag is an unordered set of
                                    stashed information that used for properties not
                                    directly supported by storage resources, allowing
                                    for full fidelity round trip conversions
                                  type: object
                                certificateUrl:
                                  type: string
                                protocol:
                                  type: string
                              type: object
                            type: array
                        type: object
                    type: object
                type: object
              owner:
                description: KnownResourceReference is a resource reference to a known
                  type.
                properties:
                  name:
                    description: This is the name of the Kubernetes resource to reference.
                    type: string
                required:
                - name
                type: object
              plan:
                description: 'Storage version of v1alpha1api20201201.Plan Generated
                  from: https://schema.management.azure.com/schemas/2020-12-01/Microsoft.Compute.json#/definitions/Plan'
                properties:
                  $propertyBag:
                    additionalProperties:
                      type: string
                    description: PropertyBag is an unordered set of stashed information
                      that used for properties not directly supported by storage resources,
                      allowing for full fidelity round trip conversions
                    type: object
                  name:
                    type: string
                  product:
                    type: string
                  promotionCode:
                    type: string
                  publisher:
                    type: string
                type: object
              platformFaultDomain:
                type: integer
              priority:
                type: string
              proximityPlacementGroup:
                description: 'Storage version of v1alpha1api20201201.SubResource Generated
                  from: https://schema.management.azure.com/schemas/2020-12-01/Microsoft.Compute.json#/definitions/SubResource'
                properties:
                  $propertyBag:
                    additionalProperties:
                      type: string
                    description: PropertyBag is an unordered set of stashed information
                      that used for properties not directly supported by storage resources,
                      allowing for full fidelity round trip conversions
                    type: object
                  reference:
                    description: 'Reference: Resource Id'
                    properties:
                      armId:
                        description: 'TODO: The below regex may be overly restrictive
                          ARMID is a string of the form /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}.
                          The /resourcegroups/{resourceGroupName} bit is optional
                          as some resources are scoped at the subscription level ARMID
                          is mutually exclusive with Group, Kind, Namespace and Name.'
                        pattern: (?i)^/subscriptions/([^/]+)(/resourcegroups/([^/]+))?/providers/([^/]+)/([^/]+/[^/]+)(/([^/]+/[^/]+))*$
                        type: string
                      group:
                        description: Group is the Kubernetes group of the resource.
                        type: string
                      kind:
                        description: Kind is the Kubernetes kind of the resource.
                        type: string
                      name:
                        description: Name is the Kubernetes name of the resource.
                        type: string
                    type: object
                type: object
              securityProfile:
                description: 'Storage version of v1alpha1api20201201.SecurityProfile
                  Generated from: https://schema.management.azure.com/schemas/2020-12-01/Microsoft.Compute.json#/definitions/SecurityProfile'
                properties:
                  $propertyBag:
                    additionalProperties:
                      type: string
                    description: PropertyBag is an unordered set of stashed information
                      that used for properties not directly supported by storage resources,
                      allowing for full fidelity round trip conversions
                    type: object
                  encryptionAtHost:
                    type: boolean
                  securityType:
                    type: string
                  uefiSettings:
                    description: 'Storage version of v1alpha1api20201201.UefiSettings
                      Generated from: https://schema.management.azure.com/schemas/2020-12-01/Microsoft.Compute.json#/definitions/UefiSettings'
                    properties:
                      $propertyBag:
                        additionalProperties:
                          type: string
                        description: PropertyBag is an unordered set of stashed information
                          that used for properties not directly supported by storage
                          resources, allowing for full fidelity round trip conversions
                        type: object
                      secureBootEnabled:
                        type: boolean
                      vTpmEnabled:
                        type: boolean
                    type: object
                type: object
              storageProfile:
                description: 'Storage version of v1alpha1api20201201.StorageProfile
                  Generated from: https://schema.management.azure.com/schemas/2020-12-01/Microsoft.Compute.json#/definitions/StorageProfile'
                properties:
                  $propertyBag:
                    additionalProperties:
                      type: string
                    description: PropertyBag is an unordered set of stashed information
                      that used for properties not directly supported by storage resources,
                      allowing for full fidelity round trip conversions
                    type: object
                  dataDisks:
                    items:
                      description: 'Storage version of v1alpha1api20201201.DataDisk
                        Generated from: https://schema.management.azure.com/schemas/2020-12-01/Microsoft.Compute.json#/definitions/DataDisk'
                      properties:
                        $propertyBag:
                          additionalProperties:
                            type: string
                          description: PropertyBag is an unordered set of stashed
                            information that used for properties not directly supported
                            by storage resources, allowing for full fidelity round
                            trip conversions
                          type: object
                        caching:
                          type: string
                        createOption:
                          type: string
                        detachOption:
                          type: string
                        diskSizeGB:
                          type: integer
                        image:
                          description: 'Storage version of v1alpha1api20201201.VirtualHardDisk
                            Generated from: https://schema.management.azure.com/schemas/2020-12-01/Microsoft.Compute.json#/definitions/VirtualHardDisk'
                          properties:
                            $propertyBag:
                              additionalProperties:
                                type: string
                              description: PropertyBag is an unordered set of stashed
                                information that used for properties not directly
                                supported by storage resources, allowing for full
                                fidelity round trip conversions
                              type: object
                            uri:
                              type: string
                          type: object
                        lun:
                          type: integer
                        managedDisk:
                          description: 'Storage version of v1alpha1api20201201.ManagedDiskParameters
                            Generated from: https://schema.management.azure.com/schemas/2020-12-01/Microsoft.Compute.json#/definitions/ManagedDiskParameters'
                          properties:
                            $propertyBag:
                              additionalProperties:
                                type: string
                              description: PropertyBag is an unordered set of stashed
                                information that used for properties not directly
                                supported by storage resources, allowing for full
                                fidelity round trip conversions
                              type: object
                            diskEncryptionSet:
                              description: 'Storage version of v1alpha1api20201201.DiskEncryptionSetParameters
                                Generated from: https://schema.management.azure.com/schemas/2020-12-01/Microsoft.Compute.json#/definitions/DiskEncryptionSetParameters'
                              properties:
                                $propertyBag:
                                  additionalProperties:
                                    type: string
                                  description: PropertyBag is an unordered set of
                                    stashed information that used for properties not
                                    directly supported by storage resources, allowing
                                    for full fidelity round trip conversions
                                  type: object
                                reference:
                                  description: 'Reference: Resource Id'
                                  properties:
                                    armId:
                                      description: 'TODO: The below regex may be overly
                                        restrictive ARMID is a string of the form
                                        /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}.
                                        The /resourcegroups/{resourceGroupName} bit
                                        is optional as some resources are scoped at
                                        the subscription level ARMID is mutually exclusive
                                        with Group, Kind, Namespace and Name.'
                                      pattern: (?i)^/subscriptions/([^/]+)(/resourcegroups/([^/]+))?/providers/([^/]+)/([^/]+/[^/]+)(/([^/]+/[^/]+))*$
                                      type: string
                                    group:
                                      description: Group is the Kubernetes group of
                                        the resource.
                                      type: string
                                    kind:
                                      description: Kind is the Kubernetes kind of
                                        the resource.
                                      type: string
                                    name:
                                      description: Name is the Kubernetes name of
                                        the resource.
                                      type: string
                                  type: object
                              type: object
                            reference:
                              description: 'Reference: Resource Id'
                              properties:
                                armId:
                                  description: 'TODO: The below regex may be overly
                                    restrictive ARMID is a string of the form /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}.
                                    The /resourcegroups/{resourceGroupName} bit is
                                    optional as some resources are scoped at the subscription
                                    level ARMID is mutually exclusive with Group,
                                    Kind, Namespace and Name.'
                                  pattern: (?i)^/subscriptions/([^/]+)(/resourcegroups/([^/]+))?/providers/([^/]+)/([^/]+/[^/]+)(/([^/]+/[^/]+))*$
                                  type: string
                                group:
                                  description: Group is the Kubernetes group of the
                                    resource.
                                  type: string
                                kind:
                                  description: Kind is the Kubernetes kind of the
                                    resource.
                                  type: string
                                name:
                                  description: Name is the Kubernetes name of the
                                    resource.
                                  type: string
                              type: object
                            storageAccountType:
                              type: string
                          type: object
                        name:
                          type: string
                        toBeDetached:
                          type: boolean
                        vhd:
                          description: 'Storage version of v1alpha1api20201201.VirtualHardDisk
                            Generated from: https://schema.management.azure.com/schemas/2020-12-01/Microsoft.Compute.json#/definitions/VirtualHardDisk'
                          properties:
                            $propertyBag:
                              additionalProperties:
                                type: string
                              description: PropertyBag is an unordered set of stashed
                                information that used for properties not directly
                                supported by storage resources, allowing for full
                                fidelity round trip conversions
                              type: object
                            uri:
                              type: string
                          type: object
                        writeAcceleratorEnabled:
                          type: boolean
                      type: object
                    type: array
                  imageReference:
                    description: 'Storage version of v1alpha1api20201201.ImageReference
                      Generated from: https://schema.management.azure.com/schemas/2020-12-01/Microsoft.Compute.json#/definitions/ImageReference'
                    properties:
                      $propertyBag:
                        additionalProperties:
                          type: string
                        description: PropertyBag is an unordered set of stashed information
                          that used for properties not directly supported by storage
                          resources, allowing for full fidelity round trip conversions
                        type: object
                      offer:
                        type: string
                      publisher:
                        type: string
                      reference:
                        description: 'Reference: Resource Id'
                        properties:
                          armId:
                            description: 'TODO: The below regex may be overly restrictive
                              ARMID is a string of the form /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}.
                              The /resourcegroups/{resourceGroupName} bit is optional
                              as some resources are scoped at the subscription level
                              ARMID is mutually exclusive with Group, Kind, Namespace
                              and Name.'
                            pattern: (?i)^/subscriptions/([^/]+)(/resourcegroups/([^/]+))?/providers/([^/]+)/([^/]+/[^/]+)(/([^/]+/[^/]+))*$
                            type: string
                          group:
                            description: Group is the Kubernetes group of the resource.
                            type: string
                          kind:
                            description: Kind is the Kubernetes kind of the resource.
                            type: string
                          name:
                            description: Name is the Kubernetes name of the resource.
                            type: string
                        type: object
                      sku:
                        type: string
                      version:
                        type: string
                    type: object
                  osDisk:
                    description: 'Storage version of v1alpha1api20201201.OSDisk Generated
                      from: https://schema.management.azure.com/schemas/2020-12-01/Microsoft.Compute.json#/definitions/OSDisk'
                    properties:
                      $propertyBag:
                        additionalProperties:
                          type: string
                        description: PropertyBag is an unordered set of stashed information
                          that used for properties not directly supported by storage
                          resources, allowing for full fidelity round trip conversions
                        type: object
                      caching:
                        type: string
                      createOption:
                        type: string
                      diffDiskSettings:
                        description: 'Storage version of v1alpha1api20201201.DiffDiskSettings
                          Generated from: https://schema.management.azure.com/schemas/2020-12-01/Microsoft.Compute.json#/definitions/DiffDiskSettings'
                        properties:
                          $propertyBag:
                            additionalProperties:
                              type: string
                            description: PropertyBag is an unordered set of stashed
                              information that used for properties not directly supported
                              by storage resources, allowing for full fidelity round
                              trip conversions
                            type: object
                          option:
                            type: string
                          placement:
                            type: string
                        type: object
                      diskSizeGB:
                        type: integer
                      encryptionSettings:
                        description: 'Storage version of v1alpha1api20201201.DiskEncryptionSettings
                          Generated from: https://schema.management.azure.com/schemas/2020-12-01/Microsoft.Compute.json#/definitions/DiskEncryptionSettings'
                        properties:
                          $propertyBag:
                            additionalProperties:
                              type: string
                            description: PropertyBag is an unordered set of stashed
                              information that used for properties not directly supported
                              by storage resources, allowing for full fidelity round
                              trip conversions
                            type: object
                          diskEncryptionKey:
                            description: 'Storage version of v1alpha1api20201201.KeyVaultSecretReference
                              Generated from: https://schema.management.azure.com/schemas/2020-12-01/Microsoft.Compute.json#/definitions/KeyVaultSecretReference'
                            properties:
                              $propertyBag:
                                additionalProperties:
                                  type: string
                                description: PropertyBag is an unordered set of stashed
                                  information that used for properties not directly
                                  supported by storage resources, allowing for full
                                  fidelity round trip conversions
                                type: object
                              secretUrl:
                                type: string
                              sourceVault:
                                description: 'Storage version of v1alpha1api20201201.SubResource
                                  Generated from: https://schema.management.azure.com/schemas/2020-12-01/Microsoft.Compute.json#/definitions/SubResource'
                                properties:
                                  $propertyBag:
                                    additionalProperties:
                                      type: string
                                    description: PropertyBag is an unordered set of
                                      stashed information that used for properties
                                      not directly supported by storage resources,
                                      allowing for full fidelity round trip conversions
                                    type: object
                                  reference:
                                    description: 'Reference: Resource Id'
                                    properties:
                                      armId:
                                        description: 'TODO: The below regex may be
                                          overly restrictive ARMID is a string of
                                          the form /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}.
                                          The /resourcegroups/{resourceGroupName}
                                          bit is optional as some resources are scoped
                                          at the subscription level ARMID is mutually
                                          exclusive with Group, Kind, Namespace and
                                          Name.'
                                        pattern: (?i)^/subscriptions/([^/]+)(/resourcegroups/([^/]+))?/providers/([^/]+)/([^/]+/[^/]+)(/([^/]+/[^/]+))*$
                                        type: string
                                      group:
                                        description: Group is the Kubernetes group
                                          of the resource.
                                        type: string
                                      kind:
                                        description: Kind is the Kubernetes kind of
                                          the resource.
                                        type: string
                                      name:
                                        description: Name is the Kubernetes name of
                                          the resource.
                                        type: string
                                    type: object
                                type: object
                            type: object
                          enabled:
                            type: boolean
                          keyEncryptionKey:
                            description: 'Storage version of v1alpha1api20201201.KeyVaultKeyReference
                              Generated from: https://schema.management.azure.com/schemas/2020-12-01/Microsoft.Compute.json#/definitions/KeyVaultKeyReference'
                            properties:
                              $propertyBag:
                                additionalProperties:
                                  type: string
                                description: PropertyBag is an unordered set of stashed
                                  information that used for properties not directly
                                  supported by storage resources, allowing for full
                                  fidelity round trip conversions
                                type: object
                              keyUrl:
                                type: string
                              sourceVault:
                                description: 'Storage version of v1alpha1api20201201.SubResource
                                  Generated from: https://schema.management.azure.com/schemas/2020-12-01/Microsoft.Compute.json#/definitions/SubResource'
                                properties:
                                  $propertyBag:
                                    additionalProperties:
                                      type: string
                                    description: PropertyBag is an unordered set of
                                      stashed information that used for properties
                                      not directly supported by storage resources,
                                      allowing for full fidelity round trip conversions
                                    type: object
                                  reference:
                                    description: 'Reference: Resource Id'
                                    properties:
                                      armId:
                                        description: 'TODO: The below regex may be
                                          overly restrictive ARMID is a string of
                                          the form /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}.
                                          The /resourcegroups/{resourceGroupName}
                                          bit is optional as some resources are scoped
                                          at the subscription level ARMID is mutually
                                          exclusive with Group, Kind, Namespace and
                                          Name.'
                                        pattern: (?i)^/subscriptions/([^/]+)(/resourcegroups/([^/]+))?/providers/([^/]+)/([^/]+/[^/]+)(/([^/]+/[^/]+))*$
                                        type: string
                                      group:
                                        description: Group is the Kubernetes group
                                          of the resource.
                                        type: string
                                      kind:
                                        description: Kind is the Kubernetes kind of
                                          the resource.
                                        type: string
                                      name:
                                        description: Name is the Kubernetes name of
                                          the resource.
                                        type: string
                                    type: object
                                type: object
                            type: object
                        type: object
                      image:
                        description: 'Storage version of v1alpha1api20201201.VirtualHardDisk
                          Generated from: https://schema.management.azure.com/schemas/2020-12-01/Microsoft.Compute.json#/definitions/VirtualHardDisk'
                        properties:
                          $propertyBag:
                            additionalProperties:
                              type: string
                            description: PropertyBag is an unordered set of stashed
                              information that used for properties not directly supported
                              by storage resources, allowing for full fidelity round
                              trip conversions
                            type: object
                          uri:
                            type: string
                        type: object
                      managedDisk:
                        description: 'Storage version of v1alpha1api20201201.ManagedDiskParameters
                          Generated from: https://schema.management.azure.com/schemas/2020-12-01/Microsoft.Compute.json#/definitions/ManagedDiskParameters'
                        properties:
                          $propertyBag:
                            additionalProperties:
                              type: string
                            description: PropertyBag is an unordered set of stashed
                              information that used for properties not directly supported
                              by storage resources, allowing for full fidelity round
                              trip conversions
                            type: object
                          diskEncryptionSet:
                            description: 'Storage version of v1alpha1api20201201.DiskEncryptionSetParameters
                              Generated from: https://schema.management.azure.com/schemas/2020-12-01/Microsoft.Compute.json#/definitions/DiskEncryptionSetParameters'
                            properties:
                              $propertyBag:
                                additionalProperties:
                                  type: string
                                description: PropertyBag is an unordered set of stashed
                                  information that used for properties not directly
                                  supported by storage resources, allowing for full
                                  fidelity round trip conversions
                                type: object
                              reference:
                                description: 'Reference: Resource Id'
                                properties:
                                  armId:
                                    description: 'TODO: The below regex may be overly
                                      restrictive ARMID is a string of the form /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}.
                                      The /resourcegroups/{resourceGroupName} bit
                                      is optional as some resources are scoped at
                                      the subscription level ARMID is mutually exclusive
                                      with Group, Kind, Namespace and Name.'
                                    pattern: (?i)^/subscriptions/([^/]+)(/resourcegroups/([^/]+))?/providers/([^/]+)/([^/]+/[^/]+)(/([^/]+/[^/]+))*$
                                    type: string
                                  group:
                                    description: Group is the Kubernetes group of
                                      the resource.
                                    type: string
                                  kind:
                                    description: Kind is the Kubernetes kind of the
                                      resource.
                                    type: string
                                  name:
                                    description: Name is the Kubernetes name of the
                                      resource.
                                    type: string
                                type: object
                            type: object
                          reference:
                            description: 'Reference: Resource Id'
                            properties:
                              armId:
                                description: 'TODO: The below regex may be overly
                                  restrictive ARMID is a string of the form /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}.
                                  The /resourcegroups/{resourceGroupName} bit is optional
                                  as some resources are scoped at the subscription
                                  level ARMID is mutually exclusive with Group, Kind,
                                  Namespace and Name.'
                                pattern: (?i)^/subscriptions/([^/]+)(/resourcegroups/([^/]+))?/providers/([^/]+)/([^/]+/[^/]+)(/([^/]+/[^/]+))*$
                                type: string
                              group:
                                description: Group is the Kubernetes group of the
                                  resource.
                                type: string
                              kind:
                                description: Kind is the Kubernetes kind of the resource.
                                type: string
                              name:
                                description: Name is the Kubernetes name of the resource.
                                type: string
                            type: object
                          storageAccountType:
                            type: string
                        type: object
                      name:
                        type: string
                      osType:
                        type: string
                      vhd:
                        description: 'Storage version of v1alpha1api20201201.VirtualHardDisk
                          Generated from: https://schema.management.azure.com/schemas/2020-12-01/Microsoft.Compute.json#/definitions/VirtualHardDisk'
                        properties:
                          $propertyBag:
                            additionalProperties:
                              type: string
                            description: PropertyBag is an unordered set of stashed
                              information that used for properties not directly supported
                              by storage resources, allowing for full fidelity round
                              trip conversions
                            type: object
                          uri:
                            type: string
                        type: object
                      writeAcceleratorEnabled:
                        type: boolean
                    type: object
                type: object
              tags:
                additionalProperties:
                  type: string
                type: object
              virtualMachineScaleSet:
                description: 'Storage version of v1alpha1api20201201.SubResource Generated
                  from: https://schema.management.azure.com/schemas/2020-12-01/Microsoft.Compute.json#/definitions/SubResource'
                properties:
                  $propertyBag:
                    additionalProperties:
                      type: string
                    description: PropertyBag is an unordered set of stashed information
                      that used for properties not directly supported by storage resources,
                      allowing for full fidelity round trip conversions
                    type: object
                  reference:
                    description: 'Reference: Resource Id'
                    properties:
                      armId:
                        description: 'TODO: The below regex may be overly restrictive
                          ARMID is a string of the form /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}.
                          The /resourcegroups/{resourceGroupName} bit is optional
                          as some resources are scoped at the subscription level ARMID
                          is mutually exclusive with Group, Kind, Namespace and Name.'
                        pattern: (?i)^/subscriptions/([^/]+)(/resourcegroups/([^/]+))?/providers/([^/]+)/([^/]+/[^/]+)(/([^/]+/[^/]+))*$
                        type: string
                      group:
                        description: Group is the Kubernetes group of the resource.
                        type: string
                      kind:
                        description: Kind is the Kubernetes kind of the resource.
                        type: string
                      name:
                        description: Name is the Kubernetes name of the resource.
                        type: string
                    type: object
                type: object
              zones:
                items:
                  type: string
                type: array
            required:
            - owner
            type: object
          status:
            description: Storage version of v1alpha1api20201201.VirtualMachine_Status
            properties:
              $propertyBag:
                additionalProperties:
                  type: string
                description: PropertyBag is an unordered set of stashed information
                  that used for properties not directly supported by storage resources,
                  allowing for full fidelity round trip conversions
                type: object
              additionalCapabilities:
                description: Storage version of v1alpha1api20201201.AdditionalCapabilities_Status
                properties:
                  $propertyBag:
                    additionalProperties:
                      type: string
                    description: PropertyBag is an unordered set of stashed information
                      that used for properties not directly supported by storage resources,
                      allowing for full fidelity round trip conversions
                    type: object
                  ultraSSDEnabled:
                    type: boolean
                type: object
              availabilitySet:
                description: Storage version of v1alpha1api20201201.SubResource_Status
                properties:
                  $propertyBag:
                    additionalProperties:
                      type: string
                    description: PropertyBag is an unordered set of stashed information
                      that used for properties not directly supported by storage resources,
                      allowing for full fidelity round trip conversions
                    type: object
                  id:
                    type: string
                type: object
              billingProfile:
                description: Storage version of v1alpha1api20201201.BillingProfile_Status
                properties:
                  $propertyBag:
                    additionalProperties:
                      type: string
                    description: PropertyBag is an unordered set of stashed information
                      that used for properties not directly supported by storage resources,
                      allowing for full fidelity round trip conversions
                    type: object
                  maxPrice:
                    type: number
                type: object
              conditions:
                items:
                  description: Condition defines an extension to status (an observation)
                    of a resource
                  properties:
                    lastTransitionTime:
                      description: LastTransitionTime is the last time the condition
                        transitioned from one status to another.
                      format: date-time
                      type: string
                    message:
                      description: Message is a human readable message indicating
                        details about the transition. This field may be empty.
                      type: string
                    observedGeneration:
                      description: ObservedGeneration is the .metadata.generation
                        that the condition was set based upon. For instance, if .metadata.generation
                        is currently 12, but the .status.condition[x].observedGeneration
                        is 9, the condition is out of date with respect to the current
                        state of the instance.
                      format: int64
                      type: integer
                    reason:
                      description: Reason for the condition's last transition. Reasons
                        are upper CamelCase (PascalCase) with no spaces. A reason
                        is always provided, this field will not be empty.
                      type: string
                    severity:
                      description: Severity with which to treat failures of this type
                        of condition. For conditions which have positive polarity
                        (Status == True is their normal/healthy state), this will
                        be omitted when Status == True For conditions which have negative
                        polarity (Status == False is their normal/healthy state),
                        this will be omitted when Status == False. This is omitted
                        in all cases when Status == Unknown
                      type: string
                    status:
                      description: Status of the condition, one of True, False, or
                        Unknown.
                      type: string
                    type:
                      description: Type of condition.
                      type: string
                  required:
                  - lastTransitionTime
                  - reason
                  - status
                  - type
                  type: object
                type: array
              diagnosticsProfile:
                description: Storage version of v1alpha1api20201201.DiagnosticsProfile_Status
                properties:
                  $propertyBag:
                    additionalProperties:
                      type: string
                    description: PropertyBag is an unordered set of stashed information
                      that used for properties not directly supported by storage resources,
                      allowing for full fidelity round trip conversions
                    type: object
                  bootDiagnostics:
                    description: Storage version of v1alpha1api20201201.BootDiagnostics_Status
                    properties:
                      $propertyBag:
                        additionalProperties:
                          type: string
                        description: PropertyBag is an unordered set of stashed information
                          that used for properties not directly supported by storage
                          resources, allowing for full fidelity round trip conversions
                        type: object
                      enabled:
                        type: boolean
                      storageUri:
                        type: string
                    type: object
                type: object
              evictionPolicy:
                type: string
              extendedLocation:
                description: Storage version of v1alpha1api20201201.ExtendedLocation_Status
                properties:
                  $propertyBag:
                    additionalProperties:
                      type: string
                    description: PropertyBag is an unordered set of stashed information
                      that used for properties not directly supported by storage resources,
                      allowing for full fidelity round trip conversions
                    type: object
                  name:
                    type: string
                  type:
                    type: string
                type: object
              extensionsTimeBudget:
                type: string
              hardwareProfile:
                description: Storage version of v1alpha1api20201201.HardwareProfile_Status
                properties:
                  $propertyBag:
                    additionalProperties:
                      type: string
                    description: PropertyBag is an unordered set of stashed information
                      that used for properties not directly supported by storage resources,
                      allowing for full fidelity round trip conversions
                    type: object
                  vmSize:
                    type: string
                type: object
              host:
                description: Storage version of v1alpha1api20201201.SubResource_Status
                properties:
                  $propertyBag:
                    additionalProperties:
                      type: string
                    description: PropertyBag is an unordered set of stashed information
                      that used for properties not directly supported by storage resources,
                      allowing for full fidelity round trip conversions
                    type: object
                  id:
                    type: string
                type: object
              hostGroup:
                description: Storage version of v1alpha1api20201201.SubResource_Status
                properties:
                  $propertyBag:
                    additionalProperties:
                      type: string
                    description: PropertyBag is an unordered set of stashed information
                      that used for properties not directly supported by storage resources,
                      allowing for full fidelity round trip conversions
                    type: object
                  id:
                    type: string
                type: object
              id:
                type: string
              identity:
                description: Storage version of v1alpha1api20201201.VirtualMachineIdentity_Status
                properties:
                  $propertyBag:
                    additionalProperties:
                      type: string
                    description: PropertyBag is an unordered set of stashed information
                      that used for properties not directly supported by storage resources,
                      allowing for full fidelity round trip conversions
                    type: object
                  principalId:
                    type: string
                  tenantId:
                    type: string
                  type:
                    type: string
                  userAssignedIdentities:
                    additionalProperties:
                      description: Storage version of v1alpha1api20201201.VirtualMachineIdentity_Status_UserAssignedIdentities
                      properties:
                        $propertyBag:
                          additionalProperties:
                            type: string
                          description: PropertyBag is an unordered set of stashed
                            information that used for properties not directly supported
                            by storage resources, allowing for full fidelity round
                            trip conversions
                          type: object
                        clientId:
                          type: string
                        principalId:
                          type: string
                      type: object
                    type: object
                type: object
              instanceView:
                description: Storage version of v1alpha1api20201201.VirtualMachineInstanceView_Status
                properties:
                  $propertyBag:
                    additionalProperties:
                      type: string
                    description: PropertyBag is an unordered set of stashed information
                      that used for properties not directly supported by storage resources,
                      allowing for full fidelity round trip conversions
                    type: object
                  assignedHost:
                    type: string
                  bootDiagnostics:
                    description: Storage version of v1alpha1api20201201.BootDiagnosticsInstanceView_Status
                    properties:
                      $propertyBag:
                        additionalProperties:
                          type: string
                        description: PropertyBag is an unordered set of stashed information
                          that used for properties not directly supported by storage
                          resources, allowing for full fidelity round trip conversions
                        type: object
                      consoleScreenshotBlobUri:
                        type: string
                      serialConsoleLogBlobUri:
                        type: string
                      status:
                        description: Storage version of v1alpha1api20201201.InstanceViewStatus_Status
                        properties:
                          $propertyBag:
                            additionalProperties:
                              type: string
                            description: PropertyBag is an unordered set of stashed
                              information that used for properties not directly supported
                              by storage resources, allowing for full fidelity round
                              trip conversions
                            type: object
                          code:
                            type: string
                          displayStatus:
                            type: string
                          level:
                            type: string
                          message:
                            type: string
                          time:
                            type: string
                        type: object
                    type: object
                  computerName:
                    type: string
                  disks:
                    items:
                      description: Storage version of v1alpha1api20201201.DiskInstanceView_Status
                      properties:
                        $propertyBag:
                          additionalProperties:
                            type: string
                          description: PropertyBag is an unordered set of stashed
                            information that used for properties not directly supported
                            by storage resources, allowing for full fidelity round
                            trip conversions
                          type: object
                        encryptionSettings:
                          items:
                            description: Storage version of v1alpha1api20201201.DiskEncryptionSettings_Status
                            properties:
                              $propertyBag:
                                additionalProperties:
                                  type: string
                                description: PropertyBag is an unordered set of stashed
                                  information that used for properties not directly
                                  supported by storage resources, allowing for full
                                  fidelity round trip conversions
                                type: object
                              diskEncryptionKey:
                                description: Storage version of v1alpha1api20201201.KeyVaultSecretReference_Status
                                properties:
                                  $propertyBag:
                                    additionalProperties:
                                      type: string
                                    description: PropertyBag is an unordered set of
                                      stashed information that used for properties
                                      not directly supported by storage resources,
                                      allowing for full fidelity round trip conversions
                                    type: object
                                  secretUrl:
                                    type: string
                                  sourceVault:
                                    description: Storage version of v1alpha1api20201201.SubResource_Status
                                    properties:
                                      $propertyBag:
                                        additionalProperties:
                                          type: string
                                        description: PropertyBag is an unordered set
                                          of stashed information that used for properties
                                          not directly supported by storage resources,
                                          allowing for full fidelity round trip conversions
                                        type: object
                                      id:
                                        type: string
                                    type: object
                                type: object
                              enabled:
                                type: boolean
                              keyEncryptionKey:
                                description: Storage version of v1alpha1api20201201.KeyVaultKeyReference_Status
                                properties:
                                  $propertyBag:
                                    additionalProperties:
                                      type: string
                                    description: PropertyBag is an unordered set of
                                      stashed information that used for properties
                                      not directly supported by storage resources,
                                      allowing for full fidelity round trip conversions
                                    type: object
                                  keyUrl:
                                    type: string
                                  sourceVault:
                                    description: Storage version of v1alpha1api20201201.SubResource_Status
                                    properties:
                                      $propertyBag:
                                        additionalProperties:
                                          type: string
                                        description: PropertyBag is an unordered set
                                          of stashed information that used for properties
                                          not directly supported by storage resources,
                                          allowing for full fidelity round trip conversions
                                        type: object
                                      id:
                                        type: string
                                    type: object
                                type: object
                            type: object
                          type: array
                        name:
                          type: string
                        statuses:
                          items:
                            description: Storage version of v1alpha1api20201201.InstanceViewStatus_Status
                            properties:
                              $propertyBag:
                                additionalProperties:
                                  type: string
                                description: PropertyBag is an unordered set of stashed
                                  information that used for properties not directly
                                  supported by storage resources, allowing for full
                                  fidelity round trip conversions
                                type: object
                              code:
                                type: string
                              displayStatus:
                                type: string
                              level:
                                type: string
                              message:
                                type: string
                              time:
                                type: string
                            type: object
                          type: array
                      type: object
                    type: array
                  extensions:
                    items:
                      description: Storage version of v1alpha1api20201201.VirtualMachineExtensionInstanceView_Status
                      properties:
                        $propertyBag:
                          additionalProperties:
                            type: string
                          description: PropertyBag is an unordered set of stashed
                            information that used for properties not directly supported
                            by storage resources, allowing for full fidelity round
                            trip conversions
                          type: object
                        name:
                          type: string
                        statuses:
                          items:
                            description: Storage version of v1alpha1api20201201.InstanceViewStatus_Status
                            properties:
                              $propertyBag:
                                additionalProperties:
                                  type: string
                                description: PropertyBag is an unordered set of stashed
                                  information that used for properties not directly
                                  supported by storage resources, allowing for full
                                  fidelity round trip conversions
                                type: object
                              code:
                                type: string
                              displayStatus:
                                type: string
                              level:
                                type: string
                              message:
                                type: string
                              time:
                                type: string
                            type: object
                          type: array
                        substatuses:
                          items:
                            description: Storage version of v1alpha1api20201201.InstanceViewStatus_Status
                            properties:
                              $propertyBag:
                                additionalProperties:
                                  type: string
                                description: PropertyBag is an unordered set of stashed
                                  information that used for properties not directly
                                  supported by storage resources, allowing for full
                                  fidelity round trip conversions
                                type: object
                              code:
                                type: string
                              displayStatus:
                                type: string
                              level:
                                type: string
                              message:
                                type: string
                              time:
                                type: string
                            type: object
                          type: array
                        type:
                          type: string
                        typeHandlerVersion:
                          type: string
                      type: object
                    type: array
                  hyperVGeneration:
                    type: string
                  maintenanceRedeployStatus:
                    description: Storage version of v1alpha1api20201201.MaintenanceRedeployStatus_Status
                    properties:
                      $propertyBag:
                        additionalProperties:
                          type: string
                        description: PropertyBag is an unordered set of stashed information
                          that used for properties not directly supported by storage
                          resources, allowing for full fidelity round trip conversions
                        type: object
                      isCustomerInitiatedMaintenanceAllowed:
                        type: boolean
                      lastOperationMessage:
                        type: string
                      lastOperationResultCode:
                        type: string
                      maintenanceWindowEndTime:
                        type: string
                      maintenanceWindowStartTime:
                        type: string
                      preMaintenanceWindowEndTime:
                        type: string
                      preMaintenanceWindowStartTime:
                        type: string
                    type: object
                  osName:
                    type: string
                  osVersion:
                    type: string
                  patchStatus:
                    description: Storage version of v1alpha1api20201201.VirtualMachinePatchStatus_Status
                    properties:
                      $propertyBag:
                        additionalProperties:
                          type: string
                        description: PropertyBag is an unordered set of stashed information
                          that used for properties not directly supported by storage
                          resources, allowing for full fidelity round trip conversions
                        type: object
                      availablePatchSummary:
                        description: Storage version of v1alpha1api20201201.AvailablePatchSummary_Status
                        properties:
                          $propertyBag:
                            additionalProperties:
                              type: string
                            description: PropertyBag is an unordered set of stashed
                              information that used for properties not directly supported
                              by storage resources, allowing for full fidelity round
                              trip conversions
                            type: object
                          assessmentActivityId:
                            type: string
                          criticalAndSecurityPatchCount:
                            type: integer
                          error:
                            description: Storage version of v1alpha1api20201201.ApiError_Status
                            properties:
                              $propertyBag:
                                additionalProperties:
                                  type: string
                                description: PropertyBag is an unordered set of stashed
                                  information that used for properties not directly
                                  supported by storage resources, allowing for full
                                  fidelity round trip conversions
                                type: object
                              code:
                                type: string
                              details:
                                items:
                                  description: Storage version of v1alpha1api20201201.ApiErrorBase_Status
                                  properties:
                                    $propertyBag:
                                      additionalProperties:
                                        type: string
                                      description: PropertyBag is an unordered set
                                        of stashed information that used for properties
                                        not directly supported by storage resources,
                                        allowing for full fidelity round trip conversions
                                      type: object
                                    code:
                                      type: string
                                    message:
                                      type: string
                                    target:
                                      type: string
                                  type: object
                                type: array
                              innererror:
                                description: Storage version of v1alpha1api20201201.InnerError_Status
                                properties:
                                  $propertyBag:
                                    additionalProperties:
                                      type: string
                                    description: PropertyBag is an unordered set of
                                      stashed information that used for properties
                                      not directly supported by storage resources,
                                      allowing for full fidelity round trip conversions
                                    type: object
                                  errordetail:
                                    type: string
                                  exceptiontype:
                                    type: string
                                type: object
                              message:
                                type: string
                              target:
                                type: string
                            type: object
                          lastModifiedTime:
                            type: string
                          otherPatchCount:
                            type: integer
                          rebootPending:
                            type: boolean
                          startTime:
                            type: string
                          status:
                            type: string
                        type: object
                      configurationStatuses:
                        items:
                          description: Storage version of v1alpha1api20201201.InstanceViewStatus_Status
                          properties:
                            $propertyBag:
                              additionalProperties:
                                type: string
                              description: PropertyBag is an unordered set of stashed
                                information that used for properties not directly
                                supported by storage resources, allowing for full
                                fidelity round trip conversions
                              type: object
                            code:
                              type: string
                            displayStatus:
                              type: string
                            level:
                              type: string
                            message:
                              type: string
                            time:
                              type: string
                          type: object
                        type: array
                      lastPatchInstallationSummary:
                        description: Storage version of v1alpha1api20201201.LastPatchInstallationSummary_Status
                        properties:
                          $propertyBag:
                            additionalProperties:
                              type: string
                            description: PropertyBag is an unordered set of stashed
                              information that used for properties not directly supported
                              by storage resources, allowing for full fidelity round
                              trip conversions
                            type: object
                          error:
                            description: Storage version of v1alpha1api20201201.ApiError_Status
                            properties:
                              $propertyBag:
                                additionalProperties:
                                  type: string
                                description: PropertyBag is an unordered set of stashed
                                  information that used for properties not directly
                                  supported by storage resources, allowing for full
                                  fidelity round trip conversions
                                type: object
                              code:
                                type: string
                              details:
                                items:
                                  description: Storage version of v1alpha1api20201201.ApiErrorBase_Status
                                  properties:
                                    $propertyBag:
                                      additionalProperties:
                                        type: string
                                      description: PropertyBag is an unordered set
                                        of stashed information that used for properties
                                        not directly supported by storage resources,
                                        allowing for full fidelity round trip conversions
                                      type: object
                                    code:
                                      type: string
                                    message:
                                      type: string
                                    target:
                                      type: string
                                  type: object
                                type: array
                              innererror:
                                description: Storage version of v1alpha1api20201201.InnerError_Status
                                properties:
                                  $propertyBag:
                                    additionalProperties:
                                      type: string
                                    description: PropertyBag is an unordered set of
                                      stashed information that used for properties
                                      not directly supported by storage resources,
                                      allowing for full fidelity round trip conversions
                                    type: object
                                  errordetail:
                                    type: string
                                  exceptiontype:
                                    type: string
                                type: object
                              message:
                                type: string
                              target:
                                type: string
                            type: object
                          excludedPatchCount:
                            type: integer
                          failedPatchCount:
                            type: integer
                          installationActivityId:
                            type: string
                          installedPatchCount:
                            type: integer
                          lastModifiedTime:
                            type: string
                          maintenanceWindowExceeded:
                            type: boolean
                          notSelectedPatchCount:
                            type: integer
                          pendingPatchCount:
                            type: integer
                          startTime:
                            type: string
                          status:
                            type: string
                        type: object
                    type: object
                  platformFaultDomain:
                    type: integer
                  platformUpdateDomain:
                    type: integer
                  rdpThumbPrint:
                    type: string
                  statuses:
                    items:
                      description: Storage version of v1alpha1api20201201.InstanceViewStatus_Status
                      properties:
                        $propertyBag:
                          additionalProperties:
                            type: string
                          description: PropertyBag is an unordered set of stashed
                            information that used for properties not directly supported
                            by storage resources, allowing for full fidelity round
                            trip conversions
                          type: object
                        code:
                          type: string
                        displayStatus:
                          type: string
                        level:
                          type: string
                        message:
                          type: string
                        time:
                          type: string
                      type: object
                    type: array
                  vmAgent:
                    description: Storage version of v1alpha1api20201201.VirtualMachineAgentInstanceView_Status
                    properties:
                      $propertyBag:
                        additionalProperties:
                          type: string
                        description: PropertyBag is an unordered set of stashed information
                          that used for properties not directly supported by storage
                          resources, allowing for full fidelity round trip conversions
                        type: object
                      extensionHandlers:
                        items:
                          description: Storage version of v1alpha1api20201201.VirtualMachineExtensionHandlerInstanceView_Status
                          properties:
                            $propertyBag:
                              additionalProperties:
                                type: string
                              description: PropertyBag is an unordered set of stashed
                                information that used for properties not directly
                                supported by storage resources, allowing for full
                                fidelity round trip conversions
                              type: object
                            status:
                              description: Storage version of v1alpha1api20201201.InstanceViewStatus_Status
                              properties:
                                $propertyBag:
                                  additionalProperties:
                                    type: string
                                  description: PropertyBag is an unordered set of
                                    stashed information that used for properties not
                                    directly supported by storage resources, allowing
                                    for full fidelity round trip conversions
                                  type: object
                                code:
                                  type: string
                                displayStatus:
                                  type: string
                                level:
                                  type: string
                                message:
                                  type: string
                                time:
                                  type: string
                              type: object
                            type:
                              type: string
                            typeHandlerVersion:
                              type: string
                          type: object
                        type: array
                      statuses:
                        items:
                          description: Storage version of v1alpha1api20201201.InstanceViewStatus_Status
                          properties:
                            $propertyBag:
                              additionalProperties:
                                type: string
                              description: PropertyBag is an unordered set of stashed
                                information that used for properties not directly
                                supported by storage resources, allowing for full
                                fidelity round trip conversions
                              type: object
                            code:
                              type: string
                            displayStatus:
                              type: string
                            level:
                              type: string
                            message:
                              type: string
                            time:
                              type: string
                          type: object
                        type: array
                      vmAgentVersion:
                        type: string
                    type: object
                  vmHealth:
                    description: Storage version of v1alpha1api20201201.VirtualMachineHealthStatus_Status
                    properties:
                      $propertyBag:
                        additionalProperties:
                          type: string
                        description: PropertyBag is an unordered set of stashed information
                          that used for properties not directly supported by storage
                          resources, allowing for full fidelity round trip conversions
                        type: object
                      status:
                        description: Storage version of v1alpha1api20201201.InstanceViewStatus_Status
                        properties:
                          $propertyBag:
                            additionalProperties:
                              type: string
                            description: PropertyBag is an unordered set of stashed
                              information that used for properties not directly supported
                              by storage resources, allowing for full fidelity round
                              trip conversions
                            type: object
                          code:
                            type: string
                          displayStatus:
                            type: string
                          level:
                            type: string
                          message:
                            type: string
                          time:
                            type: string
                        type: object
                    type: object
                type: object
              licenseType:
                type: string
              location:
                type: string
              name:
                type: string
              networkProfile:
                description: Storage version of v1alpha1api20201201.NetworkProfile_Status
                properties:
                  $propertyBag:
                    additionalProperties:
                      type: string
                    description: PropertyBag is an unordered set of stashed information
                      that used for properties not directly supported by storage resources,
                      allowing for full fidelity round trip conversions
                    type: object
                  networkInterfaces:
                    items:
                      description: Storage version of v1alpha1api20201201.NetworkInterfaceReference_Status
                      properties:
                        $propertyBag:
                          additionalProperties:
                            type: string
                          description: PropertyBag is an unordered set of stashed
                            information that used for properties not directly supported
                            by storage resources, allowing for full fidelity round
                            trip conversions
                          type: object
                        id:
                          type: string
                        primary:
                          type: boolean
                      type: object
                    type: array
                type: object
              osProfile:
                description: Storage version of v1alpha1api20201201.OSProfile_Status
                properties:
                  $propertyBag:
                    additionalProperties:
                      type: string
                    description: PropertyBag is an unordered set of stashed information
                      that used for properties not directly supported by storage resources,
                      allowing for full fidelity round trip conversions
                    type: object
                  adminPassword:
                    type: string
                  adminUsername:
                    type: string
                  allowExtensionOperations:
                    type: boolean
                  computerName:
                    type: string
                  customData:
                    type: string
                  linuxConfiguration:
                    description: Storage version of v1alpha1api20201201.LinuxConfiguration_Status
                    properties:
                      $propertyBag:
                        additionalProperties:
                          type: string
                        description: PropertyBag is an unordered set of stashed information
                          that used for properties not directly supported by storage
                          resources, allowing for full fidelity round trip conversions
                        type: object
                      disablePasswordAuthentication:
                        type: boolean
                      patchSettings:
                        description: Storage version of v1alpha1api20201201.LinuxPatchSettings_Status
                        properties:
                          $propertyBag:
                            additionalProperties:
                              type: string
                            description: PropertyBag is an unordered set of stashed
                              information that used for properties not directly supported
                              by storage resources, allowing for full fidelity round
                              trip conversions
                            type: object
                          patchMode:
                            type: string
                        type: object
                      provisionVMAgent:
                        type: boolean
                      ssh:
                        description: Storage version of v1alpha1api20201201.SshConfiguration_Status
                        properties:
                          $propertyBag:
                            additionalProperties:
                              type: string
                            description: PropertyBag is an unordered set of stashed
                              information that used for properties not directly supported
                              by storage resources, allowing for full fidelity round
                              trip conversions
                            type: object
                          publicKeys:
                            items:
                              description: Storage version of v1alpha1api20201201.SshPublicKey_Status
                              properties:
                                $propertyBag:
                                  additionalProperties:
                                    type: string
                                  description: PropertyBag is an unordered set of
                                    stashed information that used for properties not
                                    directly supported by storage resources, allowing
                                    for full fidelity round trip conversions
                                  type: object
                                keyData:
                                  type: string
                                path:
                                  type: string
                              type: object
                            type: array
                        type: object
                    type: object
                  requireGuestProvisionSignal:
                    type: boolean
                  secrets:
                    items:
                      description: Storage version of v1alpha1api20201201.VaultSecretGroup_Status
                      properties:
                        $propertyBag:
                          additionalProperties:
                            type: string
                          description: PropertyBag is an unordered set of stashed
                            information that used for properties not directly supported
                            by storage resources, allowing for full fidelity round
                            trip conversions
                          type: object
                        sourceVault:
                          description: Storage version of v1alpha1api20201201.SubResource_Status
                          properties:
                            $propertyBag:
                              additionalProperties:
                                type: string
                              description: PropertyBag is an unordered set of stashed
                                information that used for properties not directly
                                supported by storage resources, allowing for full
                                fidelity round trip conversions
                              type: object
                            id:
                              type: string
                          type: object
                        vaultCertificates:
                          items:
                            description: Storage version of v1alpha1api20201201.VaultCertificate_Status
                            properties:
                              $propertyBag:
                                additionalProperties:
                                  type: string
                                description: PropertyBag is an unordered set of stashed
                                  information that used for properties not directly
                                  supported by storage resources, allowing for full
                                  fidelity round trip conversions
                                type: object
                              certificateStore:
                                type: string
                              certificateUrl:
                                type: string
                            type: object
                          type: array
                      type: object
                    type: array
                  windowsConfiguration:
                    description: Storage version of v1alpha1api20201201.WindowsConfiguration_Status
                    properties:
                      $propertyBag:
                        additionalProperties:
                          type: string
                        description: PropertyBag is an unordered set of stashed information
                          that used for properties not directly supported by storage
                          resources, allowing for full fidelity round trip conversions
                        type: object
                      additionalUnattendContent:
                        items:
                          description: Storage version of v1alpha1api20201201.AdditionalUnattendContent_Status
                          properties:
                            $propertyBag:
                              additionalProperties:
                                type: string
                              description: PropertyBag is an unordered set of stashed
                                information that used for properties not directly
                                supported by storage resources, allowing for full
                                fidelity round trip conversions
                              type: object
                            componentName:
                              type: string
                            content:
                              type: string
                            passName:
                              type: string
                            settingName:
                              type: string
                          type: object
                        type: array
                      enableAutomaticUpdates:
                        type: boolean
                      patchSettings:
                        description: Storage version of v1alpha1api20201201.PatchSettings_Status
                        properties:
                          $propertyBag:
                            additionalProperties:
                              type: string
                            description: PropertyBag is an unordered set of stashed
                              information that used for properties not directly supported
                              by storage resources, allowing for full fidelity round
                              trip conversions
                            type: object
                          enableHotpatching:
                            type: boolean
                          patchMode:
                            type: string
                        type: object
                      provisionVMAgent:
                        type: boolean
                      timeZone:
                        type: string
                      winRM:
                        description: Storage version of v1alpha1api20201201.WinRMConfiguration_Status
                        properties:
                          $propertyBag:
                            additionalProperties:
                              type: string
                            description: PropertyBag is an unordered set of stashed
                              information that used for properties not directly supported
                              by storage resources, allowing for full fidelity round
                              trip conversions
                            type: object
                          listeners:
                            items:
                              description: Storage version of v1alpha1api20201201.WinRMListener_Status
                              properties:
                                $propertyBag:
                                  additionalProperties:
                                    type: string
                                  description: PropertyBag is an unordered set of
                                    stashed information that used for properties not
                                    directly supported by storage resources, allowing
                                    for full fidelity round trip conversions
                                  type: object
                                certificateUrl:
                                  type: string
                                protocol:
                                  type: string
                              type: object
                            type: array
                        type: object
                    type: object
                type: object
              plan:
                description: Storage version of v1alpha1api20201201.Plan_Status
                properties:
                  $propertyBag:
                    additionalProperties:
                      type: string
                    description: PropertyBag is an unordered set of stashed information
                      that used for properties not directly supported by storage resources,
                      allowing for full fidelity round trip conversions
                    type: object
                  name:
                    type: string
                  product:
                    type: string
                  promotionCode:
                    type: string
                  publisher:
                    type: string
                type: object
              platformFaultDomain:
                type: integer
              priority:
                type: string
              provisioningState:
                type: string
              proximityPlacementGroup:
                description: Storage version of v1alpha1api20201201.SubResource_Status
                properties:
                  $propertyBag:
                    additionalProperties:
                      type: string
                    description: PropertyBag is an unordered set of stashed information
                      that used for properties not directly supported by storage resources,
                      allowing for full fidelity round trip conversions
                    type: object
                  id:
                    type: string
                type: object
              resources:
                items:
                  description: Storage version of v1alpha1api20201201.VirtualMachineExtension_Status
                  properties:
                    $propertyBag:
                      additionalProperties:
                        type: string
                      description: PropertyBag is an unordered set of stashed information
                        that used for properties not directly supported by storage
                        resources, allowing for full fidelity round trip conversions
                      type: object
                    autoUpgradeMinorVersion:
                      type: boolean
                    enableAutomaticUpgrade:
                      type: boolean
                    forceUpdateTag:
                      type: string
                    id:
                      type: string
                    instanceView:
                      description: Storage version of v1alpha1api20201201.VirtualMachineExtensionInstanceView_Status
                      properties:
                        $propertyBag:
                          additionalProperties:
                            type: string
                          description: PropertyBag is an unordered set of stashed
                            information that used for properties not directly supported
                            by storage resources, allowing for full fidelity round
                            trip conversions
                          type: object
                        name:
                          type: string
                        statuses:
                          items:
                            description: Storage version of v1alpha1api20201201.InstanceViewStatus_Status
                            properties:
                              $propertyBag:
                                additionalProperties:
                                  type: string
                                description: PropertyBag is an unordered set of stashed
                                  information that used for properties not directly
                                  supported by storage resources, allowing for full
                                  fidelity round trip conversions
                                type: object
                              code:
                                type: string
                              displayStatus:
                                type: string
                              level:
                                type: string
                              message:
                                type: string
                              time:
                                type: string
                            type: object
                          type: array
                        substatuses:
                          items:
                            description: Storage version of v1alpha1api20201201.InstanceViewStatus_Status
                            properties:
                              $propertyBag:
                                additionalProperties:
                                  type: string
                                description: PropertyBag is an unordered set of stashed
                                  information that used for properties not directly
                                  supported by storage resources, allowing for full
                                  fidelity round trip conversions
                                type: object
                              code:
                                type: string
                              displayStatus:
                                type: string
                              level:
                                type: string
                              message:
                                type: string
                              time:
                                type: string
                            type: object
                          type: array
                        type:
                          type: string
                        typeHandlerVersion:
                          type: string
                      type: object
                    location:
                      type: string
                    name:
                      type: string
                    properties_type:
                      type: string
                    protectedSettings:
                      additionalProperties:
                        x-kubernetes-preserve-unknown-fields: true
                      type: object
                    provisioningState:
                      type: string
                    publisher:
                      type: string
                    settings:
                      additionalProperties:
                        x-kubernetes-preserve-unknown-fields: true
                      type: object
                    tags:
                      additionalProperties:
                        type: string
                      type: object
                    type:
                      type: string
                    typeHandlerVersion:
                      type: string
                  type: object
                type: array
              securityProfile:
                description: Storage version of v1alpha1api20201201.SecurityProfile_Status
                properties:
                  $propertyBag:
                    additionalProperties:
                      type: string
                    description: PropertyBag is an unordered set of stashed information
                      that used for properties not directly supported by storage resources,
                      allowing for full fidelity round trip conversions
                    type: object
                  encryptionAtHost:
                    type: boolean
                  securityType:
                    type: string
                  uefiSettings:
                    description: Storage version of v1alpha1api20201201.UefiSettings_Status
                    properties:
                      $propertyBag:
                        additionalProperties:
                          type: string
                        description: PropertyBag is an unordered set of stashed information
                          that used for properties not directly supported by storage
                          resources, allowing for full fidelity round trip conversions
                        type: object
                      secureBootEnabled:
                        type: boolean
                      vTpmEnabled:
                        type: boolean
                    type: object
                type: object
              storageProfile:
                description: Storage version of v1alpha1api20201201.StorageProfile_Status
                properties:
                  $propertyBag:
                    additionalProperties:
                      type: string
                    description: PropertyBag is an unordered set of stashed information
                      that used for properties not directly supported by storage resources,
                      allowing for full fidelity round trip conversions
                    type: object
                  dataDisks:
                    items:
                      description: Storage version of v1alpha1api20201201.DataDisk_Status
                      properties:
                        $propertyBag:
                          additionalProperties:
                            type: string
                          description: PropertyBag is an unordered set of stashed
                            information that used for properties not directly supported
                            by storage resources, allowing for full fidelity round
                            trip conversions
                          type: object
                        caching:
                          type: string
                        createOption:
                          type: string
                        detachOption:
                          type: string
                        diskIOPSReadWrite:
                          type: integer
                        diskMBpsReadWrite:
                          type: integer
                        diskSizeGB:
                          type: integer
                        image:
                          description: Storage version of v1alpha1api20201201.VirtualHardDisk_Status
                          properties:
                            $propertyBag:
                              additionalProperties:
                                type: string
                              description: PropertyBag is an unordered set of stashed
                                information that used for properties not directly
                                supported by storage resources, allowing for full
                                fidelity round trip conversions
                              type: object
                            uri:
                              type: string
                          type: object
                        lun:
                          type: integer
                        managedDisk:
                          description: Storage version of v1alpha1api20201201.ManagedDiskParameters_Status
                          properties:
                            $propertyBag:
                              additionalProperties:
                                type: string
                              description: PropertyBag is an unordered set of stashed
                                information that used for properties not directly
                                supported by storage resources, allowing for full
                                fidelity round trip conversions
                              type: object
                            diskEncryptionSet:
                              description: Storage version of v1alpha1api20201201.SubResource_Status
                              properties:
                                $propertyBag:
                                  additionalProperties:
                                    type: string
                                  description: PropertyBag is an unordered set of
                                    stashed information that used for properties not
                                    directly supported by storage resources, allowing
                                    for full fidelity round trip conversions
                                  type: object
                                id:
                                  type: string
                              type: object
                            id:
                              type: string
                            storageAccountType:
                              type: string
                          type: object
                        name:
                          type: string
                        toBeDetached:
                          type: boolean
                        vhd:
                          description: Storage version of v1alpha1api20201201.VirtualHardDisk_Status
                          properties:
                            $propertyBag:
                              additionalProperties:
                                type: string
                              description: PropertyBag is an unordered set of stashed
                                information that used for properties not directly
                                supported by storage resources, allowing for full
                                fidelity round trip conversions
                              type: object
                            uri:
                              type: string
                          type: object
                        writeAcceleratorEnabled:
                          type: boolean
                      type: object
                    type: array
                  imageReference:
                    description: Storage version of v1alpha1api20201201.ImageReference_Status
                    properties:
                      $propertyBag:
                        additionalProperties:
                          type: string
                        description: PropertyBag is an unordered set of stashed information
                          that used for properties not directly supported by storage
                          resources, allowing for full fidelity round trip conversions
                        type: object
                      exactVersion:
                        type: string
                      id:
                        type: string
                      offer:
                        type: string
                      publisher:
                        type: string
                      sku:
                        type: string
                      version:
                        type: string
                    type: object
                  osDisk:
                    description: Storage version of v1alpha1api20201201.OSDisk_Status
                    properties:
                      $propertyBag:
                        additionalProperties:
                          type: string
                        description: PropertyBag is an unordered set of stashed information
                          that used for properties not directly supported by storage
                          resources, allowing for full fidelity round trip conversions
                        type: object
                      caching:
                        type: string
                      createOption:
                        type: string
                      diffDiskSettings:
                        description: Storage version of v1alpha1api20201201.DiffDiskSettings_Status
                        properties:
                          $propertyBag:
                            additionalProperties:
                              type: string
                            description: PropertyBag is an unordered set of stashed
                              information that used for properties not directly supported
                              by storage resources, allowing for full fidelity round
                              trip conversions
                            type: object
                          option:
                            type: string
                          placement:
                            type: string
                        type: object
                      diskSizeGB:
                        type: integer
                      encryptionSettings:
                        description: Storage version of v1alpha1api20201201.DiskEncryptionSettings_Status
                        properties:
                          $propertyBag:
                            additionalProperties:
                              type: string
                            description: PropertyBag is an unordered set of stashed
                              information that used for properties not directly supported
                              by storage resources, allowing for full fidelity round
                              trip conversions
                            type: object
                          diskEncryptionKey:
                            description: Storage version of v1alpha1api20201201.KeyVaultSecretReference_Status
                            properties:
                              $propertyBag:
                                additionalProperties:
                                  type: string
                                description: PropertyBag is an unordered set of stashed
                                  information that used for properties not directly
                                  supported by storage resources, allowing for full
                                  fidelity round trip conversions
                                type: object
                              secretUrl:
                                type: string
                              sourceVault:
                                description: Storage version of v1alpha1api20201201.SubResource_Status
                                properties:
                                  $propertyBag:
                                    additionalProperties:
                                      type: string
                                    description: PropertyBag is an unordered set of
                                      stashed information that used for properties
                                      not directly supported by storage resources,
                                      allowing for full fidelity round trip conversions
                                    type: object
                                  id:
                                    type: string
                                type: object
                            type: object
                          enabled:
                            type: boolean
                          keyEncryptionKey:
                            description: Storage version of v1alpha1api20201201.KeyVaultKeyReference_Status
                            properties:
                              $propertyBag:
                                additionalProperties:
                                  type: string
                                description: PropertyBag is an unordered set of stashed
                                  information that used for properties not directly
                                  supported by storage resources, allowing for full
                                  fidelity round trip conversions
                                type: object
                              keyUrl:
                                type: string
                              sourceVault:
                                description: Storage version of v1alpha1api20201201.SubResource_Status
                                properties:
                                  $propertyBag:
                                    additionalProperties:
                                      type: string
                                    description: PropertyBag is an unordered set of
                                      stashed information that used for properties
                                      not directly supported by storage resources,
                                      allowing for full fidelity round trip conversions
                                    type: object
                                  id:
                                    type: string
                                type: object
                            type: object
                        type: object
                      image:
                        description: Storage version of v1alpha1api20201201.VirtualHardDisk_Status
                        properties:
                          $propertyBag:
                            additionalProperties:
                              type: string
                            description: PropertyBag is an unordered set of stashed
                              information that used for properties not directly supported
                              by storage resources, allowing for full fidelity round
                              trip conversions
                            type: object
                          uri:
                            type: string
                        type: object
                      managedDisk:
                        description: Storage version of v1alpha1api20201201.ManagedDiskParameters_Status
                        properties:
                          $propertyBag:
                            additionalProperties:
                              type: string
                            description: PropertyBag is an unordered set of stashed
                              information that used for properties not directly supported
                              by storage resources, allowing for full fidelity round
                              trip conversions
                            type: object
                          diskEncryptionSet:
                            description: Storage version of v1alpha1api20201201.SubResource_Status
                            properties:
                              $propertyBag:
                                additionalProperties:
                                  type: string
                                description: PropertyBag is an unordered set of stashed
                                  information that used for properties not directly
                                  supported by storage resources, allowing for full
                                  fidelity round trip conversions
                                type: object
                              id:
                                type: string
                            type: object
                          id:
                            type: string
                          storageAccountType:
                            type: string
                        type: object
                      name:
                        type: string
                      osType:
                        type: string
                      vhd:
                        description: Storage version of v1alpha1api20201201.VirtualHardDisk_Status
                        properties:
                          $propertyBag:
                            additionalProperties:
                              type: string
                            description: PropertyBag is an unordered set of stashed
                              information that used for properties not directly supported
                              by storage resources, allowing for full fidelity round
                              trip conversions
                            type: object
                          uri:
                            type: string
                        type: object
                      writeAcceleratorEnabled:
                        type: boolean
                    type: object
                type: object
              tags:
                additionalProperties:
                  type: string
                type: object
              type:
                type: string
              virtualMachineScaleSet:
                description: Storage version of v1alpha1api20201201.SubResource_Status
                properties:
                  $propertyBag:
                    additionalProperties:
                      type: string
                    description: PropertyBag is an unordered set of stashed information
                      that used for properties not directly supported by storage resources,
                      allowing for full fidelity round trip conversions
                    type: object
                  id:
                    type: string
                type: object
              vmId:
                type: string
              zones:
                items:
                  type: string
                type: array
            type: object
        type: object
    served: true
    storage: true
    subresources:
      status: {}
status:
  acceptedNames:
    kind: ""
    plural: ""
  conditions: []
  storedVersions: []
