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: virtualmachinescalesets.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: VirtualMachineScaleSet
    listKind: VirtualMachineScaleSetList
    plural: virtualmachinescalesets
    singular: virtualmachinescaleset
  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/virtualMachineScaleSets'
        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
              automaticRepairsPolicy:
                description: 'AutomaticRepairsPolicy: Specifies the configuration
                  parameters for automatic repairs on the virtual machine scale set.'
                properties:
                  enabled:
                    description: 'Enabled: Specifies whether automatic repairs should
                      be enabled on the virtual machine scale set. The default value
                      is false.'
                    type: boolean
                  gracePeriod:
                    description: 'GracePeriod: The amount of time for which automatic
                      repairs are suspended due to a state change on VM. The grace
                      time starts after the state change has completed. This helps
                      avoid premature or accidental repairs. The time duration should
                      be specified in ISO 8601 format. The minimum allowed grace period
                      is 30 minutes (PT30M), which is also the default value. The
                      maximum allowed grace period is 90 minutes (PT90M).'
                    type: string
                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
              doNotRunExtensionsOnOverprovisionedVMs:
                description: 'DoNotRunExtensionsOnOverprovisionedVMs: When Overprovision
                  is enabled, extensions are launched only on the requested number
                  of VMs which are finally kept. This property will hence ensure that
                  the extensions do not run on the extra overprovisioned VMs.'
                type: boolean
              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
              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 scale set.'
                properties:
                  type:
                    description: 'Type: The type of identity used for the virtual
                      machine scale set. 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 scale set.'
                    enum:
                    - None
                    - SystemAssigned
                    - SystemAssigned, UserAssigned
                    - UserAssigned
                    type: string
                type: object
              location:
                description: 'Location: Location to deploy resource to'
                type: string
              orchestrationMode:
                description: 'OrchestrationMode: Specifies the orchestration mode
                  for the virtual machine scale set.'
                enum:
                - Flexible
                - Uniform
                type: string
              overprovision:
                description: 'Overprovision: Specifies whether the Virtual Machine
                  Scale Set should be overprovisioned.'
                type: boolean
              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
              platformFaultDomainCount:
                description: 'PlatformFaultDomainCount: Fault Domain count for each
                  placement group.'
                type: integer
              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
              scaleInPolicy:
                description: 'ScaleInPolicy: Describes a scale-in policy for a virtual
                  machine scale set.'
                properties:
                  rules:
                    description: 'Rules: The rules to be followed when scaling-in
                      a virtual machine scale set. Possible values are: Default When
                      a virtual machine scale set is scaled in, the scale set will
                      first be balanced across zones if it is a zonal scale set. Then,
                      it will be balanced across Fault Domains as far as possible.
                      Within each Fault Domain, the virtual machines chosen for removal
                      will be the newest ones that are not protected from scale-in.
                      OldestVM When a virtual machine scale set is being scaled-in,
                      the oldest virtual machines that are not protected from scale-in
                      will be chosen for removal. For zonal virtual machine scale
                      sets, the scale set will first be balanced across zones. Within
                      each zone, the oldest virtual machines that are not protected
                      will be chosen for removal. NewestVM When a virtual machine
                      scale set is being scaled-in, the newest virtual machines that
                      are not protected from scale-in will be chosen for removal.
                      For zonal virtual machine scale sets, the scale set will first
                      be balanced across zones. Within each zone, the newest virtual
                      machines that are not protected will be chosen for removal.'
                    items:
                      enum:
                      - Default
                      - NewestVM
                      - OldestVM
                      type: string
                    type: array
                type: object
              singlePlacementGroup:
                description: 'SinglePlacementGroup: When true this limits the scale
                  set to a single placement group, of max size 100 virtual machines.
                  NOTE: If singlePlacementGroup is true, it may be modified to false.
                  However, if singlePlacementGroup is false, it may not be modified
                  to true.'
                type: boolean
              sku:
                description: 'Sku: Describes a virtual machine scale set sku. NOTE:
                  If the new VM SKU is not supported on the hardware the scale set
                  is currently on, you need to deallocate the VMs in the scale set
                  before you modify the SKU name.'
                properties:
                  capacity:
                    description: 'Capacity: Specifies the number of virtual machines
                      in the scale set.'
                    type: integer
                  name:
                    description: 'Name: The sku name.'
                    type: string
                  tier:
                    description: 'Tier: Specifies the tier of virtual machines in
                      a scale set. Possible Values: Standard Basic'
                    type: string
                type: object
              tags:
                additionalProperties:
                  type: string
                description: 'Tags: Name-value pairs to add to the resource'
                type: object
              upgradePolicy:
                description: 'UpgradePolicy: Describes an upgrade policy - automatic,
                  manual, or rolling.'
                properties:
                  automaticOSUpgradePolicy:
                    description: 'AutomaticOSUpgradePolicy: The configuration parameters
                      used for performing automatic OS upgrade.'
                    properties:
                      disableAutomaticRollback:
                        description: 'DisableAutomaticRollback: Whether OS image rollback
                          feature should be disabled. Default value is false.'
                        type: boolean
                      enableAutomaticOSUpgrade:
                        description: 'EnableAutomaticOSUpgrade: Indicates whether
                          OS upgrades should automatically be applied to scale set
                          instances in a rolling fashion when a newer version of the
                          OS image becomes available. Default value is false. If this
                          is set to true for Windows based scale sets, [enableAutomaticUpdates](https://docs.microsoft.com/dotnet/api/microsoft.azure.management.compute.models.windowsconfiguration.enableautomaticupdates?view=azure-dotnet)
                          is automatically set to false and cannot be set to true.'
                        type: boolean
                    type: object
                  mode:
                    description: 'Mode: Specifies the mode of an upgrade to virtual
                      machines in the scale set. Possible values are: Manual - You  control
                      the application of updates to virtual machines in the scale
                      set. You do this by using the manualUpgrade action. Automatic
                      - All virtual machines in the scale set are  automatically updated
                      at the same time.'
                    enum:
                    - Automatic
                    - Manual
                    - Rolling
                    type: string
                  rollingUpgradePolicy:
                    description: 'RollingUpgradePolicy: The configuration parameters
                      used while performing a rolling upgrade.'
                    properties:
                      enableCrossZoneUpgrade:
                        description: 'EnableCrossZoneUpgrade: Allow VMSS to ignore
                          AZ boundaries when constructing upgrade batches. Take into
                          consideration the Update Domain and maxBatchInstancePercent
                          to determine the batch size.'
                        type: boolean
                      maxBatchInstancePercent:
                        description: 'MaxBatchInstancePercent: The maximum percent
                          of total virtual machine instances that will be upgraded
                          simultaneously by the rolling upgrade in one batch. As this
                          is a maximum, unhealthy instances in previous or future
                          batches can cause the percentage of instances in a batch
                          to decrease to ensure higher reliability. The default value
                          for this parameter is 20%.'
                        maximum: 100
                        minimum: 5
                        type: integer
                      maxUnhealthyInstancePercent:
                        description: 'MaxUnhealthyInstancePercent: The maximum percentage
                          of the total virtual machine instances in the scale set
                          that can be simultaneously unhealthy, either as a result
                          of being upgraded, or by being found in an unhealthy state
                          by the virtual machine health checks before the rolling
                          upgrade aborts. This constraint will be checked prior to
                          starting any batch. The default value for this parameter
                          is 20%.'
                        maximum: 100
                        minimum: 5
                        type: integer
                      maxUnhealthyUpgradedInstancePercent:
                        description: 'MaxUnhealthyUpgradedInstancePercent: The maximum
                          percentage of upgraded virtual machine instances that can
                          be found to be in an unhealthy state. This check will happen
                          after each batch is upgraded. If this percentage is ever
                          exceeded, the rolling update aborts. The default value for
                          this parameter is 20%.'
                        maximum: 100
                        minimum: 0
                        type: integer
                      pauseTimeBetweenBatches:
                        description: 'PauseTimeBetweenBatches: The wait time between
                          completing the update for all virtual machines in one batch
                          and starting the next batch. The time duration should be
                          specified in ISO 8601 format. The default value is 0 seconds
                          (PT0S).'
                        type: string
                      prioritizeUnhealthyInstances:
                        description: 'PrioritizeUnhealthyInstances: Upgrade all unhealthy
                          instances in a scale set before any healthy instances.'
                        type: boolean
                    type: object
                type: object
              virtualMachineProfile:
                description: 'VirtualMachineProfile: Describes a virtual machine scale
                  set virtual machine profile.'
                properties:
                  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
                  extensionProfile:
                    description: 'ExtensionProfile: Describes a virtual machine scale
                      set extension profile.'
                    properties:
                      extensions:
                        description: 'Extensions: The virtual machine scale set child
                          extension resources.'
                        items:
                          properties:
                            name:
                              description: 'Name: The name of the extension.'
                              type: string
                            publisher:
                              description: 'Publisher: Microsoft.Compute/extensions
                                - Publisher'
                              minLength: 1
                              type: string
                            settings:
                              additionalProperties:
                                x-kubernetes-preserve-unknown-fields: true
                              description: 'Settings: Microsoft.Compute/extensions
                                - Settings'
                              type: object
                            type:
                              description: 'Type: Microsoft.Compute/extensions - Type'
                              minLength: 1
                              type: string
                            typeHandlerVersion:
                              description: 'TypeHandlerVersion: Microsoft.Compute/extensions
                                - Type handler version'
                              minLength: 1
                              type: string
                          type: object
                        type: array
                      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
                    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
                  networkProfile:
                    description: 'NetworkProfile: Describes a virtual machine scale
                      set network profile.'
                    properties:
                      healthProbe:
                        description: 'HealthProbe: The API entity reference.'
                        properties:
                          reference:
                            description: 'Reference: The ARM resource id in the form
                              of /subscriptions/{SubscriptionId}/resourceGroups/{ResourceGroupName}/...'
                            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
                      networkInterfaceConfigurations:
                        description: 'NetworkInterfaceConfigurations: The list of
                          network configurations.'
                        items:
                          properties:
                            dnsSettings:
                              description: 'DnsSettings: Describes a virtual machines
                                scale sets network configuration''s DNS settings.'
                              properties:
                                dnsServers:
                                  description: 'DnsServers: List of DNS servers IP
                                    addresses'
                                  items:
                                    type: string
                                  type: array
                              type: object
                            enableAcceleratedNetworking:
                              description: 'EnableAcceleratedNetworking: Specifies
                                whether the network interface is accelerated networking-enabled.'
                              type: boolean
                            enableFpga:
                              description: 'EnableFpga: Specifies whether the network
                                interface is FPGA networking-enabled.'
                              type: boolean
                            enableIPForwarding:
                              description: 'EnableIPForwarding: Whether IP forwarding
                                enabled on this NIC.'
                              type: boolean
                            id:
                              description: 'Id: Resource Id'
                              type: string
                            ipConfigurations:
                              description: 'IpConfigurations: Specifies the IP configurations
                                of the network interface.'
                              items:
                                properties:
                                  applicationGatewayBackendAddressPools:
                                    description: 'ApplicationGatewayBackendAddressPools:
                                      Specifies an array of references to backend
                                      address pools of application gateways. A scale
                                      set can reference backend address pools of multiple
                                      application gateways. Multiple scale sets cannot
                                      use the same application gateway.'
                                    items:
                                      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
                                    type: array
                                  applicationSecurityGroups:
                                    description: 'ApplicationSecurityGroups: Specifies
                                      an array of references to application security
                                      group.'
                                    items:
                                      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
                                    type: array
                                  id:
                                    description: 'Id: Resource Id'
                                    type: string
                                  loadBalancerBackendAddressPools:
                                    description: 'LoadBalancerBackendAddressPools:
                                      Specifies an array of references to backend
                                      address pools of load balancers. A scale set
                                      can reference backend address pools of one public
                                      and one internal load balancer. Multiple scale
                                      sets cannot use the same basic sku load balancer.'
                                    items:
                                      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
                                    type: array
                                  loadBalancerInboundNatPools:
                                    description: 'LoadBalancerInboundNatPools: Specifies
                                      an array of references to inbound Nat pools
                                      of the load balancers. A scale set can reference
                                      inbound nat pools of one public and one internal
                                      load balancer. Multiple scale sets cannot use
                                      the same basic sku load balancer.'
                                    items:
                                      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
                                    type: array
                                  name:
                                    description: 'Name: The IP configuration name.'
                                    type: string
                                  primary:
                                    description: 'Primary: Specifies the primary network
                                      interface in case the virtual machine has more
                                      than 1 network interface.'
                                    type: boolean
                                  privateIPAddressVersion:
                                    description: 'PrivateIPAddressVersion: Available
                                      from Api-Version 2017-03-30 onwards, it represents
                                      whether the specific ipconfiguration is IPv4
                                      or IPv6. Default is taken as IPv4.  Possible
                                      values are: ''IPv4'' and ''IPv6''.'
                                    enum:
                                    - IPv4
                                    - IPv6
                                    type: string
                                  publicIPAddressConfiguration:
                                    description: 'PublicIPAddressConfiguration: Describes
                                      a virtual machines scale set IP Configuration''s
                                      PublicIPAddress configuration'
                                    properties:
                                      dnsSettings:
                                        description: 'DnsSettings: Describes a virtual
                                          machines scale sets network configuration''s
                                          DNS settings.'
                                        properties:
                                          domainNameLabel:
                                            description: 'DomainNameLabel: The Domain
                                              name label.The concatenation of the
                                              domain name label and vm index will
                                              be the domain name labels of the PublicIPAddress
                                              resources that will be created'
                                            type: string
                                        required:
                                        - domainNameLabel
                                        type: object
                                      idleTimeoutInMinutes:
                                        description: 'IdleTimeoutInMinutes: The idle
                                          timeout of the public IP address.'
                                        type: integer
                                      ipTags:
                                        description: 'IpTags: The list of IP tags
                                          associated with the public IP address.'
                                        items:
                                          description: 'Generated from: https://schema.management.azure.com/schemas/2020-12-01/Microsoft.Compute.json#/definitions/VirtualMachineScaleSetIpTag'
                                          properties:
                                            ipTagType:
                                              description: 'IpTagType: IP tag type.
                                                Example: FirstPartyUsage.'
                                              type: string
                                            tag:
                                              description: 'Tag: IP tag associated
                                                with the public IP. Example: SQL,
                                                Storage etc.'
                                              type: string
                                          type: object
                                        type: array
                                      name:
                                        description: 'Name: The publicIP address configuration
                                          name.'
                                        type: string
                                      publicIPAddressVersion:
                                        description: 'PublicIPAddressVersion: Available
                                          from Api-Version 2019-07-01 onwards, it
                                          represents whether the specific ipconfiguration
                                          is IPv4 or IPv6. Default is taken as IPv4.
                                          Possible values are: ''IPv4'' and ''IPv6''.'
                                        enum:
                                        - IPv4
                                        - IPv6
                                        type: string
                                      publicIPPrefix:
                                        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:
                                    - name
                                    type: object
                                  subnet:
                                    description: 'Subnet: The API entity reference.'
                                    properties:
                                      reference:
                                        description: 'Reference: The ARM resource
                                          id in the form of /subscriptions/{SubscriptionId}/resourceGroups/{ResourceGroupName}/...'
                                        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:
                                - name
                                type: object
                              type: array
                            name:
                              description: 'Name: The network configuration name.'
                              type: string
                            networkSecurityGroup:
                              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
                            primary:
                              description: 'Primary: Specifies the primary network
                                interface in case the virtual machine has more than
                                1 network interface.'
                              type: boolean
                          required:
                          - name
                          type: object
                        type: array
                    type: object
                  osProfile:
                    description: 'OsProfile: Describes a virtual machine scale set
                      OS profile.'
                    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. 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
                      computerNamePrefix:
                        description: 'ComputerNamePrefix: Specifies the computer name
                          prefix for all of the virtual machines in the scale set.
                          Computer name prefixes must be 1 to 15 characters long.'
                        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. For
                          using cloud-init for your 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
                      secrets:
                        description: 'Secrets: Specifies set of certificates that
                          should be installed onto the virtual machines in the scale
                          set.'
                        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
                  priority:
                    description: 'Priority: Specifies the priority for the virtual
                      machines in the scale set. Minimum api-version: 2017-10-30-preview.'
                    enum:
                    - Low
                    - Regular
                    - Spot
                    type: string
                  scheduledEventsProfile:
                    description: 'Generated from: https://schema.management.azure.com/schemas/2020-12-01/Microsoft.Compute.json#/definitions/ScheduledEventsProfile'
                    properties:
                      terminateNotificationProfile:
                        description: 'Generated from: https://schema.management.azure.com/schemas/2020-12-01/Microsoft.Compute.json#/definitions/TerminateNotificationProfile'
                        properties:
                          enable:
                            description: 'Enable: Specifies whether the Terminate
                              Scheduled event is enabled or disabled.'
                            type: boolean
                          notBeforeTimeout:
                            description: 'NotBeforeTimeout: Configurable length of
                              time a Virtual Machine being deleted will have to potentially
                              approve the Terminate Scheduled Event before the event
                              is auto approved (timed out). The configuration must
                              be specified in ISO 8601 format, the default value is
                              5 minutes (PT5M)'
                            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: Describes a virtual machine scale
                      set storage profile.'
                    properties:
                      dataDisks:
                        description: 'DataDisks: Specifies the parameters that are
                          used to add data disks to the virtual machines in the scale
                          set. 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/VirtualMachineScaleSetDataDisk'
                          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: The create option.'
                              enum:
                              - Attach
                              - Empty
                              - FromImage
                              type: string
                            diskIOPSReadWrite:
                              description: 'DiskIOPSReadWrite: Specifies the Read-Write
                                IOPS for the managed disk. Should be used only when
                                StorageAccountType is UltraSSD_LRS. If not specified,
                                a default value would be assigned based on diskSizeGB.'
                              type: integer
                            diskMBpsReadWrite:
                              description: 'DiskMBpsReadWrite: Specifies the bandwidth
                                in MB per second for the managed disk. Should be used
                                only when StorageAccountType is UltraSSD_LRS. If not
                                specified, a default value would be assigned based
                                on diskSizeGB.'
                              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
                            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: Describes the parameters
                                of a ScaleSet 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
                                storageAccountType:
                                  description: 'StorageAccountType: Specifies the
                                    storage account type for the managed disk. 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
                            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: Describes a virtual machine scale set
                          operating system disk.'
                        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
                              machines in the scale set should be created. The only
                              allowed value is: 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 the operating
                              system 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
                          managedDisk:
                            description: 'ManagedDisk: Describes the parameters of
                              a ScaleSet 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
                              storageAccountType:
                                description: 'StorageAccountType: Specifies the storage
                                  account type for the managed disk. 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
                          vhdContainers:
                            description: 'VhdContainers: Specifies the container urls
                              that are used to store operating system disks for the
                              scale set.'
                            items:
                              type: string
                            type: array
                          writeAcceleratorEnabled:
                            description: 'WriteAcceleratorEnabled: Specifies whether
                              writeAccelerator should be enabled or disabled on the
                              disk.'
                            type: boolean
                        required:
                        - createOption
                        type: object
                    type: object
                type: object
              zoneBalance:
                description: 'ZoneBalance: Whether to force strictly even Virtual
                  Machine distribution cross x-zones in case there is zone outage.'
                type: boolean
              zones:
                description: 'Zones: The virtual machine scale set zones. NOTE: Availability
                  zones can only be set when you create the scale set'
                items:
                  type: string
                type: array
            required:
            - owner
            type: object
          status:
            properties:
              additionalCapabilities:
                description: 'AdditionalCapabilities: Specifies additional capabilities
                  enabled or disabled on the Virtual Machines in the Virtual Machine
                  Scale Set. For instance: whether the Virtual Machines have the capability
                  to support attaching managed data disks with UltraSSD_LRS storage
                  account type.'
                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
              automaticRepairsPolicy:
                description: 'AutomaticRepairsPolicy: Policy for automatic repairs.'
                properties:
                  enabled:
                    description: 'Enabled: Specifies whether automatic repairs should
                      be enabled on the virtual machine scale set. The default value
                      is false.'
                    type: boolean
                  gracePeriod:
                    description: 'GracePeriod: The amount of time for which automatic
                      repairs are suspended due to a state change on VM. The grace
                      time starts after the state change has completed. This helps
                      avoid premature or accidental repairs. The time duration should
                      be specified in ISO 8601 format. The minimum allowed grace period
                      is 30 minutes (PT30M), which is also the default value. The
                      maximum allowed grace period is 90 minutes (PT90M).'
                    type: string
                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
              doNotRunExtensionsOnOverprovisionedVMs:
                description: 'DoNotRunExtensionsOnOverprovisionedVMs: When Overprovision
                  is enabled, extensions are launched only on the requested number
                  of VMs which are finally kept. This property will hence ensure that
                  the extensions do not run on the extra overprovisioned VMs.'
                type: boolean
              extendedLocation:
                description: 'ExtendedLocation: The extended location of the Virtual
                  Machine Scale Set.'
                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
              hostGroup:
                description: 'HostGroup: Specifies information about the dedicated
                  host group that the virtual machine scale set resides in. Minimum
                  api-version: 2020-06-01.'
                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 scale
                  set, if configured.'
                properties:
                  principalId:
                    description: 'PrincipalId: The principal id of virtual machine
                      scale set 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 scale set. 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 scale set. 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 scale set.'
                    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 scale set. 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
              location:
                description: 'Location: Resource location'
                type: string
              name:
                description: 'Name: Resource name'
                type: string
              orchestrationMode:
                description: 'OrchestrationMode: Specifies the orchestration mode
                  for the virtual machine scale set.'
                type: string
              overprovision:
                description: 'Overprovision: Specifies whether the Virtual Machine
                  Scale Set should be overprovisioned.'
                type: boolean
              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
              platformFaultDomainCount:
                description: 'PlatformFaultDomainCount: Fault Domain count for each
                  placement group.'
                type: integer
              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 scale set
                  should be assigned to. Minimum api-version: 2018-04-01.'
                properties:
                  id:
                    description: 'Id: Resource Id'
                    type: string
                type: object
              scaleInPolicy:
                description: 'ScaleInPolicy: Specifies the scale-in policy that decides
                  which virtual machines are chosen for removal when a Virtual Machine
                  Scale Set is scaled-in.'
                properties:
                  rules:
                    description: 'Rules: The rules to be followed when scaling-in
                      a virtual machine scale set. Possible values are: Default When
                      a virtual machine scale set is scaled in, the scale set will
                      first be balanced across zones if it is a zonal scale set. Then,
                      it will be balanced across Fault Domains as far as possible.
                      Within each Fault Domain, the virtual machines chosen for removal
                      will be the newest ones that are not protected from scale-in.
                      OldestVM When a virtual machine scale set is being scaled-in,
                      the oldest virtual machines that are not protected from scale-in
                      will be chosen for removal. For zonal virtual machine scale
                      sets, the scale set will first be balanced across zones. Within
                      each zone, the oldest virtual machines that are not protected
                      will be chosen for removal. NewestVM When a virtual machine
                      scale set is being scaled-in, the newest virtual machines that
                      are not protected from scale-in will be chosen for removal.
                      For zonal virtual machine scale sets, the scale set will first
                      be balanced across zones. Within each zone, the newest virtual
                      machines that are not protected will be chosen for removal.'
                    items:
                      type: string
                    type: array
                type: object
              singlePlacementGroup:
                description: 'SinglePlacementGroup: When true this limits the scale
                  set to a single placement group, of max size 100 virtual machines.
                  NOTE: If singlePlacementGroup is true, it may be modified to false.
                  However, if singlePlacementGroup is false, it may not be modified
                  to true.'
                type: boolean
              sku:
                description: 'Sku: The virtual machine scale set sku.'
                properties:
                  capacity:
                    description: 'Capacity: Specifies the number of virtual machines
                      in the scale set.'
                    type: integer
                  name:
                    description: 'Name: The sku name.'
                    type: string
                  tier:
                    description: 'Tier: Specifies the tier of virtual machines in
                      a scale set. Possible Values: Standard Basic'
                    type: string
                type: object
              tags:
                additionalProperties:
                  type: string
                description: 'Tags: Resource tags'
                type: object
              type:
                description: 'Type: Resource type'
                type: string
              uniqueId:
                description: 'UniqueId: Specifies the ID which uniquely identifies
                  a Virtual Machine Scale Set.'
                type: string
              upgradePolicy:
                description: 'UpgradePolicy: The upgrade policy.'
                properties:
                  automaticOSUpgradePolicy:
                    description: 'AutomaticOSUpgradePolicy: Configuration parameters
                      used for performing automatic OS Upgrade.'
                    properties:
                      disableAutomaticRollback:
                        description: 'DisableAutomaticRollback: Whether OS image rollback
                          feature should be disabled. Default value is false.'
                        type: boolean
                      enableAutomaticOSUpgrade:
                        description: 'EnableAutomaticOSUpgrade: Indicates whether
                          OS upgrades should automatically be applied to scale set
                          instances in a rolling fashion when a newer version of the
                          OS image becomes available. Default value is false. If this
                          is set to true for Windows based scale sets, [enableAutomaticUpdates](https://docs.microsoft.com/dotnet/api/microsoft.azure.management.compute.models.windowsconfiguration.enableautomaticupdates?view=azure-dotnet)
                          is automatically set to false and cannot be set to true.'
                        type: boolean
                    type: object
                  mode:
                    description: 'Mode: Specifies the mode of an upgrade to virtual
                      machines in the scale set. Possible values are: Manual - You  control
                      the application of updates to virtual machines in the scale
                      set. You do this by using the manualUpgrade action. Automatic
                      - All virtual machines in the scale set are  automatically updated
                      at the same time.'
                    type: string
                  rollingUpgradePolicy:
                    description: 'RollingUpgradePolicy: The configuration parameters
                      used while performing a rolling upgrade.'
                    properties:
                      enableCrossZoneUpgrade:
                        description: 'EnableCrossZoneUpgrade: Allow VMSS to ignore
                          AZ boundaries when constructing upgrade batches. Take into
                          consideration the Update Domain and maxBatchInstancePercent
                          to determine the batch size.'
                        type: boolean
                      maxBatchInstancePercent:
                        description: 'MaxBatchInstancePercent: The maximum percent
                          of total virtual machine instances that will be upgraded
                          simultaneously by the rolling upgrade in one batch. As this
                          is a maximum, unhealthy instances in previous or future
                          batches can cause the percentage of instances in a batch
                          to decrease to ensure higher reliability. The default value
                          for this parameter is 20%.'
                        type: integer
                      maxUnhealthyInstancePercent:
                        description: 'MaxUnhealthyInstancePercent: The maximum percentage
                          of the total virtual machine instances in the scale set
                          that can be simultaneously unhealthy, either as a result
                          of being upgraded, or by being found in an unhealthy state
                          by the virtual machine health checks before the rolling
                          upgrade aborts. This constraint will be checked prior to
                          starting any batch. The default value for this parameter
                          is 20%.'
                        type: integer
                      maxUnhealthyUpgradedInstancePercent:
                        description: 'MaxUnhealthyUpgradedInstancePercent: The maximum
                          percentage of upgraded virtual machine instances that can
                          be found to be in an unhealthy state. This check will happen
                          after each batch is upgraded. If this percentage is ever
                          exceeded, the rolling update aborts. The default value for
                          this parameter is 20%.'
                        type: integer
                      pauseTimeBetweenBatches:
                        description: 'PauseTimeBetweenBatches: The wait time between
                          completing the update for all virtual machines in one batch
                          and starting the next batch. The time duration should be
                          specified in ISO 8601 format. The default value is 0 seconds
                          (PT0S).'
                        type: string
                      prioritizeUnhealthyInstances:
                        description: 'PrioritizeUnhealthyInstances: Upgrade all unhealthy
                          instances in a scale set before any healthy instances.'
                        type: boolean
                    type: object
                type: object
              virtualMachineProfile:
                description: 'VirtualMachineProfile: The virtual machine profile.'
                properties:
                  billingProfile:
                    description: 'BillingProfile: Specifies the billing related details
                      of a Azure Spot 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.'
                    type: string
                  extensionProfile:
                    description: 'ExtensionProfile: Specifies a collection of settings
                      for extensions installed on virtual machines in the scale set.'
                    properties:
                      extensions:
                        description: 'Extensions: The virtual machine scale set 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: If a value is provided
                                and is different from the previous value, the extension
                                handler will be forced to update even if the extension
                                configuration has not changed.'
                              type: string
                            id:
                              description: 'Id: Resource Id'
                              type: string
                            name:
                              description: 'Name: The name of the extension.'
                              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
                            provisionAfterExtensions:
                              description: 'ProvisionAfterExtensions: Collection of
                                extension names after which this extension needs to
                                be provisioned.'
                              items:
                                type: string
                              type: array
                            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
                            type:
                              description: 'Type: Resource type'
                              type: string
                            typeHandlerVersion:
                              description: 'TypeHandlerVersion: Specifies the version
                                of the script handler.'
                              type: string
                          type: object
                        type: array
                      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
                    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
                  networkProfile:
                    description: 'NetworkProfile: Specifies properties of the network
                      interfaces of the virtual machines in the scale set.'
                    properties:
                      healthProbe:
                        description: 'HealthProbe: A reference to a load balancer
                          probe used to determine the health of an instance in the
                          virtual machine scale set. The reference will be in the
                          form: ''/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/loadBalancers/{loadBalancerName}/probes/{probeName}''.'
                        properties:
                          id:
                            description: 'Id: The ARM resource id in the form of /subscriptions/{SubscriptionId}/resourceGroups/{ResourceGroupName}/...'
                            type: string
                        type: object
                      networkInterfaceConfigurations:
                        description: 'NetworkInterfaceConfigurations: The list of
                          network configurations.'
                        items:
                          properties:
                            dnsSettings:
                              description: 'DnsSettings: The dns settings to be applied
                                on the network interfaces.'
                              properties:
                                dnsServers:
                                  description: 'DnsServers: List of DNS servers IP
                                    addresses'
                                  items:
                                    type: string
                                  type: array
                              type: object
                            enableAcceleratedNetworking:
                              description: 'EnableAcceleratedNetworking: Specifies
                                whether the network interface is accelerated networking-enabled.'
                              type: boolean
                            enableFpga:
                              description: 'EnableFpga: Specifies whether the network
                                interface is FPGA networking-enabled.'
                              type: boolean
                            enableIPForwarding:
                              description: 'EnableIPForwarding: Whether IP forwarding
                                enabled on this NIC.'
                              type: boolean
                            id:
                              description: 'Id: Resource Id'
                              type: string
                            ipConfigurations:
                              description: 'IpConfigurations: Specifies the IP configurations
                                of the network interface.'
                              items:
                                properties:
                                  applicationGatewayBackendAddressPools:
                                    description: 'ApplicationGatewayBackendAddressPools:
                                      Specifies an array of references to backend
                                      address pools of application gateways. A scale
                                      set can reference backend address pools of multiple
                                      application gateways. Multiple scale sets cannot
                                      use the same application gateway.'
                                    items:
                                      properties:
                                        id:
                                          description: 'Id: Resource Id'
                                          type: string
                                      type: object
                                    type: array
                                  applicationSecurityGroups:
                                    description: 'ApplicationSecurityGroups: Specifies
                                      an array of references to application security
                                      group.'
                                    items:
                                      properties:
                                        id:
                                          description: 'Id: Resource Id'
                                          type: string
                                      type: object
                                    type: array
                                  id:
                                    description: 'Id: Resource Id'
                                    type: string
                                  loadBalancerBackendAddressPools:
                                    description: 'LoadBalancerBackendAddressPools:
                                      Specifies an array of references to backend
                                      address pools of load balancers. A scale set
                                      can reference backend address pools of one public
                                      and one internal load balancer. Multiple scale
                                      sets cannot use the same basic sku load balancer.'
                                    items:
                                      properties:
                                        id:
                                          description: 'Id: Resource Id'
                                          type: string
                                      type: object
                                    type: array
                                  loadBalancerInboundNatPools:
                                    description: 'LoadBalancerInboundNatPools: Specifies
                                      an array of references to inbound Nat pools
                                      of the load balancers. A scale set can reference
                                      inbound nat pools of one public and one internal
                                      load balancer. Multiple scale sets cannot use
                                      the same basic sku load balancer.'
                                    items:
                                      properties:
                                        id:
                                          description: 'Id: Resource Id'
                                          type: string
                                      type: object
                                    type: array
                                  name:
                                    description: 'Name: The IP configuration name.'
                                    type: string
                                  primary:
                                    description: 'Primary: Specifies the primary network
                                      interface in case the virtual machine has more
                                      than 1 network interface.'
                                    type: boolean
                                  privateIPAddressVersion:
                                    description: 'PrivateIPAddressVersion: Available
                                      from Api-Version 2017-03-30 onwards, it represents
                                      whether the specific ipconfiguration is IPv4
                                      or IPv6. Default is taken as IPv4.  Possible
                                      values are: ''IPv4'' and ''IPv6''.'
                                    type: string
                                  publicIPAddressConfiguration:
                                    description: 'PublicIPAddressConfiguration: The
                                      publicIPAddressConfiguration.'
                                    properties:
                                      dnsSettings:
                                        description: 'DnsSettings: The dns settings
                                          to be applied on the publicIP addresses
                                          .'
                                        properties:
                                          domainNameLabel:
                                            description: 'DomainNameLabel: The Domain
                                              name label.The concatenation of the
                                              domain name label and vm index will
                                              be the domain name labels of the PublicIPAddress
                                              resources that will be created'
                                            type: string
                                        required:
                                        - domainNameLabel
                                        type: object
                                      idleTimeoutInMinutes:
                                        description: 'IdleTimeoutInMinutes: The idle
                                          timeout of the public IP address.'
                                        type: integer
                                      ipTags:
                                        description: 'IpTags: The list of IP tags
                                          associated with the public IP address.'
                                        items:
                                          properties:
                                            ipTagType:
                                              description: 'IpTagType: IP tag type.
                                                Example: FirstPartyUsage.'
                                              type: string
                                            tag:
                                              description: 'Tag: IP tag associated
                                                with the public IP. Example: SQL,
                                                Storage etc.'
                                              type: string
                                          type: object
                                        type: array
                                      name:
                                        description: 'Name: The publicIP address configuration
                                          name.'
                                        type: string
                                      publicIPAddressVersion:
                                        description: 'PublicIPAddressVersion: Available
                                          from Api-Version 2019-07-01 onwards, it
                                          represents whether the specific ipconfiguration
                                          is IPv4 or IPv6. Default is taken as IPv4.
                                          Possible values are: ''IPv4'' and ''IPv6''.'
                                        type: string
                                      publicIPPrefix:
                                        description: 'PublicIPPrefix: The PublicIPPrefix
                                          from which to allocate publicIP addresses.'
                                        properties:
                                          id:
                                            description: 'Id: Resource Id'
                                            type: string
                                        type: object
                                    required:
                                    - name
                                    type: object
                                  subnet:
                                    description: 'Subnet: Specifies the identifier
                                      of the subnet.'
                                    properties:
                                      id:
                                        description: 'Id: The ARM resource id in the
                                          form of /subscriptions/{SubscriptionId}/resourceGroups/{ResourceGroupName}/...'
                                        type: string
                                    type: object
                                required:
                                - name
                                type: object
                              type: array
                            name:
                              description: 'Name: The network configuration name.'
                              type: string
                            networkSecurityGroup:
                              description: 'NetworkSecurityGroup: The network security
                                group.'
                              properties:
                                id:
                                  description: 'Id: Resource Id'
                                  type: string
                              type: object
                            primary:
                              description: 'Primary: Specifies the primary network
                                interface in case the virtual machine has more than
                                1 network interface.'
                              type: boolean
                          required:
                          - name
                          type: object
                        type: array
                    type: object
                  osProfile:
                    description: 'OsProfile: Specifies the operating system settings
                      for the virtual machines in the scale set.'
                    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. 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
                      computerNamePrefix:
                        description: 'ComputerNamePrefix: Specifies the computer name
                          prefix for all of the virtual machines in the scale set.
                          Computer name prefixes must be 1 to 15 characters long.'
                        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. For
                          using cloud-init for your 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
                      secrets:
                        description: 'Secrets: Specifies set of certificates that
                          should be installed onto the virtual machines in the scale
                          set.'
                        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
                  priority:
                    description: 'Priority: Specifies the priority for the virtual
                      machines in the scale set. Minimum api-version: 2017-10-30-preview'
                    type: string
                  scheduledEventsProfile:
                    description: 'ScheduledEventsProfile: Specifies Scheduled Event
                      related configurations.'
                    properties:
                      terminateNotificationProfile:
                        description: 'TerminateNotificationProfile: Specifies Terminate
                          Scheduled Event related configurations.'
                        properties:
                          enable:
                            description: 'Enable: Specifies whether the Terminate
                              Scheduled event is enabled or disabled.'
                            type: boolean
                          notBeforeTimeout:
                            description: 'NotBeforeTimeout: Configurable length of
                              time a Virtual Machine being deleted will have to potentially
                              approve the Terminate Scheduled Event before the event
                              is auto approved (timed out). The configuration must
                              be specified in ISO 8601 format, the default value is
                              5 minutes (PT5M)'
                            type: string
                        type: object
                    type: object
                  securityProfile:
                    description: 'SecurityProfile: Specifies the Security related
                      profile settings for the virtual machines in the 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.'
                        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 data disks to the virtual machines in the scale
                          set. 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: The create option.'
                              type: string
                            diskIOPSReadWrite:
                              description: 'DiskIOPSReadWrite: Specifies the Read-Write
                                IOPS for the managed disk. Should be used only when
                                StorageAccountType is UltraSSD_LRS. If not specified,
                                a default value would be assigned based on diskSizeGB.'
                              type: integer
                            diskMBpsReadWrite:
                              description: 'DiskMBpsReadWrite: Specifies the bandwidth
                                in MB per second for the managed disk. Should be used
                                only when StorageAccountType is UltraSSD_LRS. If not
                                specified, a default value would be assigned based
                                on diskSizeGB.'
                              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
                            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
                                storageAccountType:
                                  description: 'StorageAccountType: Specifies the
                                    storage account type for the managed disk. 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
                            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 machines in the scale set.
                          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
                              machines in the scale set should be created. The only
                              allowed value is: 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 scale set.'
                            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 the operating
                              system 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: Specifies information about the unmanaged
                              user image to base the scale set on.'
                            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
                              storageAccountType:
                                description: 'StorageAccountType: Specifies the storage
                                  account type for the managed disk. 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
                          vhdContainers:
                            description: 'VhdContainers: Specifies the container urls
                              that are used to store operating system disks for the
                              scale set.'
                            items:
                              type: string
                            type: array
                          writeAcceleratorEnabled:
                            description: 'WriteAcceleratorEnabled: Specifies whether
                              writeAccelerator should be enabled or disabled on the
                              disk.'
                            type: boolean
                        required:
                        - createOption
                        type: object
                    type: object
                type: object
              zoneBalance:
                description: 'ZoneBalance: Whether to force strictly even Virtual
                  Machine distribution cross x-zones in case there is zone outage.'
                type: boolean
              zones:
                description: 'Zones: The virtual machine scale set zones. NOTE: Availability
                  zones can only be set when you create the scale set'
                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.VirtualMachineScaleSet
          Generated from: https://schema.management.azure.com/schemas/2020-12-01/Microsoft.Compute.json#/resourceDefinitions/virtualMachineScaleSets'
        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.VirtualMachineScaleSets_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
              automaticRepairsPolicy:
                description: 'Storage version of v1alpha1api20201201.AutomaticRepairsPolicy
                  Generated from: https://schema.management.azure.com/schemas/2020-12-01/Microsoft.Compute.json#/definitions/AutomaticRepairsPolicy'
                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
                  gracePeriod:
                    type: string
                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
              doNotRunExtensionsOnOverprovisionedVMs:
                type: boolean
              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
              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.VirtualMachineScaleSetIdentity
                  Generated from: https://schema.management.azure.com/schemas/2020-12-01/Microsoft.Compute.json#/definitions/VirtualMachineScaleSetIdentity'
                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
                type: object
              location:
                type: string
              orchestrationMode:
                type: string
              originalVersion:
                type: string
              overprovision:
                type: boolean
              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
              platformFaultDomainCount:
                type: integer
              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
              scaleInPolicy:
                description: 'Storage version of v1alpha1api20201201.ScaleInPolicy
                  Generated from: https://schema.management.azure.com/schemas/2020-12-01/Microsoft.Compute.json#/definitions/ScaleInPolicy'
                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
                  rules:
                    items:
                      type: string
                    type: array
                type: object
              singlePlacementGroup:
                type: boolean
              sku:
                description: 'Storage version of v1alpha1api20201201.Sku Generated
                  from: https://schema.management.azure.com/schemas/2020-12-01/Microsoft.Compute.json#/definitions/Sku'
                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
                  capacity:
                    type: integer
                  name:
                    type: string
                  tier:
                    type: string
                type: object
              tags:
                additionalProperties:
                  type: string
                type: object
              upgradePolicy:
                description: 'Storage version of v1alpha1api20201201.UpgradePolicy
                  Generated from: https://schema.management.azure.com/schemas/2020-12-01/Microsoft.Compute.json#/definitions/UpgradePolicy'
                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
                  automaticOSUpgradePolicy:
                    description: 'Storage version of v1alpha1api20201201.AutomaticOSUpgradePolicy
                      Generated from: https://schema.management.azure.com/schemas/2020-12-01/Microsoft.Compute.json#/definitions/AutomaticOSUpgradePolicy'
                    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
                      disableAutomaticRollback:
                        type: boolean
                      enableAutomaticOSUpgrade:
                        type: boolean
                    type: object
                  mode:
                    type: string
                  rollingUpgradePolicy:
                    description: 'Storage version of v1alpha1api20201201.RollingUpgradePolicy
                      Generated from: https://schema.management.azure.com/schemas/2020-12-01/Microsoft.Compute.json#/definitions/RollingUpgradePolicy'
                    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
                      enableCrossZoneUpgrade:
                        type: boolean
                      maxBatchInstancePercent:
                        type: integer
                      maxUnhealthyInstancePercent:
                        type: integer
                      maxUnhealthyUpgradedInstancePercent:
                        type: integer
                      pauseTimeBetweenBatches:
                        type: string
                      prioritizeUnhealthyInstances:
                        type: boolean
                    type: object
                type: object
              virtualMachineProfile:
                description: Storage version of v1alpha1api20201201.VirtualMachineScaleSets_Spec_Properties_VirtualMachineProfile
                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
                  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
                  extensionProfile:
                    description: Storage version of v1alpha1api20201201.VirtualMachineScaleSets_Spec_Properties_VirtualMachineProfile_ExtensionProfile
                    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
                      extensions:
                        items:
                          description: Storage version of v1alpha1api20201201.VirtualMachineScaleSets_Spec_Properties_VirtualMachineProfile_ExtensionProfile_Extensions
                          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
                            publisher:
                              type: string
                            settings:
                              additionalProperties:
                                x-kubernetes-preserve-unknown-fields: true
                              type: object
                            type:
                              type: string
                            typeHandlerVersion:
                              type: string
                          type: object
                        type: array
                      extensionsTimeBudget:
                        type: string
                    type: object
                  licenseType:
                    type: string
                  networkProfile:
                    description: Storage version of v1alpha1api20201201.VirtualMachineScaleSets_Spec_Properties_VirtualMachineProfile_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
                      healthProbe:
                        description: 'Storage version of v1alpha1api20201201.ApiEntityReference
                          Generated from: https://schema.management.azure.com/schemas/2020-12-01/Microsoft.Compute.json#/definitions/ApiEntityReference'
                        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: The ARM resource id in the form
                              of /subscriptions/{SubscriptionId}/resourceGroups/{ResourceGroupName}/...'
                            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
                      networkInterfaceConfigurations:
                        items:
                          description: Storage version of v1alpha1api20201201.VirtualMachineScaleSets_Spec_Properties_VirtualMachineProfile_NetworkProfile_NetworkInterfaceConfigurations
                          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
                            dnsSettings:
                              description: 'Storage version of v1alpha1api20201201.VirtualMachineScaleSetNetworkConfigurationDnsSettings
                                Generated from: https://schema.management.azure.com/schemas/2020-12-01/Microsoft.Compute.json#/definitions/VirtualMachineScaleSetNetworkConfigurationDnsSettings'
                              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
                                dnsServers:
                                  items:
                                    type: string
                                  type: array
                              type: object
                            enableAcceleratedNetworking:
                              type: boolean
                            enableFpga:
                              type: boolean
                            enableIPForwarding:
                              type: boolean
                            id:
                              type: string
                            ipConfigurations:
                              items:
                                description: Storage version of v1alpha1api20201201.VirtualMachineScaleSets_Spec_Properties_VirtualMachineProfile_NetworkProfile_NetworkInterfaceConfigurations_Properties_IpConfigurations
                                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
                                  applicationGatewayBackendAddressPools:
                                    items:
                                      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: array
                                  applicationSecurityGroups:
                                    items:
                                      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: array
                                  id:
                                    type: string
                                  loadBalancerBackendAddressPools:
                                    items:
                                      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: array
                                  loadBalancerInboundNatPools:
                                    items:
                                      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: array
                                  name:
                                    type: string
                                  primary:
                                    type: boolean
                                  privateIPAddressVersion:
                                    type: string
                                  publicIPAddressConfiguration:
                                    description: Storage version of v1alpha1api20201201.VirtualMachineScaleSets_Spec_Properties_VirtualMachineProfile_NetworkProfile_NetworkInterfaceConfigurations_Properties_IpConfigurations_Properties_PublicIPAddressConfiguration
                                    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
                                      dnsSettings:
                                        description: 'Storage version of v1alpha1api20201201.VirtualMachineScaleSetPublicIPAddressConfigurationDnsSettings
                                          Generated from: https://schema.management.azure.com/schemas/2020-12-01/Microsoft.Compute.json#/definitions/VirtualMachineScaleSetPublicIPAddressConfigurationDnsSettings'
                                        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
                                          domainNameLabel:
                                            type: string
                                        type: object
                                      idleTimeoutInMinutes:
                                        type: integer
                                      ipTags:
                                        items:
                                          description: 'Storage version of v1alpha1api20201201.VirtualMachineScaleSetIpTag
                                            Generated from: https://schema.management.azure.com/schemas/2020-12-01/Microsoft.Compute.json#/definitions/VirtualMachineScaleSetIpTag'
                                          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
                                            ipTagType:
                                              type: string
                                            tag:
                                              type: string
                                          type: object
                                        type: array
                                      name:
                                        type: string
                                      publicIPAddressVersion:
                                        type: string
                                      publicIPPrefix:
                                        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
                                  subnet:
                                    description: 'Storage version of v1alpha1api20201201.ApiEntityReference
                                      Generated from: https://schema.management.azure.com/schemas/2020-12-01/Microsoft.Compute.json#/definitions/ApiEntityReference'
                                    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: The ARM resource
                                          id in the form of /subscriptions/{SubscriptionId}/resourceGroups/{ResourceGroupName}/...'
                                        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: array
                            name:
                              type: string
                            networkSecurityGroup:
                              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
                            primary:
                              type: boolean
                          type: object
                        type: array
                    type: object
                  osProfile:
                    description: 'Storage version of v1alpha1api20201201.VirtualMachineScaleSetOSProfile
                      Generated from: https://schema.management.azure.com/schemas/2020-12-01/Microsoft.Compute.json#/definitions/VirtualMachineScaleSetOSProfile'
                    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
                      computerNamePrefix:
                        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
                      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
                  priority:
                    type: string
                  scheduledEventsProfile:
                    description: 'Storage version of v1alpha1api20201201.ScheduledEventsProfile
                      Generated from: https://schema.management.azure.com/schemas/2020-12-01/Microsoft.Compute.json#/definitions/ScheduledEventsProfile'
                    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
                      terminateNotificationProfile:
                        description: 'Storage version of v1alpha1api20201201.TerminateNotificationProfile
                          Generated from: https://schema.management.azure.com/schemas/2020-12-01/Microsoft.Compute.json#/definitions/TerminateNotificationProfile'
                        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
                          enable:
                            type: boolean
                          notBeforeTimeout:
                            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.VirtualMachineScaleSetStorageProfile
                      Generated from: https://schema.management.azure.com/schemas/2020-12-01/Microsoft.Compute.json#/definitions/VirtualMachineScaleSetStorageProfile'
                    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.VirtualMachineScaleSetDataDisk
                            Generated from: https://schema.management.azure.com/schemas/2020-12-01/Microsoft.Compute.json#/definitions/VirtualMachineScaleSetDataDisk'
                          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
                            diskIOPSReadWrite:
                              type: integer
                            diskMBpsReadWrite:
                              type: integer
                            diskSizeGB:
                              type: integer
                            lun:
                              type: integer
                            managedDisk:
                              description: 'Storage version of v1alpha1api20201201.VirtualMachineScaleSetManagedDiskParameters
                                Generated from: https://schema.management.azure.com/schemas/2020-12-01/Microsoft.Compute.json#/definitions/VirtualMachineScaleSetManagedDiskParameters'
                              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
                                storageAccountType:
                                  type: string
                              type: object
                            name:
                              type: string
                            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.VirtualMachineScaleSetOSDisk
                          Generated from: https://schema.management.azure.com/schemas/2020-12-01/Microsoft.Compute.json#/definitions/VirtualMachineScaleSetOSDisk'
                        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
                          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.VirtualMachineScaleSetManagedDiskParameters
                              Generated from: https://schema.management.azure.com/schemas/2020-12-01/Microsoft.Compute.json#/definitions/VirtualMachineScaleSetManagedDiskParameters'
                            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
                              storageAccountType:
                                type: string
                            type: object
                          name:
                            type: string
                          osType:
                            type: string
                          vhdContainers:
                            items:
                              type: string
                            type: array
                          writeAcceleratorEnabled:
                            type: boolean
                        type: object
                    type: object
                type: object
              zoneBalance:
                type: boolean
              zones:
                items:
                  type: string
                type: array
            required:
            - owner
            type: object
          status:
            description: Storage version of v1alpha1api20201201.VirtualMachineScaleSet_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
              automaticRepairsPolicy:
                description: Storage version of v1alpha1api20201201.AutomaticRepairsPolicy_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
                  gracePeriod:
                    type: string
                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
              doNotRunExtensionsOnOverprovisionedVMs:
                type: boolean
              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
              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.VirtualMachineScaleSetIdentity_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.VirtualMachineScaleSetIdentity_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
              location:
                type: string
              name:
                type: string
              orchestrationMode:
                type: string
              overprovision:
                type: boolean
              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
              platformFaultDomainCount:
                type: integer
              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
              scaleInPolicy:
                description: Storage version of v1alpha1api20201201.ScaleInPolicy_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
                  rules:
                    items:
                      type: string
                    type: array
                type: object
              singlePlacementGroup:
                type: boolean
              sku:
                description: Storage version of v1alpha1api20201201.Sku_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
                  capacity:
                    type: integer
                  name:
                    type: string
                  tier:
                    type: string
                type: object
              tags:
                additionalProperties:
                  type: string
                type: object
              type:
                type: string
              uniqueId:
                type: string
              upgradePolicy:
                description: Storage version of v1alpha1api20201201.UpgradePolicy_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
                  automaticOSUpgradePolicy:
                    description: Storage version of v1alpha1api20201201.AutomaticOSUpgradePolicy_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
                      disableAutomaticRollback:
                        type: boolean
                      enableAutomaticOSUpgrade:
                        type: boolean
                    type: object
                  mode:
                    type: string
                  rollingUpgradePolicy:
                    description: Storage version of v1alpha1api20201201.RollingUpgradePolicy_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
                      enableCrossZoneUpgrade:
                        type: boolean
                      maxBatchInstancePercent:
                        type: integer
                      maxUnhealthyInstancePercent:
                        type: integer
                      maxUnhealthyUpgradedInstancePercent:
                        type: integer
                      pauseTimeBetweenBatches:
                        type: string
                      prioritizeUnhealthyInstances:
                        type: boolean
                    type: object
                type: object
              virtualMachineProfile:
                description: Storage version of v1alpha1api20201201.VirtualMachineScaleSetVMProfile_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
                  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
                  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
                  extensionProfile:
                    description: Storage version of v1alpha1api20201201.VirtualMachineScaleSetExtensionProfile_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
                      extensions:
                        items:
                          description: Storage version of v1alpha1api20201201.VirtualMachineScaleSetExtension_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
                            name:
                              type: string
                            properties_type:
                              type: string
                            protectedSettings:
                              additionalProperties:
                                x-kubernetes-preserve-unknown-fields: true
                              type: object
                            provisionAfterExtensions:
                              items:
                                type: string
                              type: array
                            provisioningState:
                              type: string
                            publisher:
                              type: string
                            settings:
                              additionalProperties:
                                x-kubernetes-preserve-unknown-fields: true
                              type: object
                            type:
                              type: string
                            typeHandlerVersion:
                              type: string
                          type: object
                        type: array
                      extensionsTimeBudget:
                        type: string
                    type: object
                  licenseType:
                    type: string
                  networkProfile:
                    description: Storage version of v1alpha1api20201201.VirtualMachineScaleSetNetworkProfile_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
                      healthProbe:
                        description: Storage version of v1alpha1api20201201.ApiEntityReference_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
                      networkInterfaceConfigurations:
                        items:
                          description: Storage version of v1alpha1api20201201.VirtualMachineScaleSetNetworkConfiguration_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
                            dnsSettings:
                              description: Storage version of v1alpha1api20201201.VirtualMachineScaleSetNetworkConfigurationDnsSettings_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
                                dnsServers:
                                  items:
                                    type: string
                                  type: array
                              type: object
                            enableAcceleratedNetworking:
                              type: boolean
                            enableFpga:
                              type: boolean
                            enableIPForwarding:
                              type: boolean
                            id:
                              type: string
                            ipConfigurations:
                              items:
                                description: Storage version of v1alpha1api20201201.VirtualMachineScaleSetIPConfiguration_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
                                  applicationGatewayBackendAddressPools:
                                    items:
                                      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: array
                                  applicationSecurityGroups:
                                    items:
                                      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: array
                                  id:
                                    type: string
                                  loadBalancerBackendAddressPools:
                                    items:
                                      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: array
                                  loadBalancerInboundNatPools:
                                    items:
                                      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: array
                                  name:
                                    type: string
                                  primary:
                                    type: boolean
                                  privateIPAddressVersion:
                                    type: string
                                  publicIPAddressConfiguration:
                                    description: Storage version of v1alpha1api20201201.VirtualMachineScaleSetPublicIPAddressConfiguration_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
                                      dnsSettings:
                                        description: Storage version of v1alpha1api20201201.VirtualMachineScaleSetPublicIPAddressConfigurationDnsSettings_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
                                          domainNameLabel:
                                            type: string
                                        type: object
                                      idleTimeoutInMinutes:
                                        type: integer
                                      ipTags:
                                        items:
                                          description: Storage version of v1alpha1api20201201.VirtualMachineScaleSetIpTag_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
                                            ipTagType:
                                              type: string
                                            tag:
                                              type: string
                                          type: object
                                        type: array
                                      name:
                                        type: string
                                      publicIPAddressVersion:
                                        type: string
                                      publicIPPrefix:
                                        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
                                  subnet:
                                    description: Storage version of v1alpha1api20201201.ApiEntityReference_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: array
                            name:
                              type: string
                            networkSecurityGroup:
                              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
                            primary:
                              type: boolean
                          type: object
                        type: array
                    type: object
                  osProfile:
                    description: Storage version of v1alpha1api20201201.VirtualMachineScaleSetOSProfile_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
                      computerNamePrefix:
                        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
                      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
                  priority:
                    type: string
                  scheduledEventsProfile:
                    description: Storage version of v1alpha1api20201201.ScheduledEventsProfile_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
                      terminateNotificationProfile:
                        description: Storage version of v1alpha1api20201201.TerminateNotificationProfile_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
                          enable:
                            type: boolean
                          notBeforeTimeout:
                            type: string
                        type: object
                    type: object
                  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.VirtualMachineScaleSetStorageProfile_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.VirtualMachineScaleSetDataDisk_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
                            diskIOPSReadWrite:
                              type: integer
                            diskMBpsReadWrite:
                              type: integer
                            diskSizeGB:
                              type: integer
                            lun:
                              type: integer
                            managedDisk:
                              description: Storage version of v1alpha1api20201201.VirtualMachineScaleSetManagedDiskParameters_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
                                storageAccountType:
                                  type: string
                              type: object
                            name:
                              type: string
                            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.VirtualMachineScaleSetOSDisk_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
                          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.VirtualMachineScaleSetManagedDiskParameters_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
                              storageAccountType:
                                type: string
                            type: object
                          name:
                            type: string
                          osType:
                            type: string
                          vhdContainers:
                            items:
                              type: string
                            type: array
                          writeAcceleratorEnabled:
                            type: boolean
                        type: object
                    type: object
                type: object
              zoneBalance:
                type: boolean
              zones:
                items:
                  type: string
                type: array
            type: object
        type: object
    served: true
    storage: true
    subresources:
      status: {}
status:
  acceptedNames:
    kind: ""
    plural: ""
  conditions: []
  storedVersions: []
