apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  annotations:
    controller-gen.kubebuilder.io/version: v0.14.0
    kustomize.config.k8s.io/id: |
      group: apiextensions.k8s.io
      kind: CustomResourceDefinition
      name: kubernetesclusternodepools.containerservice.azure.upbound.io
      version: v1
  name: kubernetesclusternodepools.containerservice.azure.upbound.io
spec:
  conversion:
    strategy: Webhook
    webhook:
      clientConfig:
        caBundle: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUVHRENDQXdDZ0F3SUJBZ0lDQitZd0RRWUpLb1pJaHZjTkFRRUxCUUF3V2pFT01Bd0dBMVVFQmhNRlJXRnkKZEdneERqQU1CZ05WQkFnVEJVVmhjblJvTVE0d0RBWURWUVFIRXdWRllYSjBhREVUTUJFR0ExVUVDaE1LUTNKdgpjM053YkdGdVpURVRNQkVHQTFVRUF4TUtRM0p2YzNOd2JHRnVaVEFlRncweU5ERXhNalV3T0RNNE1EWmFGdzB6Ck5ERXhNalV3T0RNNE1EWmFNRm94RGpBTUJnTlZCQVlUQlVWaGNuUm9NUTR3REFZRFZRUUlFd1ZGWVhKMGFERU8KTUF3R0ExVUVCeE1GUldGeWRHZ3hFekFSQmdOVkJBb1RDa055YjNOemNHeGhibVV4RXpBUkJnTlZCQU1UQ2tOeQpiM056Y0d4aGJtVXdnZ0VpTUEwR0NTcUdTSWIzRFFFQkFRVUFBNElCRHdBd2dnRUtBb0lCQVFETW5QVmI4VnhCClBCUm8ycHoyUENLbzQwVjMzVHlFZWdXNjRmYzBUeDBjY0NRODlvM0lSbk02Z3FrVFhqcUh2UlUxdXJsUFUvUVkKNEVqNHpzM2xQVERIaU9rWm5BNlNKRElHOWxiWHhwUTdTWm9QdE5tVmszQ2RVT0FjOHlGTVBaOWwrMTR4Y3IvQgpDa21EQUorVThoOG5HWTBNYmNFeG81VHJTZEtveklYY0VRb1ZZTXQvQ3V0dmREWVN5L3A4TmtyMXNOOGwzbXNFClZ4VEdsblJqbXVMKzdqS2FMT1E4dmVhZXFHbWN3VFNwT3ZNdGtLT0tMMUNoaGNMT2g5a1NUdkM5K3hZbFE0NVAKNitRekNxQmVWYVVOaU1kc280d3VCUkN3RFpadi9DTXpQc1F5NVBWckEyK0NBN3E3NFdRdTJaa1RTd0QvaWEvNAovWjAwMzA2UW1pU0JBZ01CQUFHamdlY3dnZVF3RGdZRFZSMFBBUUgvQkFRREFnU3dNQk1HQTFVZEpRUU1NQW9HCkNDc0dBUVVGQndNQk1Bd0dBMVVkRXdFQi93UUNNQUF3Z2E0R0ExVWRFUVNCcGpDQm80SW5kWEJpYjNWdVpDMXcKY205MmFXUmxjaTFoZW5WeVpTMWpiMjUwWVdsdVpYSnpaWEoyYVdObGdqbDFjR0p2ZFc1a0xYQnliM1pwWkdWeQpMV0Y2ZFhKbExXTnZiblJoYVc1bGNuTmxjblpwWTJVdVkzSnZjM053YkdGdVpTMXplWE4wWlcyQ1BYVndZbTkxCmJtUXRjSEp2ZG1sa1pYSXRZWHAxY21VdFkyOXVkR0ZwYm1WeWMyVnlkbWxqWlM1amNtOXpjM0JzWVc1bExYTjUKYzNSbGJTNXpkbU13RFFZSktvWklodmNOQVFFTEJRQURnZ0VCQURObGpXblJydFhadm9XVWlqUENaTnRrUk1JUgo1dXgvQk9BU20yNldiQXAwZGo2bTN0Y0lOTENUS2lkelpLcHdpVlYxaHdnM0V0VVVCeUJuMnI5T3VLVDVmSFczCk1xdjVUb2ExdXI2bGtudlV0WnF6SktXcTRreFhRdzRZMVhMaVROSWhQTzc5dGNLODJvZmt0Y2pmTGJwdk9seHcKL1kvN0tHalRCWTBQdm5uNEpKcXg3MndUUzN0MEovSCtzQThESFFzbzRBbUl0eTBPcXY2YndQYnp2MnN6djNYTQpTODBiNHV3Q0RUa0ZzWnBNNWtuS1ZyZzAzM0xKcGhrUHpNUHlCNTlhZTdOV2duWkdoWlllRnErOFlhVC9jQnpQCkdmbXRKT3EwTkJXS253VUMzM2ZlZjhNYUd0OXFLTUhwZzlzUXlwZ0dSc3Q3SlVhM3lvOEdQSko5TFlFPQotLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCg==
        service:
          name: upbound-provider-azure-containerservice
          namespace: crossplane-system
          path: /convert
          port: 9443
      conversionReviewVersions:
      - v1
  group: containerservice.azure.upbound.io
  names:
    categories:
    - crossplane
    - managed
    - azure
    kind: KubernetesClusterNodePool
    listKind: KubernetesClusterNodePoolList
    plural: kubernetesclusternodepools
    singular: kubernetesclusternodepool
  scope: Cluster
  versions:
  - additionalPrinterColumns:
    - jsonPath: .status.conditions[?(@.type=='Synced')].status
      name: SYNCED
      type: string
    - jsonPath: .status.conditions[?(@.type=='Ready')].status
      name: READY
      type: string
    - jsonPath: .metadata.annotations.crossplane\.io/external-name
      name: EXTERNAL-NAME
      type: string
    - jsonPath: .metadata.creationTimestamp
      name: AGE
      type: date
    name: v1beta1
    schema:
      openAPIV3Schema:
        description: KubernetesClusterNodePool is the Schema for the KubernetesClusterNodePools
          API. Manages a Node Pool within a Kubernetes Cluster
        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: KubernetesClusterNodePoolSpec defines the desired state of
              KubernetesClusterNodePool
            properties:
              deletionPolicy:
                default: Delete
                description: |-
                  DeletionPolicy specifies what will happen to the underlying external
                  when this managed resource is deleted - either "Delete" or "Orphan" the
                  external resource.
                  This field is planned to be deprecated in favor of the ManagementPolicies
                  field in a future release. Currently, both could be set independently and
                  non-default values would be honored if the feature flag is enabled.
                  See the design doc for more information: https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223
                enum:
                - Orphan
                - Delete
                type: string
              forProvider:
                properties:
                  capacityReservationGroupId:
                    description: Specifies the ID of the Capacity Reservation Group
                      where this Node Pool should exist. Changing this forces a new
                      resource to be created.
                    type: string
                  customCaTrustEnabled:
                    description: Specifies whether to trust a Custom CA.
                    type: boolean
                  enableAutoScaling:
                    description: Whether to enable auto-scaler.
                    type: boolean
                  enableHostEncryption:
                    description: Should the nodes in this Node Pool have host encryption
                      enabled? Changing this forces a new resource to be created.
                    type: boolean
                  enableNodePublicIp:
                    description: Should each node have a Public IP Address? Changing
                      this forces a new resource to be created.
                    type: boolean
                  evictionPolicy:
                    description: The Eviction Policy which should be used for Virtual
                      Machines within the Virtual Machine Scale Set powering this
                      Node Pool. Possible values are Deallocate and Delete. Changing
                      this forces a new resource to be created.
                    type: string
                  fipsEnabled:
                    description: Should the nodes in this Node Pool have Federal Information
                      Processing Standard enabled? Changing this forces a new resource
                      to be created.
                    type: boolean
                  gpuInstance:
                    description: Specifies the GPU MIG instance profile for supported
                      GPU VM SKU. The allowed values are MIG1g, MIG2g, MIG3g, MIG4g
                      and MIG7g. Changing this forces a new resource to be created.
                    type: string
                  hostGroupId:
                    description: The fully qualified resource ID of the Dedicated
                      Host Group to provision virtual machines from. Changing this
                      forces a new resource to be created.
                    type: string
                  kubeletConfig:
                    description: A kubelet_config block as defined below. Changing
                      this forces a new resource to be created.
                    items:
                      properties:
                        allowedUnsafeSysctls:
                          description: Specifies the allow list of unsafe sysctls
                            command or patterns (ending in *). Changing this forces
                            a new resource to be created.
                          items:
                            type: string
                          type: array
                          x-kubernetes-list-type: set
                        containerLogMaxLine:
                          description: Specifies the maximum number of container log
                            files that can be present for a container. must be at
                            least 2. Changing this forces a new resource to be created.
                          type: number
                        containerLogMaxSizeMb:
                          description: Specifies the maximum size (e.g. 10MB) of container
                            log file before it is rotated. Changing this forces a
                            new resource to be created.
                          type: number
                        cpuCfsQuotaEnabled:
                          description: Is CPU CFS quota enforcement for containers
                            enabled? Changing this forces a new resource to be created.
                          type: boolean
                        cpuCfsQuotaPeriod:
                          description: Specifies the CPU CFS quota period value. Changing
                            this forces a new resource to be created.
                          type: string
                        cpuManagerPolicy:
                          description: Specifies the CPU Manager policy to use. Possible
                            values are none and static, Changing this forces a new
                            resource to be created.
                          type: string
                        imageGcHighThreshold:
                          description: Specifies the percent of disk usage above which
                            image garbage collection is always run. Must be between
                            0 and 100. Changing this forces a new resource to be created.
                          type: number
                        imageGcLowThreshold:
                          description: Specifies the percent of disk usage lower than
                            which image garbage collection is never run. Must be between
                            0 and 100. Changing this forces a new resource to be created.
                          type: number
                        podMaxPid:
                          description: Specifies the maximum number of processes per
                            pod. Changing this forces a new resource to be created.
                          type: number
                        topologyManagerPolicy:
                          description: Specifies the Topology Manager policy to use.
                            Possible values are none, best-effort, restricted or single-numa-node.
                            Changing this forces a new resource to be created.
                          type: string
                      type: object
                    type: array
                  kubeletDiskType:
                    description: The type of disk used by kubelet. Possible values
                      are OS and Temporary.
                    type: string
                  kubernetesClusterId:
                    description: The ID of the Kubernetes Cluster where this Node
                      Pool should exist. Changing this forces a new resource to be
                      created.
                    type: string
                  kubernetesClusterIdRef:
                    description: Reference to a KubernetesCluster in containerservice
                      to populate kubernetesClusterId.
                    properties:
                      name:
                        description: Name of the referenced object.
                        type: string
                      policy:
                        description: Policies for referencing.
                        properties:
                          resolution:
                            default: Required
                            description: |-
                              Resolution specifies whether resolution of this reference is required.
                              The default is 'Required', which means the reconcile will fail if the
                              reference cannot be resolved. 'Optional' means this reference will be
                              a no-op if it cannot be resolved.
                            enum:
                            - Required
                            - Optional
                            type: string
                          resolve:
                            description: |-
                              Resolve specifies when this reference should be resolved. The default
                              is 'IfNotPresent', which will attempt to resolve the reference only when
                              the corresponding field is not present. Use 'Always' to resolve the
                              reference on every reconcile.
                            enum:
                            - Always
                            - IfNotPresent
                            type: string
                        type: object
                    required:
                    - name
                    type: object
                  kubernetesClusterIdSelector:
                    description: Selector for a KubernetesCluster in containerservice
                      to populate kubernetesClusterId.
                    properties:
                      matchControllerRef:
                        description: |-
                          MatchControllerRef ensures an object with the same controller reference
                          as the selecting object is selected.
                        type: boolean
                      matchLabels:
                        additionalProperties:
                          type: string
                        description: MatchLabels ensures an object with matching labels
                          is selected.
                        type: object
                      policy:
                        description: Policies for selection.
                        properties:
                          resolution:
                            default: Required
                            description: |-
                              Resolution specifies whether resolution of this reference is required.
                              The default is 'Required', which means the reconcile will fail if the
                              reference cannot be resolved. 'Optional' means this reference will be
                              a no-op if it cannot be resolved.
                            enum:
                            - Required
                            - Optional
                            type: string
                          resolve:
                            description: |-
                              Resolve specifies when this reference should be resolved. The default
                              is 'IfNotPresent', which will attempt to resolve the reference only when
                              the corresponding field is not present. Use 'Always' to resolve the
                              reference on every reconcile.
                            enum:
                            - Always
                            - IfNotPresent
                            type: string
                        type: object
                    type: object
                  linuxOsConfig:
                    description: A linux_os_config block as defined below. Changing
                      this forces a new resource to be created.
                    items:
                      properties:
                        swapFileSizeMb:
                          description: Specifies the size of swap file on each node
                            in MB. Changing this forces a new resource to be created.
                          type: number
                        sysctlConfig:
                          description: A sysctl_config block as defined below. Changing
                            this forces a new resource to be created.
                          items:
                            properties:
                              fsAioMaxNr:
                                description: The sysctl setting fs.aio-max-nr. Must
                                  be between 65536 and 6553500. Changing this forces
                                  a new resource to be created.
                                type: number
                              fsFileMax:
                                description: The sysctl setting fs.file-max. Must
                                  be between 8192 and 12000500. Changing this forces
                                  a new resource to be created.
                                type: number
                              fsInotifyMaxUserWatches:
                                description: The sysctl setting fs.inotify.max_user_watches.
                                  Must be between 781250 and 2097152. Changing this
                                  forces a new resource to be created.
                                type: number
                              fsNrOpen:
                                description: The sysctl setting fs.nr_open. Must be
                                  between 8192 and 20000500. Changing this forces
                                  a new resource to be created.
                                type: number
                              kernelThreadsMax:
                                description: The sysctl setting kernel.threads-max.
                                  Must be between 20 and 513785. Changing this forces
                                  a new resource to be created.
                                type: number
                              netCoreNetdevMaxBacklog:
                                description: The sysctl setting net.core.netdev_max_backlog.
                                  Must be between 1000 and 3240000. Changing this
                                  forces a new resource to be created.
                                type: number
                              netCoreOptmemMax:
                                description: The sysctl setting net.core.optmem_max.
                                  Must be between 20480 and 4194304. Changing this
                                  forces a new resource to be created.
                                type: number
                              netCoreRmemDefault:
                                description: The sysctl setting net.core.rmem_default.
                                  Must be between 212992 and 134217728. Changing this
                                  forces a new resource to be created.
                                type: number
                              netCoreRmemMax:
                                description: The sysctl setting net.core.rmem_max.
                                  Must be between 212992 and 134217728. Changing this
                                  forces a new resource to be created.
                                type: number
                              netCoreSomaxconn:
                                description: The sysctl setting net.core.somaxconn.
                                  Must be between 4096 and 3240000. Changing this
                                  forces a new resource to be created.
                                type: number
                              netCoreWmemDefault:
                                description: The sysctl setting net.core.wmem_default.
                                  Must be between 212992 and 134217728. Changing this
                                  forces a new resource to be created.
                                type: number
                              netCoreWmemMax:
                                description: The sysctl setting net.core.wmem_max.
                                  Must be between 212992 and 134217728. Changing this
                                  forces a new resource to be created.
                                type: number
                              netIpv4IpLocalPortRangeMax:
                                description: The sysctl setting net.ipv4.ip_local_port_range
                                  max value. Must be between 32768 and 65535. Changing
                                  this forces a new resource to be created.
                                type: number
                              netIpv4IpLocalPortRangeMin:
                                description: The sysctl setting net.ipv4.ip_local_port_range
                                  min value. Must be between 1024 and 60999. Changing
                                  this forces a new resource to be created.
                                type: number
                              netIpv4NeighDefaultGcThresh1:
                                description: The sysctl setting net.ipv4.neigh.default.gc_thresh1.
                                  Must be between 128 and 80000. Changing this forces
                                  a new resource to be created.
                                type: number
                              netIpv4NeighDefaultGcThresh2:
                                description: The sysctl setting net.ipv4.neigh.default.gc_thresh2.
                                  Must be between 512 and 90000. Changing this forces
                                  a new resource to be created.
                                type: number
                              netIpv4NeighDefaultGcThresh3:
                                description: The sysctl setting net.ipv4.neigh.default.gc_thresh3.
                                  Must be between 1024 and 100000. Changing this forces
                                  a new resource to be created.
                                type: number
                              netIpv4TcpFinTimeout:
                                description: The sysctl setting net.ipv4.tcp_fin_timeout.
                                  Must be between 5 and 120. Changing this forces
                                  a new resource to be created.
                                type: number
                              netIpv4TcpKeepaliveIntvl:
                                description: The sysctl setting net.ipv4.tcp_keepalive_intvl.
                                  Must be between 10 and 90. Changing this forces
                                  a new resource to be created.
                                type: number
                              netIpv4TcpKeepaliveProbes:
                                description: The sysctl setting net.ipv4.tcp_keepalive_probes.
                                  Must be between 1 and 15. Changing this forces a
                                  new resource to be created.
                                type: number
                              netIpv4TcpKeepaliveTime:
                                description: The sysctl setting net.ipv4.tcp_keepalive_time.
                                  Must be between 30 and 432000. Changing this forces
                                  a new resource to be created.
                                type: number
                              netIpv4TcpMaxSynBacklog:
                                description: The sysctl setting net.ipv4.tcp_max_syn_backlog.
                                  Must be between 128 and 3240000. Changing this forces
                                  a new resource to be created.
                                type: number
                              netIpv4TcpMaxTwBuckets:
                                description: The sysctl setting net.ipv4.tcp_max_tw_buckets.
                                  Must be between 8000 and 1440000. Changing this
                                  forces a new resource to be created.
                                type: number
                              netIpv4TcpTwReuse:
                                description: Is sysctl setting net.ipv4.tcp_tw_reuse
                                  enabled? Changing this forces a new resource to
                                  be created.
                                type: boolean
                              netNetfilterNfConntrackBuckets:
                                description: The sysctl setting net.netfilter.nf_conntrack_buckets.
                                  Must be between 65536 and 524288. Changing this
                                  forces a new resource to be created.
                                type: number
                              netNetfilterNfConntrackMax:
                                description: The sysctl setting net.netfilter.nf_conntrack_max.
                                  Must be between 131072 and 2097152. Changing this
                                  forces a new resource to be created.
                                type: number
                              vmMaxMapCount:
                                description: The sysctl setting vm.max_map_count.
                                  Must be between 65530 and 262144. Changing this
                                  forces a new resource to be created.
                                type: number
                              vmSwappiness:
                                description: The sysctl setting vm.swappiness. Must
                                  be between 0 and 100. Changing this forces a new
                                  resource to be created.
                                type: number
                              vmVfsCachePressure:
                                description: The sysctl setting vm.vfs_cache_pressure.
                                  Must be between 0 and 100. Changing this forces
                                  a new resource to be created.
                                type: number
                            type: object
                          type: array
                        transparentHugePageDefrag:
                          description: specifies the defrag configuration for Transparent
                            Huge Page. Possible values are always, defer, defer+madvise,
                            madvise and never. Changing this forces a new resource
                            to be created.
                          type: string
                        transparentHugePageEnabled:
                          description: Specifies the Transparent Huge Page enabled
                            configuration. Possible values are always, madvise and
                            never. Changing this forces a new resource to be created.
                          type: string
                      type: object
                    type: array
                  maxCount:
                    description: The maximum number of nodes which should exist within
                      this Node Pool. Valid values are between 0 and 1000 and must
                      be greater than or equal to min_count.
                    type: number
                  maxPods:
                    description: The maximum number of pods that can run on each agent.
                      Changing this forces a new resource to be created.
                    type: number
                  messageOfTheDay:
                    description: A base64-encoded string which will be written to
                      /etc/motd after decoding. This allows customization of the message
                      of the day for Linux nodes. It cannot be specified for Windows
                      nodes and must be a static string (i.e. will be printed raw
                      and not executed as a script). Changing this forces a new resource
                      to be created.
                    type: string
                  minCount:
                    description: The minimum number of nodes which should exist within
                      this Node Pool. Valid values are between 0 and 1000 and must
                      be less than or equal to max_count.
                    type: number
                  mode:
                    description: Should this Node Pool be used for System or User
                      resources? Possible values are System and User. Defaults to
                      User.
                    type: string
                  nodeCount:
                    description: The initial number of nodes which should exist within
                      this Node Pool. Valid values are between 0 and 1000 (inclusive)
                      for user pools and between 1 and 1000 (inclusive) for system
                      pools and must be a value in the range min_count - max_count.
                    type: number
                  nodeLabels:
                    additionalProperties:
                      type: string
                    description: A map of Kubernetes labels which should be applied
                      to nodes in this Node Pool.
                    type: object
                    x-kubernetes-map-type: granular
                  nodeNetworkProfile:
                    description: A node_network_profile block as documented below.
                    items:
                      properties:
                        allowedHostPorts:
                          description: One or more allowed_host_ports blocks as defined
                            below.
                          items:
                            properties:
                              portEnd:
                                description: Specifies the end of the port range.
                                type: number
                              portStart:
                                description: Specifies the start of the port range.
                                type: number
                              protocol:
                                description: Specifies the protocol of the port range.
                                  Possible values are TCP and UDP.
                                type: string
                            type: object
                          type: array
                        applicationSecurityGroupIds:
                          description: A list of Application Security Group IDs which
                            should be associated with this Node Pool.
                          items:
                            type: string
                          type: array
                        nodePublicIpTags:
                          additionalProperties:
                            type: string
                          description: Specifies a mapping of tags to the instance-level
                            public IPs. Changing this forces a new resource to be
                            created.
                          type: object
                          x-kubernetes-map-type: granular
                      type: object
                    type: array
                  nodePublicIpPrefixId:
                    description: Resource ID for the Public IP Addresses Prefix for
                      the nodes in this Node Pool. enable_node_public_ip should be
                      true. Changing this forces a new resource to be created.
                    type: string
                  nodeTaints:
                    description: A list of Kubernetes taints which should be applied
                      to nodes in the agent pool (e.g key=value:NoSchedule).
                    items:
                      type: string
                    type: array
                  orchestratorVersion:
                    description: Version of Kubernetes used for the Agents. If not
                      specified, the latest recommended version will be used at provisioning
                      time (but won't auto-upgrade). AKS does not require an exact
                      patch version to be specified, minor version aliases such as
                      1.22 are also supported. - The minor version's latest GA patch
                      is automatically chosen in that case. More details can be found
                      in the documentation.
                    type: string
                  osDiskSizeGb:
                    description: The Agent Operating System disk size in GB. Changing
                      this forces a new resource to be created.
                    type: number
                  osDiskType:
                    description: The type of disk which should be used for the Operating
                      System. Possible values are Ephemeral and Managed. Defaults
                      to Managed. Changing this forces a new resource to be created.
                    type: string
                  osSku:
                    description: Specifies the OS SKU used by the agent pool. Possible
                      values are AzureLinux, Ubuntu, Windows2019 and Windows2022.
                      If not specified, the default is Ubuntu if OSType=Linux or Windows2019
                      if OSType=Windows. And the default Windows OSSKU will be changed
                      to Windows2022 after Windows2019 is deprecated. Changing this
                      forces a new resource to be created.
                    type: string
                  osType:
                    description: The Operating System which should be used for this
                      Node Pool. Changing this forces a new resource to be created.
                      Possible values are Linux and Windows. Defaults to Linux.
                    type: string
                  podSubnetId:
                    description: The ID of the Subnet where the pods in the Node Pool
                      should exist. Changing this forces a new resource to be created.
                    type: string
                  podSubnetIdRef:
                    description: Reference to a Subnet in network to populate podSubnetId.
                    properties:
                      name:
                        description: Name of the referenced object.
                        type: string
                      policy:
                        description: Policies for referencing.
                        properties:
                          resolution:
                            default: Required
                            description: |-
                              Resolution specifies whether resolution of this reference is required.
                              The default is 'Required', which means the reconcile will fail if the
                              reference cannot be resolved. 'Optional' means this reference will be
                              a no-op if it cannot be resolved.
                            enum:
                            - Required
                            - Optional
                            type: string
                          resolve:
                            description: |-
                              Resolve specifies when this reference should be resolved. The default
                              is 'IfNotPresent', which will attempt to resolve the reference only when
                              the corresponding field is not present. Use 'Always' to resolve the
                              reference on every reconcile.
                            enum:
                            - Always
                            - IfNotPresent
                            type: string
                        type: object
                    required:
                    - name
                    type: object
                  podSubnetIdSelector:
                    description: Selector for a Subnet in network to populate podSubnetId.
                    properties:
                      matchControllerRef:
                        description: |-
                          MatchControllerRef ensures an object with the same controller reference
                          as the selecting object is selected.
                        type: boolean
                      matchLabels:
                        additionalProperties:
                          type: string
                        description: MatchLabels ensures an object with matching labels
                          is selected.
                        type: object
                      policy:
                        description: Policies for selection.
                        properties:
                          resolution:
                            default: Required
                            description: |-
                              Resolution specifies whether resolution of this reference is required.
                              The default is 'Required', which means the reconcile will fail if the
                              reference cannot be resolved. 'Optional' means this reference will be
                              a no-op if it cannot be resolved.
                            enum:
                            - Required
                            - Optional
                            type: string
                          resolve:
                            description: |-
                              Resolve specifies when this reference should be resolved. The default
                              is 'IfNotPresent', which will attempt to resolve the reference only when
                              the corresponding field is not present. Use 'Always' to resolve the
                              reference on every reconcile.
                            enum:
                            - Always
                            - IfNotPresent
                            type: string
                        type: object
                    type: object
                  priority:
                    description: The Priority for Virtual Machines within the Virtual
                      Machine Scale Set that powers this Node Pool. Possible values
                      are Regular and Spot. Defaults to Regular. Changing this forces
                      a new resource to be created.
                    type: string
                  proximityPlacementGroupId:
                    description: The ID of the Proximity Placement Group where the
                      Virtual Machine Scale Set that powers this Node Pool will be
                      placed. Changing this forces a new resource to be created.
                    type: string
                  scaleDownMode:
                    description: Specifies how the node pool should deal with scaled-down
                      nodes. Allowed values are Delete and Deallocate. Defaults to
                      Delete.
                    type: string
                  snapshotId:
                    description: The ID of the Snapshot which should be used to create
                      this Node Pool. Changing this forces a new resource to be created.
                    type: string
                  spotMaxPrice:
                    description: The maximum price you're willing to pay in USD per
                      Virtual Machine. Valid values are -1 (the current on-demand
                      price for a Virtual Machine) or a positive value with up to
                      five decimal places. Changing this forces a new resource to
                      be created.
                    type: number
                  tags:
                    additionalProperties:
                      type: string
                    description: A mapping of tags to assign to the resource.
                    type: object
                    x-kubernetes-map-type: granular
                  ultraSsdEnabled:
                    description: Used to specify whether the UltraSSD is enabled in
                      the Node Pool. Defaults to false. See the documentation for
                      more information. Changing this forces a new resource to be
                      created.
                    type: boolean
                  upgradeSettings:
                    description: A upgrade_settings block as documented below.
                    items:
                      properties:
                        drainTimeoutInMinutes:
                          description: The amount of time in minutes to wait on eviction
                            of pods and graceful termination per node. This eviction
                            wait time honors waiting on pod disruption budgets. If
                            this time is exceeded, the upgrade fails. Unsetting this
                            after configuring it will force a new resource to be created.
                          type: number
                        maxSurge:
                          description: The maximum number or percentage of nodes which
                            will be added to the Node Pool size during an upgrade.
                          type: string
                        nodeSoakDurationInMinutes:
                          description: The amount of time in minutes to wait after
                            draining a node and before reimaging and moving on to
                            next node. Defaults to 0.
                          type: number
                      type: object
                    type: array
                  vmSize:
                    description: The SKU which should be used for the Virtual Machines
                      used in this Node Pool. Changing this forces a new resource
                      to be created.
                    type: string
                  vnetSubnetId:
                    description: The ID of the Subnet where this Node Pool should
                      exist. Changing this forces a new resource to be created.
                    type: string
                  vnetSubnetIdRef:
                    description: Reference to a Subnet in network to populate vnetSubnetId.
                    properties:
                      name:
                        description: Name of the referenced object.
                        type: string
                      policy:
                        description: Policies for referencing.
                        properties:
                          resolution:
                            default: Required
                            description: |-
                              Resolution specifies whether resolution of this reference is required.
                              The default is 'Required', which means the reconcile will fail if the
                              reference cannot be resolved. 'Optional' means this reference will be
                              a no-op if it cannot be resolved.
                            enum:
                            - Required
                            - Optional
                            type: string
                          resolve:
                            description: |-
                              Resolve specifies when this reference should be resolved. The default
                              is 'IfNotPresent', which will attempt to resolve the reference only when
                              the corresponding field is not present. Use 'Always' to resolve the
                              reference on every reconcile.
                            enum:
                            - Always
                            - IfNotPresent
                            type: string
                        type: object
                    required:
                    - name
                    type: object
                  vnetSubnetIdSelector:
                    description: Selector for a Subnet in network to populate vnetSubnetId.
                    properties:
                      matchControllerRef:
                        description: |-
                          MatchControllerRef ensures an object with the same controller reference
                          as the selecting object is selected.
                        type: boolean
                      matchLabels:
                        additionalProperties:
                          type: string
                        description: MatchLabels ensures an object with matching labels
                          is selected.
                        type: object
                      policy:
                        description: Policies for selection.
                        properties:
                          resolution:
                            default: Required
                            description: |-
                              Resolution specifies whether resolution of this reference is required.
                              The default is 'Required', which means the reconcile will fail if the
                              reference cannot be resolved. 'Optional' means this reference will be
                              a no-op if it cannot be resolved.
                            enum:
                            - Required
                            - Optional
                            type: string
                          resolve:
                            description: |-
                              Resolve specifies when this reference should be resolved. The default
                              is 'IfNotPresent', which will attempt to resolve the reference only when
                              the corresponding field is not present. Use 'Always' to resolve the
                              reference on every reconcile.
                            enum:
                            - Always
                            - IfNotPresent
                            type: string
                        type: object
                    type: object
                  windowsProfile:
                    description: A windows_profile block as documented below. Changing
                      this forces a new resource to be created.
                    items:
                      properties:
                        outboundNatEnabled:
                          description: Should the Windows nodes in this Node Pool
                            have outbound NAT enabled? Defaults to true. Changing
                            this forces a new resource to be created.
                          type: boolean
                      type: object
                    type: array
                  workloadRuntime:
                    description: Used to specify the workload runtime. Allowed values
                      are OCIContainer, WasmWasi and KataMshvVmIsolation.
                    type: string
                  zones:
                    description: Specifies a list of Availability Zones in which this
                      Kubernetes Cluster Node Pool should be located. Changing this
                      forces a new Kubernetes Cluster Node Pool to be created.
                    items:
                      type: string
                    type: array
                    x-kubernetes-list-type: set
                type: object
              initProvider:
                description: |-
                  THIS IS A BETA FIELD. It will be honored
                  unless the Management Policies feature flag is disabled.
                  InitProvider holds the same fields as ForProvider, with the exception
                  of Identifier and other resource reference fields. The fields that are
                  in InitProvider are merged into ForProvider when the resource is created.
                  The same fields are also added to the terraform ignore_changes hook, to
                  avoid updating them after creation. This is useful for fields that are
                  required on creation, but we do not desire to update them after creation,
                  for example because of an external controller is managing them, like an
                  autoscaler.
                properties:
                  capacityReservationGroupId:
                    description: Specifies the ID of the Capacity Reservation Group
                      where this Node Pool should exist. Changing this forces a new
                      resource to be created.
                    type: string
                  customCaTrustEnabled:
                    description: Specifies whether to trust a Custom CA.
                    type: boolean
                  enableAutoScaling:
                    description: Whether to enable auto-scaler.
                    type: boolean
                  enableHostEncryption:
                    description: Should the nodes in this Node Pool have host encryption
                      enabled? Changing this forces a new resource to be created.
                    type: boolean
                  enableNodePublicIp:
                    description: Should each node have a Public IP Address? Changing
                      this forces a new resource to be created.
                    type: boolean
                  evictionPolicy:
                    description: The Eviction Policy which should be used for Virtual
                      Machines within the Virtual Machine Scale Set powering this
                      Node Pool. Possible values are Deallocate and Delete. Changing
                      this forces a new resource to be created.
                    type: string
                  fipsEnabled:
                    description: Should the nodes in this Node Pool have Federal Information
                      Processing Standard enabled? Changing this forces a new resource
                      to be created.
                    type: boolean
                  gpuInstance:
                    description: Specifies the GPU MIG instance profile for supported
                      GPU VM SKU. The allowed values are MIG1g, MIG2g, MIG3g, MIG4g
                      and MIG7g. Changing this forces a new resource to be created.
                    type: string
                  hostGroupId:
                    description: The fully qualified resource ID of the Dedicated
                      Host Group to provision virtual machines from. Changing this
                      forces a new resource to be created.
                    type: string
                  kubeletConfig:
                    description: A kubelet_config block as defined below. Changing
                      this forces a new resource to be created.
                    items:
                      properties:
                        allowedUnsafeSysctls:
                          description: Specifies the allow list of unsafe sysctls
                            command or patterns (ending in *). Changing this forces
                            a new resource to be created.
                          items:
                            type: string
                          type: array
                          x-kubernetes-list-type: set
                        containerLogMaxLine:
                          description: Specifies the maximum number of container log
                            files that can be present for a container. must be at
                            least 2. Changing this forces a new resource to be created.
                          type: number
                        containerLogMaxSizeMb:
                          description: Specifies the maximum size (e.g. 10MB) of container
                            log file before it is rotated. Changing this forces a
                            new resource to be created.
                          type: number
                        cpuCfsQuotaEnabled:
                          description: Is CPU CFS quota enforcement for containers
                            enabled? Changing this forces a new resource to be created.
                          type: boolean
                        cpuCfsQuotaPeriod:
                          description: Specifies the CPU CFS quota period value. Changing
                            this forces a new resource to be created.
                          type: string
                        cpuManagerPolicy:
                          description: Specifies the CPU Manager policy to use. Possible
                            values are none and static, Changing this forces a new
                            resource to be created.
                          type: string
                        imageGcHighThreshold:
                          description: Specifies the percent of disk usage above which
                            image garbage collection is always run. Must be between
                            0 and 100. Changing this forces a new resource to be created.
                          type: number
                        imageGcLowThreshold:
                          description: Specifies the percent of disk usage lower than
                            which image garbage collection is never run. Must be between
                            0 and 100. Changing this forces a new resource to be created.
                          type: number
                        podMaxPid:
                          description: Specifies the maximum number of processes per
                            pod. Changing this forces a new resource to be created.
                          type: number
                        topologyManagerPolicy:
                          description: Specifies the Topology Manager policy to use.
                            Possible values are none, best-effort, restricted or single-numa-node.
                            Changing this forces a new resource to be created.
                          type: string
                      type: object
                    type: array
                  kubeletDiskType:
                    description: The type of disk used by kubelet. Possible values
                      are OS and Temporary.
                    type: string
                  linuxOsConfig:
                    description: A linux_os_config block as defined below. Changing
                      this forces a new resource to be created.
                    items:
                      properties:
                        swapFileSizeMb:
                          description: Specifies the size of swap file on each node
                            in MB. Changing this forces a new resource to be created.
                          type: number
                        sysctlConfig:
                          description: A sysctl_config block as defined below. Changing
                            this forces a new resource to be created.
                          items:
                            properties:
                              fsAioMaxNr:
                                description: The sysctl setting fs.aio-max-nr. Must
                                  be between 65536 and 6553500. Changing this forces
                                  a new resource to be created.
                                type: number
                              fsFileMax:
                                description: The sysctl setting fs.file-max. Must
                                  be between 8192 and 12000500. Changing this forces
                                  a new resource to be created.
                                type: number
                              fsInotifyMaxUserWatches:
                                description: The sysctl setting fs.inotify.max_user_watches.
                                  Must be between 781250 and 2097152. Changing this
                                  forces a new resource to be created.
                                type: number
                              fsNrOpen:
                                description: The sysctl setting fs.nr_open. Must be
                                  between 8192 and 20000500. Changing this forces
                                  a new resource to be created.
                                type: number
                              kernelThreadsMax:
                                description: The sysctl setting kernel.threads-max.
                                  Must be between 20 and 513785. Changing this forces
                                  a new resource to be created.
                                type: number
                              netCoreNetdevMaxBacklog:
                                description: The sysctl setting net.core.netdev_max_backlog.
                                  Must be between 1000 and 3240000. Changing this
                                  forces a new resource to be created.
                                type: number
                              netCoreOptmemMax:
                                description: The sysctl setting net.core.optmem_max.
                                  Must be between 20480 and 4194304. Changing this
                                  forces a new resource to be created.
                                type: number
                              netCoreRmemDefault:
                                description: The sysctl setting net.core.rmem_default.
                                  Must be between 212992 and 134217728. Changing this
                                  forces a new resource to be created.
                                type: number
                              netCoreRmemMax:
                                description: The sysctl setting net.core.rmem_max.
                                  Must be between 212992 and 134217728. Changing this
                                  forces a new resource to be created.
                                type: number
                              netCoreSomaxconn:
                                description: The sysctl setting net.core.somaxconn.
                                  Must be between 4096 and 3240000. Changing this
                                  forces a new resource to be created.
                                type: number
                              netCoreWmemDefault:
                                description: The sysctl setting net.core.wmem_default.
                                  Must be between 212992 and 134217728. Changing this
                                  forces a new resource to be created.
                                type: number
                              netCoreWmemMax:
                                description: The sysctl setting net.core.wmem_max.
                                  Must be between 212992 and 134217728. Changing this
                                  forces a new resource to be created.
                                type: number
                              netIpv4IpLocalPortRangeMax:
                                description: The sysctl setting net.ipv4.ip_local_port_range
                                  max value. Must be between 32768 and 65535. Changing
                                  this forces a new resource to be created.
                                type: number
                              netIpv4IpLocalPortRangeMin:
                                description: The sysctl setting net.ipv4.ip_local_port_range
                                  min value. Must be between 1024 and 60999. Changing
                                  this forces a new resource to be created.
                                type: number
                              netIpv4NeighDefaultGcThresh1:
                                description: The sysctl setting net.ipv4.neigh.default.gc_thresh1.
                                  Must be between 128 and 80000. Changing this forces
                                  a new resource to be created.
                                type: number
                              netIpv4NeighDefaultGcThresh2:
                                description: The sysctl setting net.ipv4.neigh.default.gc_thresh2.
                                  Must be between 512 and 90000. Changing this forces
                                  a new resource to be created.
                                type: number
                              netIpv4NeighDefaultGcThresh3:
                                description: The sysctl setting net.ipv4.neigh.default.gc_thresh3.
                                  Must be between 1024 and 100000. Changing this forces
                                  a new resource to be created.
                                type: number
                              netIpv4TcpFinTimeout:
                                description: The sysctl setting net.ipv4.tcp_fin_timeout.
                                  Must be between 5 and 120. Changing this forces
                                  a new resource to be created.
                                type: number
                              netIpv4TcpKeepaliveIntvl:
                                description: The sysctl setting net.ipv4.tcp_keepalive_intvl.
                                  Must be between 10 and 90. Changing this forces
                                  a new resource to be created.
                                type: number
                              netIpv4TcpKeepaliveProbes:
                                description: The sysctl setting net.ipv4.tcp_keepalive_probes.
                                  Must be between 1 and 15. Changing this forces a
                                  new resource to be created.
                                type: number
                              netIpv4TcpKeepaliveTime:
                                description: The sysctl setting net.ipv4.tcp_keepalive_time.
                                  Must be between 30 and 432000. Changing this forces
                                  a new resource to be created.
                                type: number
                              netIpv4TcpMaxSynBacklog:
                                description: The sysctl setting net.ipv4.tcp_max_syn_backlog.
                                  Must be between 128 and 3240000. Changing this forces
                                  a new resource to be created.
                                type: number
                              netIpv4TcpMaxTwBuckets:
                                description: The sysctl setting net.ipv4.tcp_max_tw_buckets.
                                  Must be between 8000 and 1440000. Changing this
                                  forces a new resource to be created.
                                type: number
                              netIpv4TcpTwReuse:
                                description: Is sysctl setting net.ipv4.tcp_tw_reuse
                                  enabled? Changing this forces a new resource to
                                  be created.
                                type: boolean
                              netNetfilterNfConntrackBuckets:
                                description: The sysctl setting net.netfilter.nf_conntrack_buckets.
                                  Must be between 65536 and 524288. Changing this
                                  forces a new resource to be created.
                                type: number
                              netNetfilterNfConntrackMax:
                                description: The sysctl setting net.netfilter.nf_conntrack_max.
                                  Must be between 131072 and 2097152. Changing this
                                  forces a new resource to be created.
                                type: number
                              vmMaxMapCount:
                                description: The sysctl setting vm.max_map_count.
                                  Must be between 65530 and 262144. Changing this
                                  forces a new resource to be created.
                                type: number
                              vmSwappiness:
                                description: The sysctl setting vm.swappiness. Must
                                  be between 0 and 100. Changing this forces a new
                                  resource to be created.
                                type: number
                              vmVfsCachePressure:
                                description: The sysctl setting vm.vfs_cache_pressure.
                                  Must be between 0 and 100. Changing this forces
                                  a new resource to be created.
                                type: number
                            type: object
                          type: array
                        transparentHugePageDefrag:
                          description: specifies the defrag configuration for Transparent
                            Huge Page. Possible values are always, defer, defer+madvise,
                            madvise and never. Changing this forces a new resource
                            to be created.
                          type: string
                        transparentHugePageEnabled:
                          description: Specifies the Transparent Huge Page enabled
                            configuration. Possible values are always, madvise and
                            never. Changing this forces a new resource to be created.
                          type: string
                      type: object
                    type: array
                  maxCount:
                    description: The maximum number of nodes which should exist within
                      this Node Pool. Valid values are between 0 and 1000 and must
                      be greater than or equal to min_count.
                    type: number
                  maxPods:
                    description: The maximum number of pods that can run on each agent.
                      Changing this forces a new resource to be created.
                    type: number
                  messageOfTheDay:
                    description: A base64-encoded string which will be written to
                      /etc/motd after decoding. This allows customization of the message
                      of the day for Linux nodes. It cannot be specified for Windows
                      nodes and must be a static string (i.e. will be printed raw
                      and not executed as a script). Changing this forces a new resource
                      to be created.
                    type: string
                  minCount:
                    description: The minimum number of nodes which should exist within
                      this Node Pool. Valid values are between 0 and 1000 and must
                      be less than or equal to max_count.
                    type: number
                  mode:
                    description: Should this Node Pool be used for System or User
                      resources? Possible values are System and User. Defaults to
                      User.
                    type: string
                  nodeCount:
                    description: The initial number of nodes which should exist within
                      this Node Pool. Valid values are between 0 and 1000 (inclusive)
                      for user pools and between 1 and 1000 (inclusive) for system
                      pools and must be a value in the range min_count - max_count.
                    type: number
                  nodeLabels:
                    additionalProperties:
                      type: string
                    description: A map of Kubernetes labels which should be applied
                      to nodes in this Node Pool.
                    type: object
                    x-kubernetes-map-type: granular
                  nodeNetworkProfile:
                    description: A node_network_profile block as documented below.
                    items:
                      properties:
                        allowedHostPorts:
                          description: One or more allowed_host_ports blocks as defined
                            below.
                          items:
                            properties:
                              portEnd:
                                description: Specifies the end of the port range.
                                type: number
                              portStart:
                                description: Specifies the start of the port range.
                                type: number
                              protocol:
                                description: Specifies the protocol of the port range.
                                  Possible values are TCP and UDP.
                                type: string
                            type: object
                          type: array
                        applicationSecurityGroupIds:
                          description: A list of Application Security Group IDs which
                            should be associated with this Node Pool.
                          items:
                            type: string
                          type: array
                        nodePublicIpTags:
                          additionalProperties:
                            type: string
                          description: Specifies a mapping of tags to the instance-level
                            public IPs. Changing this forces a new resource to be
                            created.
                          type: object
                          x-kubernetes-map-type: granular
                      type: object
                    type: array
                  nodePublicIpPrefixId:
                    description: Resource ID for the Public IP Addresses Prefix for
                      the nodes in this Node Pool. enable_node_public_ip should be
                      true. Changing this forces a new resource to be created.
                    type: string
                  nodeTaints:
                    description: A list of Kubernetes taints which should be applied
                      to nodes in the agent pool (e.g key=value:NoSchedule).
                    items:
                      type: string
                    type: array
                  orchestratorVersion:
                    description: Version of Kubernetes used for the Agents. If not
                      specified, the latest recommended version will be used at provisioning
                      time (but won't auto-upgrade). AKS does not require an exact
                      patch version to be specified, minor version aliases such as
                      1.22 are also supported. - The minor version's latest GA patch
                      is automatically chosen in that case. More details can be found
                      in the documentation.
                    type: string
                  osDiskSizeGb:
                    description: The Agent Operating System disk size in GB. Changing
                      this forces a new resource to be created.
                    type: number
                  osDiskType:
                    description: The type of disk which should be used for the Operating
                      System. Possible values are Ephemeral and Managed. Defaults
                      to Managed. Changing this forces a new resource to be created.
                    type: string
                  osSku:
                    description: Specifies the OS SKU used by the agent pool. Possible
                      values are AzureLinux, Ubuntu, Windows2019 and Windows2022.
                      If not specified, the default is Ubuntu if OSType=Linux or Windows2019
                      if OSType=Windows. And the default Windows OSSKU will be changed
                      to Windows2022 after Windows2019 is deprecated. Changing this
                      forces a new resource to be created.
                    type: string
                  osType:
                    description: The Operating System which should be used for this
                      Node Pool. Changing this forces a new resource to be created.
                      Possible values are Linux and Windows. Defaults to Linux.
                    type: string
                  podSubnetId:
                    description: The ID of the Subnet where the pods in the Node Pool
                      should exist. Changing this forces a new resource to be created.
                    type: string
                  podSubnetIdRef:
                    description: Reference to a Subnet in network to populate podSubnetId.
                    properties:
                      name:
                        description: Name of the referenced object.
                        type: string
                      policy:
                        description: Policies for referencing.
                        properties:
                          resolution:
                            default: Required
                            description: |-
                              Resolution specifies whether resolution of this reference is required.
                              The default is 'Required', which means the reconcile will fail if the
                              reference cannot be resolved. 'Optional' means this reference will be
                              a no-op if it cannot be resolved.
                            enum:
                            - Required
                            - Optional
                            type: string
                          resolve:
                            description: |-
                              Resolve specifies when this reference should be resolved. The default
                              is 'IfNotPresent', which will attempt to resolve the reference only when
                              the corresponding field is not present. Use 'Always' to resolve the
                              reference on every reconcile.
                            enum:
                            - Always
                            - IfNotPresent
                            type: string
                        type: object
                    required:
                    - name
                    type: object
                  podSubnetIdSelector:
                    description: Selector for a Subnet in network to populate podSubnetId.
                    properties:
                      matchControllerRef:
                        description: |-
                          MatchControllerRef ensures an object with the same controller reference
                          as the selecting object is selected.
                        type: boolean
                      matchLabels:
                        additionalProperties:
                          type: string
                        description: MatchLabels ensures an object with matching labels
                          is selected.
                        type: object
                      policy:
                        description: Policies for selection.
                        properties:
                          resolution:
                            default: Required
                            description: |-
                              Resolution specifies whether resolution of this reference is required.
                              The default is 'Required', which means the reconcile will fail if the
                              reference cannot be resolved. 'Optional' means this reference will be
                              a no-op if it cannot be resolved.
                            enum:
                            - Required
                            - Optional
                            type: string
                          resolve:
                            description: |-
                              Resolve specifies when this reference should be resolved. The default
                              is 'IfNotPresent', which will attempt to resolve the reference only when
                              the corresponding field is not present. Use 'Always' to resolve the
                              reference on every reconcile.
                            enum:
                            - Always
                            - IfNotPresent
                            type: string
                        type: object
                    type: object
                  priority:
                    description: The Priority for Virtual Machines within the Virtual
                      Machine Scale Set that powers this Node Pool. Possible values
                      are Regular and Spot. Defaults to Regular. Changing this forces
                      a new resource to be created.
                    type: string
                  proximityPlacementGroupId:
                    description: The ID of the Proximity Placement Group where the
                      Virtual Machine Scale Set that powers this Node Pool will be
                      placed. Changing this forces a new resource to be created.
                    type: string
                  scaleDownMode:
                    description: Specifies how the node pool should deal with scaled-down
                      nodes. Allowed values are Delete and Deallocate. Defaults to
                      Delete.
                    type: string
                  snapshotId:
                    description: The ID of the Snapshot which should be used to create
                      this Node Pool. Changing this forces a new resource to be created.
                    type: string
                  spotMaxPrice:
                    description: The maximum price you're willing to pay in USD per
                      Virtual Machine. Valid values are -1 (the current on-demand
                      price for a Virtual Machine) or a positive value with up to
                      five decimal places. Changing this forces a new resource to
                      be created.
                    type: number
                  tags:
                    additionalProperties:
                      type: string
                    description: A mapping of tags to assign to the resource.
                    type: object
                    x-kubernetes-map-type: granular
                  ultraSsdEnabled:
                    description: Used to specify whether the UltraSSD is enabled in
                      the Node Pool. Defaults to false. See the documentation for
                      more information. Changing this forces a new resource to be
                      created.
                    type: boolean
                  upgradeSettings:
                    description: A upgrade_settings block as documented below.
                    items:
                      properties:
                        drainTimeoutInMinutes:
                          description: The amount of time in minutes to wait on eviction
                            of pods and graceful termination per node. This eviction
                            wait time honors waiting on pod disruption budgets. If
                            this time is exceeded, the upgrade fails. Unsetting this
                            after configuring it will force a new resource to be created.
                          type: number
                        maxSurge:
                          description: The maximum number or percentage of nodes which
                            will be added to the Node Pool size during an upgrade.
                          type: string
                        nodeSoakDurationInMinutes:
                          description: The amount of time in minutes to wait after
                            draining a node and before reimaging and moving on to
                            next node. Defaults to 0.
                          type: number
                      type: object
                    type: array
                  vmSize:
                    description: The SKU which should be used for the Virtual Machines
                      used in this Node Pool. Changing this forces a new resource
                      to be created.
                    type: string
                  vnetSubnetId:
                    description: The ID of the Subnet where this Node Pool should
                      exist. Changing this forces a new resource to be created.
                    type: string
                  vnetSubnetIdRef:
                    description: Reference to a Subnet in network to populate vnetSubnetId.
                    properties:
                      name:
                        description: Name of the referenced object.
                        type: string
                      policy:
                        description: Policies for referencing.
                        properties:
                          resolution:
                            default: Required
                            description: |-
                              Resolution specifies whether resolution of this reference is required.
                              The default is 'Required', which means the reconcile will fail if the
                              reference cannot be resolved. 'Optional' means this reference will be
                              a no-op if it cannot be resolved.
                            enum:
                            - Required
                            - Optional
                            type: string
                          resolve:
                            description: |-
                              Resolve specifies when this reference should be resolved. The default
                              is 'IfNotPresent', which will attempt to resolve the reference only when
                              the corresponding field is not present. Use 'Always' to resolve the
                              reference on every reconcile.
                            enum:
                            - Always
                            - IfNotPresent
                            type: string
                        type: object
                    required:
                    - name
                    type: object
                  vnetSubnetIdSelector:
                    description: Selector for a Subnet in network to populate vnetSubnetId.
                    properties:
                      matchControllerRef:
                        description: |-
                          MatchControllerRef ensures an object with the same controller reference
                          as the selecting object is selected.
                        type: boolean
                      matchLabels:
                        additionalProperties:
                          type: string
                        description: MatchLabels ensures an object with matching labels
                          is selected.
                        type: object
                      policy:
                        description: Policies for selection.
                        properties:
                          resolution:
                            default: Required
                            description: |-
                              Resolution specifies whether resolution of this reference is required.
                              The default is 'Required', which means the reconcile will fail if the
                              reference cannot be resolved. 'Optional' means this reference will be
                              a no-op if it cannot be resolved.
                            enum:
                            - Required
                            - Optional
                            type: string
                          resolve:
                            description: |-
                              Resolve specifies when this reference should be resolved. The default
                              is 'IfNotPresent', which will attempt to resolve the reference only when
                              the corresponding field is not present. Use 'Always' to resolve the
                              reference on every reconcile.
                            enum:
                            - Always
                            - IfNotPresent
                            type: string
                        type: object
                    type: object
                  windowsProfile:
                    description: A windows_profile block as documented below. Changing
                      this forces a new resource to be created.
                    items:
                      properties:
                        outboundNatEnabled:
                          description: Should the Windows nodes in this Node Pool
                            have outbound NAT enabled? Defaults to true. Changing
                            this forces a new resource to be created.
                          type: boolean
                      type: object
                    type: array
                  workloadRuntime:
                    description: Used to specify the workload runtime. Allowed values
                      are OCIContainer, WasmWasi and KataMshvVmIsolation.
                    type: string
                  zones:
                    description: Specifies a list of Availability Zones in which this
                      Kubernetes Cluster Node Pool should be located. Changing this
                      forces a new Kubernetes Cluster Node Pool to be created.
                    items:
                      type: string
                    type: array
                    x-kubernetes-list-type: set
                type: object
              managementPolicies:
                default:
                - '*'
                description: |-
                  THIS IS A BETA FIELD. It is on by default but can be opted out
                  through a Crossplane feature flag.
                  ManagementPolicies specify the array of actions Crossplane is allowed to
                  take on the managed and external resources.
                  This field is planned to replace the DeletionPolicy field in a future
                  release. Currently, both could be set independently and non-default
                  values would be honored if the feature flag is enabled. If both are
                  custom, the DeletionPolicy field will be ignored.
                  See the design doc for more information: https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223
                  and this one: https://github.com/crossplane/crossplane/blob/444267e84783136daa93568b364a5f01228cacbe/design/one-pager-ignore-changes.md
                items:
                  description: |-
                    A ManagementAction represents an action that the Crossplane controllers
                    can take on an external resource.
                  enum:
                  - Observe
                  - Create
                  - Update
                  - Delete
                  - LateInitialize
                  - '*'
                  type: string
                type: array
              providerConfigRef:
                default:
                  name: default
                description: |-
                  ProviderConfigReference specifies how the provider that will be used to
                  create, observe, update, and delete this managed resource should be
                  configured.
                properties:
                  name:
                    description: Name of the referenced object.
                    type: string
                  policy:
                    description: Policies for referencing.
                    properties:
                      resolution:
                        default: Required
                        description: |-
                          Resolution specifies whether resolution of this reference is required.
                          The default is 'Required', which means the reconcile will fail if the
                          reference cannot be resolved. 'Optional' means this reference will be
                          a no-op if it cannot be resolved.
                        enum:
                        - Required
                        - Optional
                        type: string
                      resolve:
                        description: |-
                          Resolve specifies when this reference should be resolved. The default
                          is 'IfNotPresent', which will attempt to resolve the reference only when
                          the corresponding field is not present. Use 'Always' to resolve the
                          reference on every reconcile.
                        enum:
                        - Always
                        - IfNotPresent
                        type: string
                    type: object
                required:
                - name
                type: object
              publishConnectionDetailsTo:
                description: |-
                  PublishConnectionDetailsTo specifies the connection secret config which
                  contains a name, metadata and a reference to secret store config to
                  which any connection details for this managed resource should be written.
                  Connection details frequently include the endpoint, username,
                  and password required to connect to the managed resource.
                properties:
                  configRef:
                    default:
                      name: default
                    description: |-
                      SecretStoreConfigRef specifies which secret store config should be used
                      for this ConnectionSecret.
                    properties:
                      name:
                        description: Name of the referenced object.
                        type: string
                      policy:
                        description: Policies for referencing.
                        properties:
                          resolution:
                            default: Required
                            description: |-
                              Resolution specifies whether resolution of this reference is required.
                              The default is 'Required', which means the reconcile will fail if the
                              reference cannot be resolved. 'Optional' means this reference will be
                              a no-op if it cannot be resolved.
                            enum:
                            - Required
                            - Optional
                            type: string
                          resolve:
                            description: |-
                              Resolve specifies when this reference should be resolved. The default
                              is 'IfNotPresent', which will attempt to resolve the reference only when
                              the corresponding field is not present. Use 'Always' to resolve the
                              reference on every reconcile.
                            enum:
                            - Always
                            - IfNotPresent
                            type: string
                        type: object
                    required:
                    - name
                    type: object
                  metadata:
                    description: Metadata is the metadata for connection secret.
                    properties:
                      annotations:
                        additionalProperties:
                          type: string
                        description: |-
                          Annotations are the annotations to be added to connection secret.
                          - For Kubernetes secrets, this will be used as "metadata.annotations".
                          - It is up to Secret Store implementation for others store types.
                        type: object
                      labels:
                        additionalProperties:
                          type: string
                        description: |-
                          Labels are the labels/tags to be added to connection secret.
                          - For Kubernetes secrets, this will be used as "metadata.labels".
                          - It is up to Secret Store implementation for others store types.
                        type: object
                      type:
                        description: |-
                          Type is the SecretType for the connection secret.
                          - Only valid for Kubernetes Secret Stores.
                        type: string
                    type: object
                  name:
                    description: Name is the name of the connection secret.
                    type: string
                required:
                - name
                type: object
              writeConnectionSecretToRef:
                description: |-
                  WriteConnectionSecretToReference specifies the namespace and name of a
                  Secret to which any connection details for this managed resource should
                  be written. Connection details frequently include the endpoint, username,
                  and password required to connect to the managed resource.
                  This field is planned to be replaced in a future release in favor of
                  PublishConnectionDetailsTo. Currently, both could be set independently
                  and connection details would be published to both without affecting
                  each other.
                properties:
                  name:
                    description: Name of the secret.
                    type: string
                  namespace:
                    description: Namespace of the secret.
                    type: string
                required:
                - name
                - namespace
                type: object
            required:
            - forProvider
            type: object
            x-kubernetes-validations:
            - message: spec.forProvider.vmSize is a required parameter
              rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies
                || ''Update'' in self.managementPolicies) || has(self.forProvider.vmSize)
                || (has(self.initProvider) && has(self.initProvider.vmSize))'
          status:
            description: KubernetesClusterNodePoolStatus defines the observed state
              of KubernetesClusterNodePool.
            properties:
              atProvider:
                properties:
                  capacityReservationGroupId:
                    description: Specifies the ID of the Capacity Reservation Group
                      where this Node Pool should exist. Changing this forces a new
                      resource to be created.
                    type: string
                  customCaTrustEnabled:
                    description: Specifies whether to trust a Custom CA.
                    type: boolean
                  enableAutoScaling:
                    description: Whether to enable auto-scaler.
                    type: boolean
                  enableHostEncryption:
                    description: Should the nodes in this Node Pool have host encryption
                      enabled? Changing this forces a new resource to be created.
                    type: boolean
                  enableNodePublicIp:
                    description: Should each node have a Public IP Address? Changing
                      this forces a new resource to be created.
                    type: boolean
                  evictionPolicy:
                    description: The Eviction Policy which should be used for Virtual
                      Machines within the Virtual Machine Scale Set powering this
                      Node Pool. Possible values are Deallocate and Delete. Changing
                      this forces a new resource to be created.
                    type: string
                  fipsEnabled:
                    description: Should the nodes in this Node Pool have Federal Information
                      Processing Standard enabled? Changing this forces a new resource
                      to be created.
                    type: boolean
                  gpuInstance:
                    description: Specifies the GPU MIG instance profile for supported
                      GPU VM SKU. The allowed values are MIG1g, MIG2g, MIG3g, MIG4g
                      and MIG7g. Changing this forces a new resource to be created.
                    type: string
                  hostGroupId:
                    description: The fully qualified resource ID of the Dedicated
                      Host Group to provision virtual machines from. Changing this
                      forces a new resource to be created.
                    type: string
                  id:
                    description: The ID of the Kubernetes Cluster Node Pool.
                    type: string
                  kubeletConfig:
                    description: A kubelet_config block as defined below. Changing
                      this forces a new resource to be created.
                    items:
                      properties:
                        allowedUnsafeSysctls:
                          description: Specifies the allow list of unsafe sysctls
                            command or patterns (ending in *). Changing this forces
                            a new resource to be created.
                          items:
                            type: string
                          type: array
                          x-kubernetes-list-type: set
                        containerLogMaxLine:
                          description: Specifies the maximum number of container log
                            files that can be present for a container. must be at
                            least 2. Changing this forces a new resource to be created.
                          type: number
                        containerLogMaxSizeMb:
                          description: Specifies the maximum size (e.g. 10MB) of container
                            log file before it is rotated. Changing this forces a
                            new resource to be created.
                          type: number
                        cpuCfsQuotaEnabled:
                          description: Is CPU CFS quota enforcement for containers
                            enabled? Changing this forces a new resource to be created.
                          type: boolean
                        cpuCfsQuotaPeriod:
                          description: Specifies the CPU CFS quota period value. Changing
                            this forces a new resource to be created.
                          type: string
                        cpuManagerPolicy:
                          description: Specifies the CPU Manager policy to use. Possible
                            values are none and static, Changing this forces a new
                            resource to be created.
                          type: string
                        imageGcHighThreshold:
                          description: Specifies the percent of disk usage above which
                            image garbage collection is always run. Must be between
                            0 and 100. Changing this forces a new resource to be created.
                          type: number
                        imageGcLowThreshold:
                          description: Specifies the percent of disk usage lower than
                            which image garbage collection is never run. Must be between
                            0 and 100. Changing this forces a new resource to be created.
                          type: number
                        podMaxPid:
                          description: Specifies the maximum number of processes per
                            pod. Changing this forces a new resource to be created.
                          type: number
                        topologyManagerPolicy:
                          description: Specifies the Topology Manager policy to use.
                            Possible values are none, best-effort, restricted or single-numa-node.
                            Changing this forces a new resource to be created.
                          type: string
                      type: object
                    type: array
                  kubeletDiskType:
                    description: The type of disk used by kubelet. Possible values
                      are OS and Temporary.
                    type: string
                  kubernetesClusterId:
                    description: The ID of the Kubernetes Cluster where this Node
                      Pool should exist. Changing this forces a new resource to be
                      created.
                    type: string
                  linuxOsConfig:
                    description: A linux_os_config block as defined below. Changing
                      this forces a new resource to be created.
                    items:
                      properties:
                        swapFileSizeMb:
                          description: Specifies the size of swap file on each node
                            in MB. Changing this forces a new resource to be created.
                          type: number
                        sysctlConfig:
                          description: A sysctl_config block as defined below. Changing
                            this forces a new resource to be created.
                          items:
                            properties:
                              fsAioMaxNr:
                                description: The sysctl setting fs.aio-max-nr. Must
                                  be between 65536 and 6553500. Changing this forces
                                  a new resource to be created.
                                type: number
                              fsFileMax:
                                description: The sysctl setting fs.file-max. Must
                                  be between 8192 and 12000500. Changing this forces
                                  a new resource to be created.
                                type: number
                              fsInotifyMaxUserWatches:
                                description: The sysctl setting fs.inotify.max_user_watches.
                                  Must be between 781250 and 2097152. Changing this
                                  forces a new resource to be created.
                                type: number
                              fsNrOpen:
                                description: The sysctl setting fs.nr_open. Must be
                                  between 8192 and 20000500. Changing this forces
                                  a new resource to be created.
                                type: number
                              kernelThreadsMax:
                                description: The sysctl setting kernel.threads-max.
                                  Must be between 20 and 513785. Changing this forces
                                  a new resource to be created.
                                type: number
                              netCoreNetdevMaxBacklog:
                                description: The sysctl setting net.core.netdev_max_backlog.
                                  Must be between 1000 and 3240000. Changing this
                                  forces a new resource to be created.
                                type: number
                              netCoreOptmemMax:
                                description: The sysctl setting net.core.optmem_max.
                                  Must be between 20480 and 4194304. Changing this
                                  forces a new resource to be created.
                                type: number
                              netCoreRmemDefault:
                                description: The sysctl setting net.core.rmem_default.
                                  Must be between 212992 and 134217728. Changing this
                                  forces a new resource to be created.
                                type: number
                              netCoreRmemMax:
                                description: The sysctl setting net.core.rmem_max.
                                  Must be between 212992 and 134217728. Changing this
                                  forces a new resource to be created.
                                type: number
                              netCoreSomaxconn:
                                description: The sysctl setting net.core.somaxconn.
                                  Must be between 4096 and 3240000. Changing this
                                  forces a new resource to be created.
                                type: number
                              netCoreWmemDefault:
                                description: The sysctl setting net.core.wmem_default.
                                  Must be between 212992 and 134217728. Changing this
                                  forces a new resource to be created.
                                type: number
                              netCoreWmemMax:
                                description: The sysctl setting net.core.wmem_max.
                                  Must be between 212992 and 134217728. Changing this
                                  forces a new resource to be created.
                                type: number
                              netIpv4IpLocalPortRangeMax:
                                description: The sysctl setting net.ipv4.ip_local_port_range
                                  max value. Must be between 32768 and 65535. Changing
                                  this forces a new resource to be created.
                                type: number
                              netIpv4IpLocalPortRangeMin:
                                description: The sysctl setting net.ipv4.ip_local_port_range
                                  min value. Must be between 1024 and 60999. Changing
                                  this forces a new resource to be created.
                                type: number
                              netIpv4NeighDefaultGcThresh1:
                                description: The sysctl setting net.ipv4.neigh.default.gc_thresh1.
                                  Must be between 128 and 80000. Changing this forces
                                  a new resource to be created.
                                type: number
                              netIpv4NeighDefaultGcThresh2:
                                description: The sysctl setting net.ipv4.neigh.default.gc_thresh2.
                                  Must be between 512 and 90000. Changing this forces
                                  a new resource to be created.
                                type: number
                              netIpv4NeighDefaultGcThresh3:
                                description: The sysctl setting net.ipv4.neigh.default.gc_thresh3.
                                  Must be between 1024 and 100000. Changing this forces
                                  a new resource to be created.
                                type: number
                              netIpv4TcpFinTimeout:
                                description: The sysctl setting net.ipv4.tcp_fin_timeout.
                                  Must be between 5 and 120. Changing this forces
                                  a new resource to be created.
                                type: number
                              netIpv4TcpKeepaliveIntvl:
                                description: The sysctl setting net.ipv4.tcp_keepalive_intvl.
                                  Must be between 10 and 90. Changing this forces
                                  a new resource to be created.
                                type: number
                              netIpv4TcpKeepaliveProbes:
                                description: The sysctl setting net.ipv4.tcp_keepalive_probes.
                                  Must be between 1 and 15. Changing this forces a
                                  new resource to be created.
                                type: number
                              netIpv4TcpKeepaliveTime:
                                description: The sysctl setting net.ipv4.tcp_keepalive_time.
                                  Must be between 30 and 432000. Changing this forces
                                  a new resource to be created.
                                type: number
                              netIpv4TcpMaxSynBacklog:
                                description: The sysctl setting net.ipv4.tcp_max_syn_backlog.
                                  Must be between 128 and 3240000. Changing this forces
                                  a new resource to be created.
                                type: number
                              netIpv4TcpMaxTwBuckets:
                                description: The sysctl setting net.ipv4.tcp_max_tw_buckets.
                                  Must be between 8000 and 1440000. Changing this
                                  forces a new resource to be created.
                                type: number
                              netIpv4TcpTwReuse:
                                description: Is sysctl setting net.ipv4.tcp_tw_reuse
                                  enabled? Changing this forces a new resource to
                                  be created.
                                type: boolean
                              netNetfilterNfConntrackBuckets:
                                description: The sysctl setting net.netfilter.nf_conntrack_buckets.
                                  Must be between 65536 and 524288. Changing this
                                  forces a new resource to be created.
                                type: number
                              netNetfilterNfConntrackMax:
                                description: The sysctl setting net.netfilter.nf_conntrack_max.
                                  Must be between 131072 and 2097152. Changing this
                                  forces a new resource to be created.
                                type: number
                              vmMaxMapCount:
                                description: The sysctl setting vm.max_map_count.
                                  Must be between 65530 and 262144. Changing this
                                  forces a new resource to be created.
                                type: number
                              vmSwappiness:
                                description: The sysctl setting vm.swappiness. Must
                                  be between 0 and 100. Changing this forces a new
                                  resource to be created.
                                type: number
                              vmVfsCachePressure:
                                description: The sysctl setting vm.vfs_cache_pressure.
                                  Must be between 0 and 100. Changing this forces
                                  a new resource to be created.
                                type: number
                            type: object
                          type: array
                        transparentHugePageDefrag:
                          description: specifies the defrag configuration for Transparent
                            Huge Page. Possible values are always, defer, defer+madvise,
                            madvise and never. Changing this forces a new resource
                            to be created.
                          type: string
                        transparentHugePageEnabled:
                          description: Specifies the Transparent Huge Page enabled
                            configuration. Possible values are always, madvise and
                            never. Changing this forces a new resource to be created.
                          type: string
                      type: object
                    type: array
                  maxCount:
                    description: The maximum number of nodes which should exist within
                      this Node Pool. Valid values are between 0 and 1000 and must
                      be greater than or equal to min_count.
                    type: number
                  maxPods:
                    description: The maximum number of pods that can run on each agent.
                      Changing this forces a new resource to be created.
                    type: number
                  messageOfTheDay:
                    description: A base64-encoded string which will be written to
                      /etc/motd after decoding. This allows customization of the message
                      of the day for Linux nodes. It cannot be specified for Windows
                      nodes and must be a static string (i.e. will be printed raw
                      and not executed as a script). Changing this forces a new resource
                      to be created.
                    type: string
                  minCount:
                    description: The minimum number of nodes which should exist within
                      this Node Pool. Valid values are between 0 and 1000 and must
                      be less than or equal to max_count.
                    type: number
                  mode:
                    description: Should this Node Pool be used for System or User
                      resources? Possible values are System and User. Defaults to
                      User.
                    type: string
                  nodeCount:
                    description: The initial number of nodes which should exist within
                      this Node Pool. Valid values are between 0 and 1000 (inclusive)
                      for user pools and between 1 and 1000 (inclusive) for system
                      pools and must be a value in the range min_count - max_count.
                    type: number
                  nodeLabels:
                    additionalProperties:
                      type: string
                    description: A map of Kubernetes labels which should be applied
                      to nodes in this Node Pool.
                    type: object
                    x-kubernetes-map-type: granular
                  nodeNetworkProfile:
                    description: A node_network_profile block as documented below.
                    items:
                      properties:
                        allowedHostPorts:
                          description: One or more allowed_host_ports blocks as defined
                            below.
                          items:
                            properties:
                              portEnd:
                                description: Specifies the end of the port range.
                                type: number
                              portStart:
                                description: Specifies the start of the port range.
                                type: number
                              protocol:
                                description: Specifies the protocol of the port range.
                                  Possible values are TCP and UDP.
                                type: string
                            type: object
                          type: array
                        applicationSecurityGroupIds:
                          description: A list of Application Security Group IDs which
                            should be associated with this Node Pool.
                          items:
                            type: string
                          type: array
                        nodePublicIpTags:
                          additionalProperties:
                            type: string
                          description: Specifies a mapping of tags to the instance-level
                            public IPs. Changing this forces a new resource to be
                            created.
                          type: object
                          x-kubernetes-map-type: granular
                      type: object
                    type: array
                  nodePublicIpPrefixId:
                    description: Resource ID for the Public IP Addresses Prefix for
                      the nodes in this Node Pool. enable_node_public_ip should be
                      true. Changing this forces a new resource to be created.
                    type: string
                  nodeTaints:
                    description: A list of Kubernetes taints which should be applied
                      to nodes in the agent pool (e.g key=value:NoSchedule).
                    items:
                      type: string
                    type: array
                  orchestratorVersion:
                    description: Version of Kubernetes used for the Agents. If not
                      specified, the latest recommended version will be used at provisioning
                      time (but won't auto-upgrade). AKS does not require an exact
                      patch version to be specified, minor version aliases such as
                      1.22 are also supported. - The minor version's latest GA patch
                      is automatically chosen in that case. More details can be found
                      in the documentation.
                    type: string
                  osDiskSizeGb:
                    description: The Agent Operating System disk size in GB. Changing
                      this forces a new resource to be created.
                    type: number
                  osDiskType:
                    description: The type of disk which should be used for the Operating
                      System. Possible values are Ephemeral and Managed. Defaults
                      to Managed. Changing this forces a new resource to be created.
                    type: string
                  osSku:
                    description: Specifies the OS SKU used by the agent pool. Possible
                      values are AzureLinux, Ubuntu, Windows2019 and Windows2022.
                      If not specified, the default is Ubuntu if OSType=Linux or Windows2019
                      if OSType=Windows. And the default Windows OSSKU will be changed
                      to Windows2022 after Windows2019 is deprecated. Changing this
                      forces a new resource to be created.
                    type: string
                  osType:
                    description: The Operating System which should be used for this
                      Node Pool. Changing this forces a new resource to be created.
                      Possible values are Linux and Windows. Defaults to Linux.
                    type: string
                  podSubnetId:
                    description: The ID of the Subnet where the pods in the Node Pool
                      should exist. Changing this forces a new resource to be created.
                    type: string
                  priority:
                    description: The Priority for Virtual Machines within the Virtual
                      Machine Scale Set that powers this Node Pool. Possible values
                      are Regular and Spot. Defaults to Regular. Changing this forces
                      a new resource to be created.
                    type: string
                  proximityPlacementGroupId:
                    description: The ID of the Proximity Placement Group where the
                      Virtual Machine Scale Set that powers this Node Pool will be
                      placed. Changing this forces a new resource to be created.
                    type: string
                  scaleDownMode:
                    description: Specifies how the node pool should deal with scaled-down
                      nodes. Allowed values are Delete and Deallocate. Defaults to
                      Delete.
                    type: string
                  snapshotId:
                    description: The ID of the Snapshot which should be used to create
                      this Node Pool. Changing this forces a new resource to be created.
                    type: string
                  spotMaxPrice:
                    description: The maximum price you're willing to pay in USD per
                      Virtual Machine. Valid values are -1 (the current on-demand
                      price for a Virtual Machine) or a positive value with up to
                      five decimal places. Changing this forces a new resource to
                      be created.
                    type: number
                  tags:
                    additionalProperties:
                      type: string
                    description: A mapping of tags to assign to the resource.
                    type: object
                    x-kubernetes-map-type: granular
                  ultraSsdEnabled:
                    description: Used to specify whether the UltraSSD is enabled in
                      the Node Pool. Defaults to false. See the documentation for
                      more information. Changing this forces a new resource to be
                      created.
                    type: boolean
                  upgradeSettings:
                    description: A upgrade_settings block as documented below.
                    items:
                      properties:
                        drainTimeoutInMinutes:
                          description: The amount of time in minutes to wait on eviction
                            of pods and graceful termination per node. This eviction
                            wait time honors waiting on pod disruption budgets. If
                            this time is exceeded, the upgrade fails. Unsetting this
                            after configuring it will force a new resource to be created.
                          type: number
                        maxSurge:
                          description: The maximum number or percentage of nodes which
                            will be added to the Node Pool size during an upgrade.
                          type: string
                        nodeSoakDurationInMinutes:
                          description: The amount of time in minutes to wait after
                            draining a node and before reimaging and moving on to
                            next node. Defaults to 0.
                          type: number
                      type: object
                    type: array
                  vmSize:
                    description: The SKU which should be used for the Virtual Machines
                      used in this Node Pool. Changing this forces a new resource
                      to be created.
                    type: string
                  vnetSubnetId:
                    description: The ID of the Subnet where this Node Pool should
                      exist. Changing this forces a new resource to be created.
                    type: string
                  windowsProfile:
                    description: A windows_profile block as documented below. Changing
                      this forces a new resource to be created.
                    items:
                      properties:
                        outboundNatEnabled:
                          description: Should the Windows nodes in this Node Pool
                            have outbound NAT enabled? Defaults to true. Changing
                            this forces a new resource to be created.
                          type: boolean
                      type: object
                    type: array
                  workloadRuntime:
                    description: Used to specify the workload runtime. Allowed values
                      are OCIContainer, WasmWasi and KataMshvVmIsolation.
                    type: string
                  zones:
                    description: Specifies a list of Availability Zones in which this
                      Kubernetes Cluster Node Pool should be located. Changing this
                      forces a new Kubernetes Cluster Node Pool to be created.
                    items:
                      type: string
                    type: array
                    x-kubernetes-list-type: set
                type: object
              conditions:
                description: Conditions of the resource.
                items:
                  description: A Condition that may apply to a resource.
                  properties:
                    lastTransitionTime:
                      description: |-
                        LastTransitionTime is the last time this condition transitioned from one
                        status to another.
                      format: date-time
                      type: string
                    message:
                      description: |-
                        A Message containing details about this condition's last transition from
                        one status to another, if any.
                      type: string
                    observedGeneration:
                      description: |-
                        ObservedGeneration represents the .metadata.generation that the condition was set based upon.
                        For instance, if .metadata.generation is currently 12, but the .status.conditions[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: A Reason for this condition's last transition from
                        one status to another.
                      type: string
                    status:
                      description: Status of this condition; is it currently True,
                        False, or Unknown?
                      type: string
                    type:
                      description: |-
                        Type of this condition. At most one of each condition type may apply to
                        a resource at any point in time.
                      type: string
                  required:
                  - lastTransitionTime
                  - reason
                  - status
                  - type
                  type: object
                type: array
                x-kubernetes-list-map-keys:
                - type
                x-kubernetes-list-type: map
              observedGeneration:
                description: |-
                  ObservedGeneration is the latest metadata.generation
                  which resulted in either a ready state, or stalled due to error
                  it can not recover from without human intervention.
                format: int64
                type: integer
            type: object
        required:
        - spec
        type: object
    served: true
    storage: true
    subresources:
      status: {}
  - additionalPrinterColumns:
    - jsonPath: .status.conditions[?(@.type=='Synced')].status
      name: SYNCED
      type: string
    - jsonPath: .status.conditions[?(@.type=='Ready')].status
      name: READY
      type: string
    - jsonPath: .metadata.annotations.crossplane\.io/external-name
      name: EXTERNAL-NAME
      type: string
    - jsonPath: .metadata.creationTimestamp
      name: AGE
      type: date
    name: v1beta2
    schema:
      openAPIV3Schema:
        description: KubernetesClusterNodePool is the Schema for the KubernetesClusterNodePools
          API. Manages a Node Pool within a Kubernetes Cluster
        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: KubernetesClusterNodePoolSpec defines the desired state of
              KubernetesClusterNodePool
            properties:
              deletionPolicy:
                default: Delete
                description: |-
                  DeletionPolicy specifies what will happen to the underlying external
                  when this managed resource is deleted - either "Delete" or "Orphan" the
                  external resource.
                  This field is planned to be deprecated in favor of the ManagementPolicies
                  field in a future release. Currently, both could be set independently and
                  non-default values would be honored if the feature flag is enabled.
                  See the design doc for more information: https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223
                enum:
                - Orphan
                - Delete
                type: string
              forProvider:
                properties:
                  capacityReservationGroupId:
                    description: Specifies the ID of the Capacity Reservation Group
                      where this Node Pool should exist. Changing this forces a new
                      resource to be created.
                    type: string
                  customCaTrustEnabled:
                    type: boolean
                  enableAutoScaling:
                    description: Whether to enable auto-scaler.
                    type: boolean
                  enableHostEncryption:
                    description: Should the nodes in this Node Pool have host encryption
                      enabled? Changing this forces a new resource to be created.
                    type: boolean
                  enableNodePublicIp:
                    description: Should each node have a Public IP Address? Changing
                      this forces a new resource to be created.
                    type: boolean
                  evictionPolicy:
                    description: The Eviction Policy which should be used for Virtual
                      Machines within the Virtual Machine Scale Set powering this
                      Node Pool. Possible values are Deallocate and Delete. Changing
                      this forces a new resource to be created.
                    type: string
                  fipsEnabled:
                    description: Should the nodes in this Node Pool have Federal Information
                      Processing Standard enabled? Changing this forces a new resource
                      to be created.
                    type: boolean
                  gpuInstance:
                    description: Specifies the GPU MIG instance profile for supported
                      GPU VM SKU. The allowed values are MIG1g, MIG2g, MIG3g, MIG4g
                      and MIG7g. Changing this forces a new resource to be created.
                    type: string
                  hostGroupId:
                    description: The fully qualified resource ID of the Dedicated
                      Host Group to provision virtual machines from. Changing this
                      forces a new resource to be created.
                    type: string
                  kubeletConfig:
                    description: A kubelet_config block as defined below. Changing
                      this forces a new resource to be created.
                    properties:
                      allowedUnsafeSysctls:
                        description: Specifies the allow list of unsafe sysctls command
                          or patterns (ending in *). Changing this forces a new resource
                          to be created.
                        items:
                          type: string
                        type: array
                        x-kubernetes-list-type: set
                      containerLogMaxLine:
                        description: Specifies the maximum number of container log
                          files that can be present for a container. must be at least
                          2. Changing this forces a new resource to be created.
                        type: number
                      containerLogMaxSizeMb:
                        description: Specifies the maximum size (e.g. 10MB) of container
                          log file before it is rotated. Changing this forces a new
                          resource to be created.
                        type: number
                      cpuCfsQuotaEnabled:
                        description: Is CPU CFS quota enforcement for containers enabled?
                          Changing this forces a new resource to be created.
                        type: boolean
                      cpuCfsQuotaPeriod:
                        description: Specifies the CPU CFS quota period value. Changing
                          this forces a new resource to be created.
                        type: string
                      cpuManagerPolicy:
                        description: Specifies the CPU Manager policy to use. Possible
                          values are none and static, Changing this forces a new resource
                          to be created.
                        type: string
                      imageGcHighThreshold:
                        description: Specifies the percent of disk usage above which
                          image garbage collection is always run. Must be between
                          0 and 100. Changing this forces a new resource to be created.
                        type: number
                      imageGcLowThreshold:
                        description: Specifies the percent of disk usage lower than
                          which image garbage collection is never run. Must be between
                          0 and 100. Changing this forces a new resource to be created.
                        type: number
                      podMaxPid:
                        description: Specifies the maximum number of processes per
                          pod. Changing this forces a new resource to be created.
                        type: number
                      topologyManagerPolicy:
                        description: Specifies the Topology Manager policy to use.
                          Possible values are none, best-effort, restricted or single-numa-node.
                          Changing this forces a new resource to be created.
                        type: string
                    type: object
                  kubeletDiskType:
                    description: The type of disk used by kubelet. Possible values
                      are OS and Temporary.
                    type: string
                  kubernetesClusterId:
                    description: The ID of the Kubernetes Cluster where this Node
                      Pool should exist. Changing this forces a new resource to be
                      created.
                    type: string
                  kubernetesClusterIdRef:
                    description: Reference to a KubernetesCluster in containerservice
                      to populate kubernetesClusterId.
                    properties:
                      name:
                        description: Name of the referenced object.
                        type: string
                      policy:
                        description: Policies for referencing.
                        properties:
                          resolution:
                            default: Required
                            description: |-
                              Resolution specifies whether resolution of this reference is required.
                              The default is 'Required', which means the reconcile will fail if the
                              reference cannot be resolved. 'Optional' means this reference will be
                              a no-op if it cannot be resolved.
                            enum:
                            - Required
                            - Optional
                            type: string
                          resolve:
                            description: |-
                              Resolve specifies when this reference should be resolved. The default
                              is 'IfNotPresent', which will attempt to resolve the reference only when
                              the corresponding field is not present. Use 'Always' to resolve the
                              reference on every reconcile.
                            enum:
                            - Always
                            - IfNotPresent
                            type: string
                        type: object
                    required:
                    - name
                    type: object
                  kubernetesClusterIdSelector:
                    description: Selector for a KubernetesCluster in containerservice
                      to populate kubernetesClusterId.
                    properties:
                      matchControllerRef:
                        description: |-
                          MatchControllerRef ensures an object with the same controller reference
                          as the selecting object is selected.
                        type: boolean
                      matchLabels:
                        additionalProperties:
                          type: string
                        description: MatchLabels ensures an object with matching labels
                          is selected.
                        type: object
                      policy:
                        description: Policies for selection.
                        properties:
                          resolution:
                            default: Required
                            description: |-
                              Resolution specifies whether resolution of this reference is required.
                              The default is 'Required', which means the reconcile will fail if the
                              reference cannot be resolved. 'Optional' means this reference will be
                              a no-op if it cannot be resolved.
                            enum:
                            - Required
                            - Optional
                            type: string
                          resolve:
                            description: |-
                              Resolve specifies when this reference should be resolved. The default
                              is 'IfNotPresent', which will attempt to resolve the reference only when
                              the corresponding field is not present. Use 'Always' to resolve the
                              reference on every reconcile.
                            enum:
                            - Always
                            - IfNotPresent
                            type: string
                        type: object
                    type: object
                  linuxOsConfig:
                    description: A linux_os_config block as defined below. Changing
                      this forces a new resource to be created.
                    properties:
                      swapFileSizeMb:
                        description: Specifies the size of swap file on each node
                          in MB. Changing this forces a new resource to be created.
                        type: number
                      sysctlConfig:
                        description: A sysctl_config block as defined below. Changing
                          this forces a new resource to be created.
                        properties:
                          fsAioMaxNr:
                            description: The sysctl setting fs.aio-max-nr. Must be
                              between 65536 and 6553500. Changing this forces a new
                              resource to be created.
                            type: number
                          fsFileMax:
                            description: The sysctl setting fs.file-max. Must be between
                              8192 and 12000500. Changing this forces a new resource
                              to be created.
                            type: number
                          fsInotifyMaxUserWatches:
                            description: The sysctl setting fs.inotify.max_user_watches.
                              Must be between 781250 and 2097152. Changing this forces
                              a new resource to be created.
                            type: number
                          fsNrOpen:
                            description: The sysctl setting fs.nr_open. Must be between
                              8192 and 20000500. Changing this forces a new resource
                              to be created.
                            type: number
                          kernelThreadsMax:
                            description: The sysctl setting kernel.threads-max. Must
                              be between 20 and 513785. Changing this forces a new
                              resource to be created.
                            type: number
                          netCoreNetdevMaxBacklog:
                            description: The sysctl setting net.core.netdev_max_backlog.
                              Must be between 1000 and 3240000. Changing this forces
                              a new resource to be created.
                            type: number
                          netCoreOptmemMax:
                            description: The sysctl setting net.core.optmem_max. Must
                              be between 20480 and 4194304. Changing this forces a
                              new resource to be created.
                            type: number
                          netCoreRmemDefault:
                            description: The sysctl setting net.core.rmem_default.
                              Must be between 212992 and 134217728. Changing this
                              forces a new resource to be created.
                            type: number
                          netCoreRmemMax:
                            description: The sysctl setting net.core.rmem_max. Must
                              be between 212992 and 134217728. Changing this forces
                              a new resource to be created.
                            type: number
                          netCoreSomaxconn:
                            description: The sysctl setting net.core.somaxconn. Must
                              be between 4096 and 3240000. Changing this forces a
                              new resource to be created.
                            type: number
                          netCoreWmemDefault:
                            description: The sysctl setting net.core.wmem_default.
                              Must be between 212992 and 134217728. Changing this
                              forces a new resource to be created.
                            type: number
                          netCoreWmemMax:
                            description: The sysctl setting net.core.wmem_max. Must
                              be between 212992 and 134217728. Changing this forces
                              a new resource to be created.
                            type: number
                          netIpv4IpLocalPortRangeMax:
                            description: The sysctl setting net.ipv4.ip_local_port_range
                              max value. Must be between 32768 and 65535. Changing
                              this forces a new resource to be created.
                            type: number
                          netIpv4IpLocalPortRangeMin:
                            description: The sysctl setting net.ipv4.ip_local_port_range
                              min value. Must be between 1024 and 60999. Changing
                              this forces a new resource to be created.
                            type: number
                          netIpv4NeighDefaultGcThresh1:
                            description: The sysctl setting net.ipv4.neigh.default.gc_thresh1.
                              Must be between 128 and 80000. Changing this forces
                              a new resource to be created.
                            type: number
                          netIpv4NeighDefaultGcThresh2:
                            description: The sysctl setting net.ipv4.neigh.default.gc_thresh2.
                              Must be between 512 and 90000. Changing this forces
                              a new resource to be created.
                            type: number
                          netIpv4NeighDefaultGcThresh3:
                            description: The sysctl setting net.ipv4.neigh.default.gc_thresh3.
                              Must be between 1024 and 100000. Changing this forces
                              a new resource to be created.
                            type: number
                          netIpv4TcpFinTimeout:
                            description: The sysctl setting net.ipv4.tcp_fin_timeout.
                              Must be between 5 and 120. Changing this forces a new
                              resource to be created.
                            type: number
                          netIpv4TcpKeepaliveIntvl:
                            description: The sysctl setting net.ipv4.tcp_keepalive_intvl.
                              Must be between 10 and 90. Changing this forces a new
                              resource to be created.
                            type: number
                          netIpv4TcpKeepaliveProbes:
                            description: The sysctl setting net.ipv4.tcp_keepalive_probes.
                              Must be between 1 and 15. Changing this forces a new
                              resource to be created.
                            type: number
                          netIpv4TcpKeepaliveTime:
                            description: The sysctl setting net.ipv4.tcp_keepalive_time.
                              Must be between 30 and 432000. Changing this forces
                              a new resource to be created.
                            type: number
                          netIpv4TcpMaxSynBacklog:
                            description: The sysctl setting net.ipv4.tcp_max_syn_backlog.
                              Must be between 128 and 3240000. Changing this forces
                              a new resource to be created.
                            type: number
                          netIpv4TcpMaxTwBuckets:
                            description: The sysctl setting net.ipv4.tcp_max_tw_buckets.
                              Must be between 8000 and 1440000. Changing this forces
                              a new resource to be created.
                            type: number
                          netIpv4TcpTwReuse:
                            description: Is sysctl setting net.ipv4.tcp_tw_reuse enabled?
                              Changing this forces a new resource to be created.
                            type: boolean
                          netNetfilterNfConntrackBuckets:
                            description: The sysctl setting net.netfilter.nf_conntrack_buckets.
                              Must be between 65536 and 524288. Changing this forces
                              a new resource to be created.
                            type: number
                          netNetfilterNfConntrackMax:
                            description: The sysctl setting net.netfilter.nf_conntrack_max.
                              Must be between 131072 and 2097152. Changing this forces
                              a new resource to be created.
                            type: number
                          vmMaxMapCount:
                            description: The sysctl setting vm.max_map_count. Must
                              be between 65530 and 262144. Changing this forces a
                              new resource to be created.
                            type: number
                          vmSwappiness:
                            description: The sysctl setting vm.swappiness. Must be
                              between 0 and 100. Changing this forces a new resource
                              to be created.
                            type: number
                          vmVfsCachePressure:
                            description: The sysctl setting vm.vfs_cache_pressure.
                              Must be between 0 and 100. Changing this forces a new
                              resource to be created.
                            type: number
                        type: object
                      transparentHugePageDefrag:
                        description: specifies the defrag configuration for Transparent
                          Huge Page. Possible values are always, defer, defer+madvise,
                          madvise and never. Changing this forces a new resource to
                          be created.
                        type: string
                      transparentHugePageEnabled:
                        description: Specifies the Transparent Huge Page enabled configuration.
                          Possible values are always, madvise and never. Changing
                          this forces a new resource to be created.
                        type: string
                    type: object
                  maxCount:
                    description: The maximum number of nodes which should exist within
                      this Node Pool. Valid values are between 0 and 1000 and must
                      be greater than or equal to min_count.
                    type: number
                  maxPods:
                    description: The maximum number of pods that can run on each agent.
                      Changing this forces a new resource to be created.
                    type: number
                  messageOfTheDay:
                    type: string
                  minCount:
                    description: The minimum number of nodes which should exist within
                      this Node Pool. Valid values are between 0 and 1000 and must
                      be less than or equal to max_count.
                    type: number
                  mode:
                    description: Should this Node Pool be used for System or User
                      resources? Possible values are System and User. Defaults to
                      User.
                    type: string
                  nodeCount:
                    description: The initial number of nodes which should exist within
                      this Node Pool. Valid values are between 0 and 1000 (inclusive)
                      for user pools and between 1 and 1000 (inclusive) for system
                      pools and must be a value in the range min_count - max_count.
                    type: number
                  nodeLabels:
                    additionalProperties:
                      type: string
                    description: A map of Kubernetes labels which should be applied
                      to nodes in this Node Pool.
                    type: object
                    x-kubernetes-map-type: granular
                  nodeNetworkProfile:
                    description: A node_network_profile block as documented below.
                    properties:
                      allowedHostPorts:
                        description: One or more allowed_host_ports blocks as defined
                          below.
                        items:
                          properties:
                            portEnd:
                              description: Specifies the end of the port range.
                              type: number
                            portStart:
                              description: Specifies the start of the port range.
                              type: number
                            protocol:
                              description: Specifies the protocol of the port range.
                                Possible values are TCP and UDP.
                              type: string
                          type: object
                        type: array
                      applicationSecurityGroupIds:
                        description: A list of Application Security Group IDs which
                          should be associated with this Node Pool.
                        items:
                          type: string
                        type: array
                      nodePublicIpTags:
                        additionalProperties:
                          type: string
                        description: Specifies a mapping of tags to the instance-level
                          public IPs. Changing this forces a new resource to be created.
                        type: object
                        x-kubernetes-map-type: granular
                    type: object
                  nodePublicIpPrefixId:
                    description: Resource ID for the Public IP Addresses Prefix for
                      the nodes in this Node Pool. enable_node_public_ip should be
                      true. Changing this forces a new resource to be created.
                    type: string
                  nodeTaints:
                    description: A list of Kubernetes taints which should be applied
                      to nodes in the agent pool (e.g key=value:NoSchedule).
                    items:
                      type: string
                    type: array
                  orchestratorVersion:
                    description: Version of Kubernetes used for the Agents. If not
                      specified, the latest recommended version will be used at provisioning
                      time (but won't auto-upgrade). AKS does not require an exact
                      patch version to be specified, minor version aliases such as
                      1.22 are also supported. - The minor version's latest GA patch
                      is automatically chosen in that case. More details can be found
                      in the documentation.
                    type: string
                  osDiskSizeGb:
                    description: The Agent Operating System disk size in GB. Changing
                      this forces a new resource to be created.
                    type: number
                  osDiskType:
                    description: The type of disk which should be used for the Operating
                      System. Possible values are Ephemeral and Managed. Defaults
                      to Managed. Changing this forces a new resource to be created.
                    type: string
                  osSku:
                    description: Specifies the OS SKU used by the agent pool. Possible
                      values are AzureLinux, Ubuntu, Windows2019 and Windows2022.
                      If not specified, the default is Ubuntu if OSType=Linux or Windows2019
                      if OSType=Windows. And the default Windows OSSKU will be changed
                      to Windows2022 after Windows2019 is deprecated. Changing this
                      from AzureLinux or Ubuntu to AzureLinux or Ubuntu will not replace
                      the resource, otherwise it forces a new resource to be created.
                    type: string
                  osType:
                    description: The Operating System which should be used for this
                      Node Pool. Changing this forces a new resource to be created.
                      Possible values are Linux and Windows. Defaults to Linux.
                    type: string
                  podSubnetId:
                    description: The ID of the Subnet where the pods in the Node Pool
                      should exist. Changing this forces a new resource to be created.
                    type: string
                  podSubnetIdRef:
                    description: Reference to a Subnet in network to populate podSubnetId.
                    properties:
                      name:
                        description: Name of the referenced object.
                        type: string
                      policy:
                        description: Policies for referencing.
                        properties:
                          resolution:
                            default: Required
                            description: |-
                              Resolution specifies whether resolution of this reference is required.
                              The default is 'Required', which means the reconcile will fail if the
                              reference cannot be resolved. 'Optional' means this reference will be
                              a no-op if it cannot be resolved.
                            enum:
                            - Required
                            - Optional
                            type: string
                          resolve:
                            description: |-
                              Resolve specifies when this reference should be resolved. The default
                              is 'IfNotPresent', which will attempt to resolve the reference only when
                              the corresponding field is not present. Use 'Always' to resolve the
                              reference on every reconcile.
                            enum:
                            - Always
                            - IfNotPresent
                            type: string
                        type: object
                    required:
                    - name
                    type: object
                  podSubnetIdSelector:
                    description: Selector for a Subnet in network to populate podSubnetId.
                    properties:
                      matchControllerRef:
                        description: |-
                          MatchControllerRef ensures an object with the same controller reference
                          as the selecting object is selected.
                        type: boolean
                      matchLabels:
                        additionalProperties:
                          type: string
                        description: MatchLabels ensures an object with matching labels
                          is selected.
                        type: object
                      policy:
                        description: Policies for selection.
                        properties:
                          resolution:
                            default: Required
                            description: |-
                              Resolution specifies whether resolution of this reference is required.
                              The default is 'Required', which means the reconcile will fail if the
                              reference cannot be resolved. 'Optional' means this reference will be
                              a no-op if it cannot be resolved.
                            enum:
                            - Required
                            - Optional
                            type: string
                          resolve:
                            description: |-
                              Resolve specifies when this reference should be resolved. The default
                              is 'IfNotPresent', which will attempt to resolve the reference only when
                              the corresponding field is not present. Use 'Always' to resolve the
                              reference on every reconcile.
                            enum:
                            - Always
                            - IfNotPresent
                            type: string
                        type: object
                    type: object
                  priority:
                    description: The Priority for Virtual Machines within the Virtual
                      Machine Scale Set that powers this Node Pool. Possible values
                      are Regular and Spot. Defaults to Regular. Changing this forces
                      a new resource to be created.
                    type: string
                  proximityPlacementGroupId:
                    description: The ID of the Proximity Placement Group where the
                      Virtual Machine Scale Set that powers this Node Pool will be
                      placed. Changing this forces a new resource to be created.
                    type: string
                  scaleDownMode:
                    description: Specifies how the node pool should deal with scaled-down
                      nodes. Allowed values are Delete and Deallocate. Defaults to
                      Delete.
                    type: string
                  snapshotId:
                    description: The ID of the Snapshot which should be used to create
                      this Node Pool. Changing this forces a new resource to be created.
                    type: string
                  spotMaxPrice:
                    description: The maximum price you're willing to pay in USD per
                      Virtual Machine. Valid values are -1 (the current on-demand
                      price for a Virtual Machine) or a positive value with up to
                      five decimal places. Changing this forces a new resource to
                      be created.
                    type: number
                  tags:
                    additionalProperties:
                      type: string
                    description: A mapping of tags to assign to the resource.
                    type: object
                    x-kubernetes-map-type: granular
                  ultraSsdEnabled:
                    description: Used to specify whether the UltraSSD is enabled in
                      the Node Pool. Defaults to false. See the documentation for
                      more information. Changing this forces a new resource to be
                      created.
                    type: boolean
                  upgradeSettings:
                    description: A upgrade_settings block as documented below.
                    properties:
                      drainTimeoutInMinutes:
                        description: The amount of time in minutes to wait on eviction
                          of pods and graceful termination per node. This eviction
                          wait time honors waiting on pod disruption budgets. If this
                          time is exceeded, the upgrade fails. Unsetting this after
                          configuring it will force a new resource to be created.
                        type: number
                      maxSurge:
                        description: The maximum number or percentage of nodes which
                          will be added to the Node Pool size during an upgrade.
                        type: string
                      nodeSoakDurationInMinutes:
                        description: The amount of time in minutes to wait after draining
                          a node and before reimaging and moving on to next node.
                          Defaults to 0.
                        type: number
                    type: object
                  vmSize:
                    description: The SKU which should be used for the Virtual Machines
                      used in this Node Pool. Changing this forces a new resource
                      to be created.
                    type: string
                  vnetSubnetId:
                    description: The ID of the Subnet where this Node Pool should
                      exist. Changing this forces a new resource to be created.
                    type: string
                  vnetSubnetIdRef:
                    description: Reference to a Subnet in network to populate vnetSubnetId.
                    properties:
                      name:
                        description: Name of the referenced object.
                        type: string
                      policy:
                        description: Policies for referencing.
                        properties:
                          resolution:
                            default: Required
                            description: |-
                              Resolution specifies whether resolution of this reference is required.
                              The default is 'Required', which means the reconcile will fail if the
                              reference cannot be resolved. 'Optional' means this reference will be
                              a no-op if it cannot be resolved.
                            enum:
                            - Required
                            - Optional
                            type: string
                          resolve:
                            description: |-
                              Resolve specifies when this reference should be resolved. The default
                              is 'IfNotPresent', which will attempt to resolve the reference only when
                              the corresponding field is not present. Use 'Always' to resolve the
                              reference on every reconcile.
                            enum:
                            - Always
                            - IfNotPresent
                            type: string
                        type: object
                    required:
                    - name
                    type: object
                  vnetSubnetIdSelector:
                    description: Selector for a Subnet in network to populate vnetSubnetId.
                    properties:
                      matchControllerRef:
                        description: |-
                          MatchControllerRef ensures an object with the same controller reference
                          as the selecting object is selected.
                        type: boolean
                      matchLabels:
                        additionalProperties:
                          type: string
                        description: MatchLabels ensures an object with matching labels
                          is selected.
                        type: object
                      policy:
                        description: Policies for selection.
                        properties:
                          resolution:
                            default: Required
                            description: |-
                              Resolution specifies whether resolution of this reference is required.
                              The default is 'Required', which means the reconcile will fail if the
                              reference cannot be resolved. 'Optional' means this reference will be
                              a no-op if it cannot be resolved.
                            enum:
                            - Required
                            - Optional
                            type: string
                          resolve:
                            description: |-
                              Resolve specifies when this reference should be resolved. The default
                              is 'IfNotPresent', which will attempt to resolve the reference only when
                              the corresponding field is not present. Use 'Always' to resolve the
                              reference on every reconcile.
                            enum:
                            - Always
                            - IfNotPresent
                            type: string
                        type: object
                    type: object
                  windowsProfile:
                    description: A windows_profile block as documented below. Changing
                      this forces a new resource to be created.
                    properties:
                      outboundNatEnabled:
                        description: Should the Windows nodes in this Node Pool have
                          outbound NAT enabled? Defaults to true. Changing this forces
                          a new resource to be created.
                        type: boolean
                    type: object
                  workloadRuntime:
                    description: Used to specify the workload runtime. Allowed values
                      are OCIContainer and WasmWasi.
                    type: string
                  zones:
                    description: Specifies a list of Availability Zones in which this
                      Kubernetes Cluster Node Pool should be located. Changing this
                      forces a new Kubernetes Cluster Node Pool to be created.
                    items:
                      type: string
                    type: array
                    x-kubernetes-list-type: set
                type: object
              initProvider:
                description: |-
                  THIS IS A BETA FIELD. It will be honored
                  unless the Management Policies feature flag is disabled.
                  InitProvider holds the same fields as ForProvider, with the exception
                  of Identifier and other resource reference fields. The fields that are
                  in InitProvider are merged into ForProvider when the resource is created.
                  The same fields are also added to the terraform ignore_changes hook, to
                  avoid updating them after creation. This is useful for fields that are
                  required on creation, but we do not desire to update them after creation,
                  for example because of an external controller is managing them, like an
                  autoscaler.
                properties:
                  capacityReservationGroupId:
                    description: Specifies the ID of the Capacity Reservation Group
                      where this Node Pool should exist. Changing this forces a new
                      resource to be created.
                    type: string
                  customCaTrustEnabled:
                    type: boolean
                  enableAutoScaling:
                    description: Whether to enable auto-scaler.
                    type: boolean
                  enableHostEncryption:
                    description: Should the nodes in this Node Pool have host encryption
                      enabled? Changing this forces a new resource to be created.
                    type: boolean
                  enableNodePublicIp:
                    description: Should each node have a Public IP Address? Changing
                      this forces a new resource to be created.
                    type: boolean
                  evictionPolicy:
                    description: The Eviction Policy which should be used for Virtual
                      Machines within the Virtual Machine Scale Set powering this
                      Node Pool. Possible values are Deallocate and Delete. Changing
                      this forces a new resource to be created.
                    type: string
                  fipsEnabled:
                    description: Should the nodes in this Node Pool have Federal Information
                      Processing Standard enabled? Changing this forces a new resource
                      to be created.
                    type: boolean
                  gpuInstance:
                    description: Specifies the GPU MIG instance profile for supported
                      GPU VM SKU. The allowed values are MIG1g, MIG2g, MIG3g, MIG4g
                      and MIG7g. Changing this forces a new resource to be created.
                    type: string
                  hostGroupId:
                    description: The fully qualified resource ID of the Dedicated
                      Host Group to provision virtual machines from. Changing this
                      forces a new resource to be created.
                    type: string
                  kubeletConfig:
                    description: A kubelet_config block as defined below. Changing
                      this forces a new resource to be created.
                    properties:
                      allowedUnsafeSysctls:
                        description: Specifies the allow list of unsafe sysctls command
                          or patterns (ending in *). Changing this forces a new resource
                          to be created.
                        items:
                          type: string
                        type: array
                        x-kubernetes-list-type: set
                      containerLogMaxLine:
                        description: Specifies the maximum number of container log
                          files that can be present for a container. must be at least
                          2. Changing this forces a new resource to be created.
                        type: number
                      containerLogMaxSizeMb:
                        description: Specifies the maximum size (e.g. 10MB) of container
                          log file before it is rotated. Changing this forces a new
                          resource to be created.
                        type: number
                      cpuCfsQuotaEnabled:
                        description: Is CPU CFS quota enforcement for containers enabled?
                          Changing this forces a new resource to be created.
                        type: boolean
                      cpuCfsQuotaPeriod:
                        description: Specifies the CPU CFS quota period value. Changing
                          this forces a new resource to be created.
                        type: string
                      cpuManagerPolicy:
                        description: Specifies the CPU Manager policy to use. Possible
                          values are none and static, Changing this forces a new resource
                          to be created.
                        type: string
                      imageGcHighThreshold:
                        description: Specifies the percent of disk usage above which
                          image garbage collection is always run. Must be between
                          0 and 100. Changing this forces a new resource to be created.
                        type: number
                      imageGcLowThreshold:
                        description: Specifies the percent of disk usage lower than
                          which image garbage collection is never run. Must be between
                          0 and 100. Changing this forces a new resource to be created.
                        type: number
                      podMaxPid:
                        description: Specifies the maximum number of processes per
                          pod. Changing this forces a new resource to be created.
                        type: number
                      topologyManagerPolicy:
                        description: Specifies the Topology Manager policy to use.
                          Possible values are none, best-effort, restricted or single-numa-node.
                          Changing this forces a new resource to be created.
                        type: string
                    type: object
                  kubeletDiskType:
                    description: The type of disk used by kubelet. Possible values
                      are OS and Temporary.
                    type: string
                  linuxOsConfig:
                    description: A linux_os_config block as defined below. Changing
                      this forces a new resource to be created.
                    properties:
                      swapFileSizeMb:
                        description: Specifies the size of swap file on each node
                          in MB. Changing this forces a new resource to be created.
                        type: number
                      sysctlConfig:
                        description: A sysctl_config block as defined below. Changing
                          this forces a new resource to be created.
                        properties:
                          fsAioMaxNr:
                            description: The sysctl setting fs.aio-max-nr. Must be
                              between 65536 and 6553500. Changing this forces a new
                              resource to be created.
                            type: number
                          fsFileMax:
                            description: The sysctl setting fs.file-max. Must be between
                              8192 and 12000500. Changing this forces a new resource
                              to be created.
                            type: number
                          fsInotifyMaxUserWatches:
                            description: The sysctl setting fs.inotify.max_user_watches.
                              Must be between 781250 and 2097152. Changing this forces
                              a new resource to be created.
                            type: number
                          fsNrOpen:
                            description: The sysctl setting fs.nr_open. Must be between
                              8192 and 20000500. Changing this forces a new resource
                              to be created.
                            type: number
                          kernelThreadsMax:
                            description: The sysctl setting kernel.threads-max. Must
                              be between 20 and 513785. Changing this forces a new
                              resource to be created.
                            type: number
                          netCoreNetdevMaxBacklog:
                            description: The sysctl setting net.core.netdev_max_backlog.
                              Must be between 1000 and 3240000. Changing this forces
                              a new resource to be created.
                            type: number
                          netCoreOptmemMax:
                            description: The sysctl setting net.core.optmem_max. Must
                              be between 20480 and 4194304. Changing this forces a
                              new resource to be created.
                            type: number
                          netCoreRmemDefault:
                            description: The sysctl setting net.core.rmem_default.
                              Must be between 212992 and 134217728. Changing this
                              forces a new resource to be created.
                            type: number
                          netCoreRmemMax:
                            description: The sysctl setting net.core.rmem_max. Must
                              be between 212992 and 134217728. Changing this forces
                              a new resource to be created.
                            type: number
                          netCoreSomaxconn:
                            description: The sysctl setting net.core.somaxconn. Must
                              be between 4096 and 3240000. Changing this forces a
                              new resource to be created.
                            type: number
                          netCoreWmemDefault:
                            description: The sysctl setting net.core.wmem_default.
                              Must be between 212992 and 134217728. Changing this
                              forces a new resource to be created.
                            type: number
                          netCoreWmemMax:
                            description: The sysctl setting net.core.wmem_max. Must
                              be between 212992 and 134217728. Changing this forces
                              a new resource to be created.
                            type: number
                          netIpv4IpLocalPortRangeMax:
                            description: The sysctl setting net.ipv4.ip_local_port_range
                              max value. Must be between 32768 and 65535. Changing
                              this forces a new resource to be created.
                            type: number
                          netIpv4IpLocalPortRangeMin:
                            description: The sysctl setting net.ipv4.ip_local_port_range
                              min value. Must be between 1024 and 60999. Changing
                              this forces a new resource to be created.
                            type: number
                          netIpv4NeighDefaultGcThresh1:
                            description: The sysctl setting net.ipv4.neigh.default.gc_thresh1.
                              Must be between 128 and 80000. Changing this forces
                              a new resource to be created.
                            type: number
                          netIpv4NeighDefaultGcThresh2:
                            description: The sysctl setting net.ipv4.neigh.default.gc_thresh2.
                              Must be between 512 and 90000. Changing this forces
                              a new resource to be created.
                            type: number
                          netIpv4NeighDefaultGcThresh3:
                            description: The sysctl setting net.ipv4.neigh.default.gc_thresh3.
                              Must be between 1024 and 100000. Changing this forces
                              a new resource to be created.
                            type: number
                          netIpv4TcpFinTimeout:
                            description: The sysctl setting net.ipv4.tcp_fin_timeout.
                              Must be between 5 and 120. Changing this forces a new
                              resource to be created.
                            type: number
                          netIpv4TcpKeepaliveIntvl:
                            description: The sysctl setting net.ipv4.tcp_keepalive_intvl.
                              Must be between 10 and 90. Changing this forces a new
                              resource to be created.
                            type: number
                          netIpv4TcpKeepaliveProbes:
                            description: The sysctl setting net.ipv4.tcp_keepalive_probes.
                              Must be between 1 and 15. Changing this forces a new
                              resource to be created.
                            type: number
                          netIpv4TcpKeepaliveTime:
                            description: The sysctl setting net.ipv4.tcp_keepalive_time.
                              Must be between 30 and 432000. Changing this forces
                              a new resource to be created.
                            type: number
                          netIpv4TcpMaxSynBacklog:
                            description: The sysctl setting net.ipv4.tcp_max_syn_backlog.
                              Must be between 128 and 3240000. Changing this forces
                              a new resource to be created.
                            type: number
                          netIpv4TcpMaxTwBuckets:
                            description: The sysctl setting net.ipv4.tcp_max_tw_buckets.
                              Must be between 8000 and 1440000. Changing this forces
                              a new resource to be created.
                            type: number
                          netIpv4TcpTwReuse:
                            description: Is sysctl setting net.ipv4.tcp_tw_reuse enabled?
                              Changing this forces a new resource to be created.
                            type: boolean
                          netNetfilterNfConntrackBuckets:
                            description: The sysctl setting net.netfilter.nf_conntrack_buckets.
                              Must be between 65536 and 524288. Changing this forces
                              a new resource to be created.
                            type: number
                          netNetfilterNfConntrackMax:
                            description: The sysctl setting net.netfilter.nf_conntrack_max.
                              Must be between 131072 and 2097152. Changing this forces
                              a new resource to be created.
                            type: number
                          vmMaxMapCount:
                            description: The sysctl setting vm.max_map_count. Must
                              be between 65530 and 262144. Changing this forces a
                              new resource to be created.
                            type: number
                          vmSwappiness:
                            description: The sysctl setting vm.swappiness. Must be
                              between 0 and 100. Changing this forces a new resource
                              to be created.
                            type: number
                          vmVfsCachePressure:
                            description: The sysctl setting vm.vfs_cache_pressure.
                              Must be between 0 and 100. Changing this forces a new
                              resource to be created.
                            type: number
                        type: object
                      transparentHugePageDefrag:
                        description: specifies the defrag configuration for Transparent
                          Huge Page. Possible values are always, defer, defer+madvise,
                          madvise and never. Changing this forces a new resource to
                          be created.
                        type: string
                      transparentHugePageEnabled:
                        description: Specifies the Transparent Huge Page enabled configuration.
                          Possible values are always, madvise and never. Changing
                          this forces a new resource to be created.
                        type: string
                    type: object
                  maxCount:
                    description: The maximum number of nodes which should exist within
                      this Node Pool. Valid values are between 0 and 1000 and must
                      be greater than or equal to min_count.
                    type: number
                  maxPods:
                    description: The maximum number of pods that can run on each agent.
                      Changing this forces a new resource to be created.
                    type: number
                  messageOfTheDay:
                    type: string
                  minCount:
                    description: The minimum number of nodes which should exist within
                      this Node Pool. Valid values are between 0 and 1000 and must
                      be less than or equal to max_count.
                    type: number
                  mode:
                    description: Should this Node Pool be used for System or User
                      resources? Possible values are System and User. Defaults to
                      User.
                    type: string
                  nodeCount:
                    description: The initial number of nodes which should exist within
                      this Node Pool. Valid values are between 0 and 1000 (inclusive)
                      for user pools and between 1 and 1000 (inclusive) for system
                      pools and must be a value in the range min_count - max_count.
                    type: number
                  nodeLabels:
                    additionalProperties:
                      type: string
                    description: A map of Kubernetes labels which should be applied
                      to nodes in this Node Pool.
                    type: object
                    x-kubernetes-map-type: granular
                  nodeNetworkProfile:
                    description: A node_network_profile block as documented below.
                    properties:
                      allowedHostPorts:
                        description: One or more allowed_host_ports blocks as defined
                          below.
                        items:
                          properties:
                            portEnd:
                              description: Specifies the end of the port range.
                              type: number
                            portStart:
                              description: Specifies the start of the port range.
                              type: number
                            protocol:
                              description: Specifies the protocol of the port range.
                                Possible values are TCP and UDP.
                              type: string
                          type: object
                        type: array
                      applicationSecurityGroupIds:
                        description: A list of Application Security Group IDs which
                          should be associated with this Node Pool.
                        items:
                          type: string
                        type: array
                      nodePublicIpTags:
                        additionalProperties:
                          type: string
                        description: Specifies a mapping of tags to the instance-level
                          public IPs. Changing this forces a new resource to be created.
                        type: object
                        x-kubernetes-map-type: granular
                    type: object
                  nodePublicIpPrefixId:
                    description: Resource ID for the Public IP Addresses Prefix for
                      the nodes in this Node Pool. enable_node_public_ip should be
                      true. Changing this forces a new resource to be created.
                    type: string
                  nodeTaints:
                    description: A list of Kubernetes taints which should be applied
                      to nodes in the agent pool (e.g key=value:NoSchedule).
                    items:
                      type: string
                    type: array
                  orchestratorVersion:
                    description: Version of Kubernetes used for the Agents. If not
                      specified, the latest recommended version will be used at provisioning
                      time (but won't auto-upgrade). AKS does not require an exact
                      patch version to be specified, minor version aliases such as
                      1.22 are also supported. - The minor version's latest GA patch
                      is automatically chosen in that case. More details can be found
                      in the documentation.
                    type: string
                  osDiskSizeGb:
                    description: The Agent Operating System disk size in GB. Changing
                      this forces a new resource to be created.
                    type: number
                  osDiskType:
                    description: The type of disk which should be used for the Operating
                      System. Possible values are Ephemeral and Managed. Defaults
                      to Managed. Changing this forces a new resource to be created.
                    type: string
                  osSku:
                    description: Specifies the OS SKU used by the agent pool. Possible
                      values are AzureLinux, Ubuntu, Windows2019 and Windows2022.
                      If not specified, the default is Ubuntu if OSType=Linux or Windows2019
                      if OSType=Windows. And the default Windows OSSKU will be changed
                      to Windows2022 after Windows2019 is deprecated. Changing this
                      from AzureLinux or Ubuntu to AzureLinux or Ubuntu will not replace
                      the resource, otherwise it forces a new resource to be created.
                    type: string
                  osType:
                    description: The Operating System which should be used for this
                      Node Pool. Changing this forces a new resource to be created.
                      Possible values are Linux and Windows. Defaults to Linux.
                    type: string
                  podSubnetId:
                    description: The ID of the Subnet where the pods in the Node Pool
                      should exist. Changing this forces a new resource to be created.
                    type: string
                  podSubnetIdRef:
                    description: Reference to a Subnet in network to populate podSubnetId.
                    properties:
                      name:
                        description: Name of the referenced object.
                        type: string
                      policy:
                        description: Policies for referencing.
                        properties:
                          resolution:
                            default: Required
                            description: |-
                              Resolution specifies whether resolution of this reference is required.
                              The default is 'Required', which means the reconcile will fail if the
                              reference cannot be resolved. 'Optional' means this reference will be
                              a no-op if it cannot be resolved.
                            enum:
                            - Required
                            - Optional
                            type: string
                          resolve:
                            description: |-
                              Resolve specifies when this reference should be resolved. The default
                              is 'IfNotPresent', which will attempt to resolve the reference only when
                              the corresponding field is not present. Use 'Always' to resolve the
                              reference on every reconcile.
                            enum:
                            - Always
                            - IfNotPresent
                            type: string
                        type: object
                    required:
                    - name
                    type: object
                  podSubnetIdSelector:
                    description: Selector for a Subnet in network to populate podSubnetId.
                    properties:
                      matchControllerRef:
                        description: |-
                          MatchControllerRef ensures an object with the same controller reference
                          as the selecting object is selected.
                        type: boolean
                      matchLabels:
                        additionalProperties:
                          type: string
                        description: MatchLabels ensures an object with matching labels
                          is selected.
                        type: object
                      policy:
                        description: Policies for selection.
                        properties:
                          resolution:
                            default: Required
                            description: |-
                              Resolution specifies whether resolution of this reference is required.
                              The default is 'Required', which means the reconcile will fail if the
                              reference cannot be resolved. 'Optional' means this reference will be
                              a no-op if it cannot be resolved.
                            enum:
                            - Required
                            - Optional
                            type: string
                          resolve:
                            description: |-
                              Resolve specifies when this reference should be resolved. The default
                              is 'IfNotPresent', which will attempt to resolve the reference only when
                              the corresponding field is not present. Use 'Always' to resolve the
                              reference on every reconcile.
                            enum:
                            - Always
                            - IfNotPresent
                            type: string
                        type: object
                    type: object
                  priority:
                    description: The Priority for Virtual Machines within the Virtual
                      Machine Scale Set that powers this Node Pool. Possible values
                      are Regular and Spot. Defaults to Regular. Changing this forces
                      a new resource to be created.
                    type: string
                  proximityPlacementGroupId:
                    description: The ID of the Proximity Placement Group where the
                      Virtual Machine Scale Set that powers this Node Pool will be
                      placed. Changing this forces a new resource to be created.
                    type: string
                  scaleDownMode:
                    description: Specifies how the node pool should deal with scaled-down
                      nodes. Allowed values are Delete and Deallocate. Defaults to
                      Delete.
                    type: string
                  snapshotId:
                    description: The ID of the Snapshot which should be used to create
                      this Node Pool. Changing this forces a new resource to be created.
                    type: string
                  spotMaxPrice:
                    description: The maximum price you're willing to pay in USD per
                      Virtual Machine. Valid values are -1 (the current on-demand
                      price for a Virtual Machine) or a positive value with up to
                      five decimal places. Changing this forces a new resource to
                      be created.
                    type: number
                  tags:
                    additionalProperties:
                      type: string
                    description: A mapping of tags to assign to the resource.
                    type: object
                    x-kubernetes-map-type: granular
                  ultraSsdEnabled:
                    description: Used to specify whether the UltraSSD is enabled in
                      the Node Pool. Defaults to false. See the documentation for
                      more information. Changing this forces a new resource to be
                      created.
                    type: boolean
                  upgradeSettings:
                    description: A upgrade_settings block as documented below.
                    properties:
                      drainTimeoutInMinutes:
                        description: The amount of time in minutes to wait on eviction
                          of pods and graceful termination per node. This eviction
                          wait time honors waiting on pod disruption budgets. If this
                          time is exceeded, the upgrade fails. Unsetting this after
                          configuring it will force a new resource to be created.
                        type: number
                      maxSurge:
                        description: The maximum number or percentage of nodes which
                          will be added to the Node Pool size during an upgrade.
                        type: string
                      nodeSoakDurationInMinutes:
                        description: The amount of time in minutes to wait after draining
                          a node and before reimaging and moving on to next node.
                          Defaults to 0.
                        type: number
                    type: object
                  vmSize:
                    description: The SKU which should be used for the Virtual Machines
                      used in this Node Pool. Changing this forces a new resource
                      to be created.
                    type: string
                  vnetSubnetId:
                    description: The ID of the Subnet where this Node Pool should
                      exist. Changing this forces a new resource to be created.
                    type: string
                  vnetSubnetIdRef:
                    description: Reference to a Subnet in network to populate vnetSubnetId.
                    properties:
                      name:
                        description: Name of the referenced object.
                        type: string
                      policy:
                        description: Policies for referencing.
                        properties:
                          resolution:
                            default: Required
                            description: |-
                              Resolution specifies whether resolution of this reference is required.
                              The default is 'Required', which means the reconcile will fail if the
                              reference cannot be resolved. 'Optional' means this reference will be
                              a no-op if it cannot be resolved.
                            enum:
                            - Required
                            - Optional
                            type: string
                          resolve:
                            description: |-
                              Resolve specifies when this reference should be resolved. The default
                              is 'IfNotPresent', which will attempt to resolve the reference only when
                              the corresponding field is not present. Use 'Always' to resolve the
                              reference on every reconcile.
                            enum:
                            - Always
                            - IfNotPresent
                            type: string
                        type: object
                    required:
                    - name
                    type: object
                  vnetSubnetIdSelector:
                    description: Selector for a Subnet in network to populate vnetSubnetId.
                    properties:
                      matchControllerRef:
                        description: |-
                          MatchControllerRef ensures an object with the same controller reference
                          as the selecting object is selected.
                        type: boolean
                      matchLabels:
                        additionalProperties:
                          type: string
                        description: MatchLabels ensures an object with matching labels
                          is selected.
                        type: object
                      policy:
                        description: Policies for selection.
                        properties:
                          resolution:
                            default: Required
                            description: |-
                              Resolution specifies whether resolution of this reference is required.
                              The default is 'Required', which means the reconcile will fail if the
                              reference cannot be resolved. 'Optional' means this reference will be
                              a no-op if it cannot be resolved.
                            enum:
                            - Required
                            - Optional
                            type: string
                          resolve:
                            description: |-
                              Resolve specifies when this reference should be resolved. The default
                              is 'IfNotPresent', which will attempt to resolve the reference only when
                              the corresponding field is not present. Use 'Always' to resolve the
                              reference on every reconcile.
                            enum:
                            - Always
                            - IfNotPresent
                            type: string
                        type: object
                    type: object
                  windowsProfile:
                    description: A windows_profile block as documented below. Changing
                      this forces a new resource to be created.
                    properties:
                      outboundNatEnabled:
                        description: Should the Windows nodes in this Node Pool have
                          outbound NAT enabled? Defaults to true. Changing this forces
                          a new resource to be created.
                        type: boolean
                    type: object
                  workloadRuntime:
                    description: Used to specify the workload runtime. Allowed values
                      are OCIContainer and WasmWasi.
                    type: string
                  zones:
                    description: Specifies a list of Availability Zones in which this
                      Kubernetes Cluster Node Pool should be located. Changing this
                      forces a new Kubernetes Cluster Node Pool to be created.
                    items:
                      type: string
                    type: array
                    x-kubernetes-list-type: set
                type: object
              managementPolicies:
                default:
                - '*'
                description: |-
                  THIS IS A BETA FIELD. It is on by default but can be opted out
                  through a Crossplane feature flag.
                  ManagementPolicies specify the array of actions Crossplane is allowed to
                  take on the managed and external resources.
                  This field is planned to replace the DeletionPolicy field in a future
                  release. Currently, both could be set independently and non-default
                  values would be honored if the feature flag is enabled. If both are
                  custom, the DeletionPolicy field will be ignored.
                  See the design doc for more information: https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223
                  and this one: https://github.com/crossplane/crossplane/blob/444267e84783136daa93568b364a5f01228cacbe/design/one-pager-ignore-changes.md
                items:
                  description: |-
                    A ManagementAction represents an action that the Crossplane controllers
                    can take on an external resource.
                  enum:
                  - Observe
                  - Create
                  - Update
                  - Delete
                  - LateInitialize
                  - '*'
                  type: string
                type: array
              providerConfigRef:
                default:
                  name: default
                description: |-
                  ProviderConfigReference specifies how the provider that will be used to
                  create, observe, update, and delete this managed resource should be
                  configured.
                properties:
                  name:
                    description: Name of the referenced object.
                    type: string
                  policy:
                    description: Policies for referencing.
                    properties:
                      resolution:
                        default: Required
                        description: |-
                          Resolution specifies whether resolution of this reference is required.
                          The default is 'Required', which means the reconcile will fail if the
                          reference cannot be resolved. 'Optional' means this reference will be
                          a no-op if it cannot be resolved.
                        enum:
                        - Required
                        - Optional
                        type: string
                      resolve:
                        description: |-
                          Resolve specifies when this reference should be resolved. The default
                          is 'IfNotPresent', which will attempt to resolve the reference only when
                          the corresponding field is not present. Use 'Always' to resolve the
                          reference on every reconcile.
                        enum:
                        - Always
                        - IfNotPresent
                        type: string
                    type: object
                required:
                - name
                type: object
              publishConnectionDetailsTo:
                description: |-
                  PublishConnectionDetailsTo specifies the connection secret config which
                  contains a name, metadata and a reference to secret store config to
                  which any connection details for this managed resource should be written.
                  Connection details frequently include the endpoint, username,
                  and password required to connect to the managed resource.
                properties:
                  configRef:
                    default:
                      name: default
                    description: |-
                      SecretStoreConfigRef specifies which secret store config should be used
                      for this ConnectionSecret.
                    properties:
                      name:
                        description: Name of the referenced object.
                        type: string
                      policy:
                        description: Policies for referencing.
                        properties:
                          resolution:
                            default: Required
                            description: |-
                              Resolution specifies whether resolution of this reference is required.
                              The default is 'Required', which means the reconcile will fail if the
                              reference cannot be resolved. 'Optional' means this reference will be
                              a no-op if it cannot be resolved.
                            enum:
                            - Required
                            - Optional
                            type: string
                          resolve:
                            description: |-
                              Resolve specifies when this reference should be resolved. The default
                              is 'IfNotPresent', which will attempt to resolve the reference only when
                              the corresponding field is not present. Use 'Always' to resolve the
                              reference on every reconcile.
                            enum:
                            - Always
                            - IfNotPresent
                            type: string
                        type: object
                    required:
                    - name
                    type: object
                  metadata:
                    description: Metadata is the metadata for connection secret.
                    properties:
                      annotations:
                        additionalProperties:
                          type: string
                        description: |-
                          Annotations are the annotations to be added to connection secret.
                          - For Kubernetes secrets, this will be used as "metadata.annotations".
                          - It is up to Secret Store implementation for others store types.
                        type: object
                      labels:
                        additionalProperties:
                          type: string
                        description: |-
                          Labels are the labels/tags to be added to connection secret.
                          - For Kubernetes secrets, this will be used as "metadata.labels".
                          - It is up to Secret Store implementation for others store types.
                        type: object
                      type:
                        description: |-
                          Type is the SecretType for the connection secret.
                          - Only valid for Kubernetes Secret Stores.
                        type: string
                    type: object
                  name:
                    description: Name is the name of the connection secret.
                    type: string
                required:
                - name
                type: object
              writeConnectionSecretToRef:
                description: |-
                  WriteConnectionSecretToReference specifies the namespace and name of a
                  Secret to which any connection details for this managed resource should
                  be written. Connection details frequently include the endpoint, username,
                  and password required to connect to the managed resource.
                  This field is planned to be replaced in a future release in favor of
                  PublishConnectionDetailsTo. Currently, both could be set independently
                  and connection details would be published to both without affecting
                  each other.
                properties:
                  name:
                    description: Name of the secret.
                    type: string
                  namespace:
                    description: Namespace of the secret.
                    type: string
                required:
                - name
                - namespace
                type: object
            required:
            - forProvider
            type: object
            x-kubernetes-validations:
            - message: spec.forProvider.vmSize is a required parameter
              rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies
                || ''Update'' in self.managementPolicies) || has(self.forProvider.vmSize)
                || (has(self.initProvider) && has(self.initProvider.vmSize))'
          status:
            description: KubernetesClusterNodePoolStatus defines the observed state
              of KubernetesClusterNodePool.
            properties:
              atProvider:
                properties:
                  capacityReservationGroupId:
                    description: Specifies the ID of the Capacity Reservation Group
                      where this Node Pool should exist. Changing this forces a new
                      resource to be created.
                    type: string
                  customCaTrustEnabled:
                    type: boolean
                  enableAutoScaling:
                    description: Whether to enable auto-scaler.
                    type: boolean
                  enableHostEncryption:
                    description: Should the nodes in this Node Pool have host encryption
                      enabled? Changing this forces a new resource to be created.
                    type: boolean
                  enableNodePublicIp:
                    description: Should each node have a Public IP Address? Changing
                      this forces a new resource to be created.
                    type: boolean
                  evictionPolicy:
                    description: The Eviction Policy which should be used for Virtual
                      Machines within the Virtual Machine Scale Set powering this
                      Node Pool. Possible values are Deallocate and Delete. Changing
                      this forces a new resource to be created.
                    type: string
                  fipsEnabled:
                    description: Should the nodes in this Node Pool have Federal Information
                      Processing Standard enabled? Changing this forces a new resource
                      to be created.
                    type: boolean
                  gpuInstance:
                    description: Specifies the GPU MIG instance profile for supported
                      GPU VM SKU. The allowed values are MIG1g, MIG2g, MIG3g, MIG4g
                      and MIG7g. Changing this forces a new resource to be created.
                    type: string
                  hostGroupId:
                    description: The fully qualified resource ID of the Dedicated
                      Host Group to provision virtual machines from. Changing this
                      forces a new resource to be created.
                    type: string
                  id:
                    description: The ID of the Kubernetes Cluster Node Pool.
                    type: string
                  kubeletConfig:
                    description: A kubelet_config block as defined below. Changing
                      this forces a new resource to be created.
                    properties:
                      allowedUnsafeSysctls:
                        description: Specifies the allow list of unsafe sysctls command
                          or patterns (ending in *). Changing this forces a new resource
                          to be created.
                        items:
                          type: string
                        type: array
                        x-kubernetes-list-type: set
                      containerLogMaxLine:
                        description: Specifies the maximum number of container log
                          files that can be present for a container. must be at least
                          2. Changing this forces a new resource to be created.
                        type: number
                      containerLogMaxSizeMb:
                        description: Specifies the maximum size (e.g. 10MB) of container
                          log file before it is rotated. Changing this forces a new
                          resource to be created.
                        type: number
                      cpuCfsQuotaEnabled:
                        description: Is CPU CFS quota enforcement for containers enabled?
                          Changing this forces a new resource to be created.
                        type: boolean
                      cpuCfsQuotaPeriod:
                        description: Specifies the CPU CFS quota period value. Changing
                          this forces a new resource to be created.
                        type: string
                      cpuManagerPolicy:
                        description: Specifies the CPU Manager policy to use. Possible
                          values are none and static, Changing this forces a new resource
                          to be created.
                        type: string
                      imageGcHighThreshold:
                        description: Specifies the percent of disk usage above which
                          image garbage collection is always run. Must be between
                          0 and 100. Changing this forces a new resource to be created.
                        type: number
                      imageGcLowThreshold:
                        description: Specifies the percent of disk usage lower than
                          which image garbage collection is never run. Must be between
                          0 and 100. Changing this forces a new resource to be created.
                        type: number
                      podMaxPid:
                        description: Specifies the maximum number of processes per
                          pod. Changing this forces a new resource to be created.
                        type: number
                      topologyManagerPolicy:
                        description: Specifies the Topology Manager policy to use.
                          Possible values are none, best-effort, restricted or single-numa-node.
                          Changing this forces a new resource to be created.
                        type: string
                    type: object
                  kubeletDiskType:
                    description: The type of disk used by kubelet. Possible values
                      are OS and Temporary.
                    type: string
                  kubernetesClusterId:
                    description: The ID of the Kubernetes Cluster where this Node
                      Pool should exist. Changing this forces a new resource to be
                      created.
                    type: string
                  linuxOsConfig:
                    description: A linux_os_config block as defined below. Changing
                      this forces a new resource to be created.
                    properties:
                      swapFileSizeMb:
                        description: Specifies the size of swap file on each node
                          in MB. Changing this forces a new resource to be created.
                        type: number
                      sysctlConfig:
                        description: A sysctl_config block as defined below. Changing
                          this forces a new resource to be created.
                        properties:
                          fsAioMaxNr:
                            description: The sysctl setting fs.aio-max-nr. Must be
                              between 65536 and 6553500. Changing this forces a new
                              resource to be created.
                            type: number
                          fsFileMax:
                            description: The sysctl setting fs.file-max. Must be between
                              8192 and 12000500. Changing this forces a new resource
                              to be created.
                            type: number
                          fsInotifyMaxUserWatches:
                            description: The sysctl setting fs.inotify.max_user_watches.
                              Must be between 781250 and 2097152. Changing this forces
                              a new resource to be created.
                            type: number
                          fsNrOpen:
                            description: The sysctl setting fs.nr_open. Must be between
                              8192 and 20000500. Changing this forces a new resource
                              to be created.
                            type: number
                          kernelThreadsMax:
                            description: The sysctl setting kernel.threads-max. Must
                              be between 20 and 513785. Changing this forces a new
                              resource to be created.
                            type: number
                          netCoreNetdevMaxBacklog:
                            description: The sysctl setting net.core.netdev_max_backlog.
                              Must be between 1000 and 3240000. Changing this forces
                              a new resource to be created.
                            type: number
                          netCoreOptmemMax:
                            description: The sysctl setting net.core.optmem_max. Must
                              be between 20480 and 4194304. Changing this forces a
                              new resource to be created.
                            type: number
                          netCoreRmemDefault:
                            description: The sysctl setting net.core.rmem_default.
                              Must be between 212992 and 134217728. Changing this
                              forces a new resource to be created.
                            type: number
                          netCoreRmemMax:
                            description: The sysctl setting net.core.rmem_max. Must
                              be between 212992 and 134217728. Changing this forces
                              a new resource to be created.
                            type: number
                          netCoreSomaxconn:
                            description: The sysctl setting net.core.somaxconn. Must
                              be between 4096 and 3240000. Changing this forces a
                              new resource to be created.
                            type: number
                          netCoreWmemDefault:
                            description: The sysctl setting net.core.wmem_default.
                              Must be between 212992 and 134217728. Changing this
                              forces a new resource to be created.
                            type: number
                          netCoreWmemMax:
                            description: The sysctl setting net.core.wmem_max. Must
                              be between 212992 and 134217728. Changing this forces
                              a new resource to be created.
                            type: number
                          netIpv4IpLocalPortRangeMax:
                            description: The sysctl setting net.ipv4.ip_local_port_range
                              max value. Must be between 32768 and 65535. Changing
                              this forces a new resource to be created.
                            type: number
                          netIpv4IpLocalPortRangeMin:
                            description: The sysctl setting net.ipv4.ip_local_port_range
                              min value. Must be between 1024 and 60999. Changing
                              this forces a new resource to be created.
                            type: number
                          netIpv4NeighDefaultGcThresh1:
                            description: The sysctl setting net.ipv4.neigh.default.gc_thresh1.
                              Must be between 128 and 80000. Changing this forces
                              a new resource to be created.
                            type: number
                          netIpv4NeighDefaultGcThresh2:
                            description: The sysctl setting net.ipv4.neigh.default.gc_thresh2.
                              Must be between 512 and 90000. Changing this forces
                              a new resource to be created.
                            type: number
                          netIpv4NeighDefaultGcThresh3:
                            description: The sysctl setting net.ipv4.neigh.default.gc_thresh3.
                              Must be between 1024 and 100000. Changing this forces
                              a new resource to be created.
                            type: number
                          netIpv4TcpFinTimeout:
                            description: The sysctl setting net.ipv4.tcp_fin_timeout.
                              Must be between 5 and 120. Changing this forces a new
                              resource to be created.
                            type: number
                          netIpv4TcpKeepaliveIntvl:
                            description: The sysctl setting net.ipv4.tcp_keepalive_intvl.
                              Must be between 10 and 90. Changing this forces a new
                              resource to be created.
                            type: number
                          netIpv4TcpKeepaliveProbes:
                            description: The sysctl setting net.ipv4.tcp_keepalive_probes.
                              Must be between 1 and 15. Changing this forces a new
                              resource to be created.
                            type: number
                          netIpv4TcpKeepaliveTime:
                            description: The sysctl setting net.ipv4.tcp_keepalive_time.
                              Must be between 30 and 432000. Changing this forces
                              a new resource to be created.
                            type: number
                          netIpv4TcpMaxSynBacklog:
                            description: The sysctl setting net.ipv4.tcp_max_syn_backlog.
                              Must be between 128 and 3240000. Changing this forces
                              a new resource to be created.
                            type: number
                          netIpv4TcpMaxTwBuckets:
                            description: The sysctl setting net.ipv4.tcp_max_tw_buckets.
                              Must be between 8000 and 1440000. Changing this forces
                              a new resource to be created.
                            type: number
                          netIpv4TcpTwReuse:
                            description: Is sysctl setting net.ipv4.tcp_tw_reuse enabled?
                              Changing this forces a new resource to be created.
                            type: boolean
                          netNetfilterNfConntrackBuckets:
                            description: The sysctl setting net.netfilter.nf_conntrack_buckets.
                              Must be between 65536 and 524288. Changing this forces
                              a new resource to be created.
                            type: number
                          netNetfilterNfConntrackMax:
                            description: The sysctl setting net.netfilter.nf_conntrack_max.
                              Must be between 131072 and 2097152. Changing this forces
                              a new resource to be created.
                            type: number
                          vmMaxMapCount:
                            description: The sysctl setting vm.max_map_count. Must
                              be between 65530 and 262144. Changing this forces a
                              new resource to be created.
                            type: number
                          vmSwappiness:
                            description: The sysctl setting vm.swappiness. Must be
                              between 0 and 100. Changing this forces a new resource
                              to be created.
                            type: number
                          vmVfsCachePressure:
                            description: The sysctl setting vm.vfs_cache_pressure.
                              Must be between 0 and 100. Changing this forces a new
                              resource to be created.
                            type: number
                        type: object
                      transparentHugePageDefrag:
                        description: specifies the defrag configuration for Transparent
                          Huge Page. Possible values are always, defer, defer+madvise,
                          madvise and never. Changing this forces a new resource to
                          be created.
                        type: string
                      transparentHugePageEnabled:
                        description: Specifies the Transparent Huge Page enabled configuration.
                          Possible values are always, madvise and never. Changing
                          this forces a new resource to be created.
                        type: string
                    type: object
                  maxCount:
                    description: The maximum number of nodes which should exist within
                      this Node Pool. Valid values are between 0 and 1000 and must
                      be greater than or equal to min_count.
                    type: number
                  maxPods:
                    description: The maximum number of pods that can run on each agent.
                      Changing this forces a new resource to be created.
                    type: number
                  messageOfTheDay:
                    type: string
                  minCount:
                    description: The minimum number of nodes which should exist within
                      this Node Pool. Valid values are between 0 and 1000 and must
                      be less than or equal to max_count.
                    type: number
                  mode:
                    description: Should this Node Pool be used for System or User
                      resources? Possible values are System and User. Defaults to
                      User.
                    type: string
                  nodeCount:
                    description: The initial number of nodes which should exist within
                      this Node Pool. Valid values are between 0 and 1000 (inclusive)
                      for user pools and between 1 and 1000 (inclusive) for system
                      pools and must be a value in the range min_count - max_count.
                    type: number
                  nodeLabels:
                    additionalProperties:
                      type: string
                    description: A map of Kubernetes labels which should be applied
                      to nodes in this Node Pool.
                    type: object
                    x-kubernetes-map-type: granular
                  nodeNetworkProfile:
                    description: A node_network_profile block as documented below.
                    properties:
                      allowedHostPorts:
                        description: One or more allowed_host_ports blocks as defined
                          below.
                        items:
                          properties:
                            portEnd:
                              description: Specifies the end of the port range.
                              type: number
                            portStart:
                              description: Specifies the start of the port range.
                              type: number
                            protocol:
                              description: Specifies the protocol of the port range.
                                Possible values are TCP and UDP.
                              type: string
                          type: object
                        type: array
                      applicationSecurityGroupIds:
                        description: A list of Application Security Group IDs which
                          should be associated with this Node Pool.
                        items:
                          type: string
                        type: array
                      nodePublicIpTags:
                        additionalProperties:
                          type: string
                        description: Specifies a mapping of tags to the instance-level
                          public IPs. Changing this forces a new resource to be created.
                        type: object
                        x-kubernetes-map-type: granular
                    type: object
                  nodePublicIpPrefixId:
                    description: Resource ID for the Public IP Addresses Prefix for
                      the nodes in this Node Pool. enable_node_public_ip should be
                      true. Changing this forces a new resource to be created.
                    type: string
                  nodeTaints:
                    description: A list of Kubernetes taints which should be applied
                      to nodes in the agent pool (e.g key=value:NoSchedule).
                    items:
                      type: string
                    type: array
                  orchestratorVersion:
                    description: Version of Kubernetes used for the Agents. If not
                      specified, the latest recommended version will be used at provisioning
                      time (but won't auto-upgrade). AKS does not require an exact
                      patch version to be specified, minor version aliases such as
                      1.22 are also supported. - The minor version's latest GA patch
                      is automatically chosen in that case. More details can be found
                      in the documentation.
                    type: string
                  osDiskSizeGb:
                    description: The Agent Operating System disk size in GB. Changing
                      this forces a new resource to be created.
                    type: number
                  osDiskType:
                    description: The type of disk which should be used for the Operating
                      System. Possible values are Ephemeral and Managed. Defaults
                      to Managed. Changing this forces a new resource to be created.
                    type: string
                  osSku:
                    description: Specifies the OS SKU used by the agent pool. Possible
                      values are AzureLinux, Ubuntu, Windows2019 and Windows2022.
                      If not specified, the default is Ubuntu if OSType=Linux or Windows2019
                      if OSType=Windows. And the default Windows OSSKU will be changed
                      to Windows2022 after Windows2019 is deprecated. Changing this
                      from AzureLinux or Ubuntu to AzureLinux or Ubuntu will not replace
                      the resource, otherwise it forces a new resource to be created.
                    type: string
                  osType:
                    description: The Operating System which should be used for this
                      Node Pool. Changing this forces a new resource to be created.
                      Possible values are Linux and Windows. Defaults to Linux.
                    type: string
                  podSubnetId:
                    description: The ID of the Subnet where the pods in the Node Pool
                      should exist. Changing this forces a new resource to be created.
                    type: string
                  priority:
                    description: The Priority for Virtual Machines within the Virtual
                      Machine Scale Set that powers this Node Pool. Possible values
                      are Regular and Spot. Defaults to Regular. Changing this forces
                      a new resource to be created.
                    type: string
                  proximityPlacementGroupId:
                    description: The ID of the Proximity Placement Group where the
                      Virtual Machine Scale Set that powers this Node Pool will be
                      placed. Changing this forces a new resource to be created.
                    type: string
                  scaleDownMode:
                    description: Specifies how the node pool should deal with scaled-down
                      nodes. Allowed values are Delete and Deallocate. Defaults to
                      Delete.
                    type: string
                  snapshotId:
                    description: The ID of the Snapshot which should be used to create
                      this Node Pool. Changing this forces a new resource to be created.
                    type: string
                  spotMaxPrice:
                    description: The maximum price you're willing to pay in USD per
                      Virtual Machine. Valid values are -1 (the current on-demand
                      price for a Virtual Machine) or a positive value with up to
                      five decimal places. Changing this forces a new resource to
                      be created.
                    type: number
                  tags:
                    additionalProperties:
                      type: string
                    description: A mapping of tags to assign to the resource.
                    type: object
                    x-kubernetes-map-type: granular
                  ultraSsdEnabled:
                    description: Used to specify whether the UltraSSD is enabled in
                      the Node Pool. Defaults to false. See the documentation for
                      more information. Changing this forces a new resource to be
                      created.
                    type: boolean
                  upgradeSettings:
                    description: A upgrade_settings block as documented below.
                    properties:
                      drainTimeoutInMinutes:
                        description: The amount of time in minutes to wait on eviction
                          of pods and graceful termination per node. This eviction
                          wait time honors waiting on pod disruption budgets. If this
                          time is exceeded, the upgrade fails. Unsetting this after
                          configuring it will force a new resource to be created.
                        type: number
                      maxSurge:
                        description: The maximum number or percentage of nodes which
                          will be added to the Node Pool size during an upgrade.
                        type: string
                      nodeSoakDurationInMinutes:
                        description: The amount of time in minutes to wait after draining
                          a node and before reimaging and moving on to next node.
                          Defaults to 0.
                        type: number
                    type: object
                  vmSize:
                    description: The SKU which should be used for the Virtual Machines
                      used in this Node Pool. Changing this forces a new resource
                      to be created.
                    type: string
                  vnetSubnetId:
                    description: The ID of the Subnet where this Node Pool should
                      exist. Changing this forces a new resource to be created.
                    type: string
                  windowsProfile:
                    description: A windows_profile block as documented below. Changing
                      this forces a new resource to be created.
                    properties:
                      outboundNatEnabled:
                        description: Should the Windows nodes in this Node Pool have
                          outbound NAT enabled? Defaults to true. Changing this forces
                          a new resource to be created.
                        type: boolean
                    type: object
                  workloadRuntime:
                    description: Used to specify the workload runtime. Allowed values
                      are OCIContainer and WasmWasi.
                    type: string
                  zones:
                    description: Specifies a list of Availability Zones in which this
                      Kubernetes Cluster Node Pool should be located. Changing this
                      forces a new Kubernetes Cluster Node Pool to be created.
                    items:
                      type: string
                    type: array
                    x-kubernetes-list-type: set
                type: object
              conditions:
                description: Conditions of the resource.
                items:
                  description: A Condition that may apply to a resource.
                  properties:
                    lastTransitionTime:
                      description: |-
                        LastTransitionTime is the last time this condition transitioned from one
                        status to another.
                      format: date-time
                      type: string
                    message:
                      description: |-
                        A Message containing details about this condition's last transition from
                        one status to another, if any.
                      type: string
                    observedGeneration:
                      description: |-
                        ObservedGeneration represents the .metadata.generation that the condition was set based upon.
                        For instance, if .metadata.generation is currently 12, but the .status.conditions[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: A Reason for this condition's last transition from
                        one status to another.
                      type: string
                    status:
                      description: Status of this condition; is it currently True,
                        False, or Unknown?
                      type: string
                    type:
                      description: |-
                        Type of this condition. At most one of each condition type may apply to
                        a resource at any point in time.
                      type: string
                  required:
                  - lastTransitionTime
                  - reason
                  - status
                  - type
                  type: object
                type: array
                x-kubernetes-list-map-keys:
                - type
                x-kubernetes-list-type: map
              observedGeneration:
                description: |-
                  ObservedGeneration is the latest metadata.generation
                  which resulted in either a ready state, or stalled due to error
                  it can not recover from without human intervention.
                format: int64
                type: integer
            type: object
        required:
        - spec
        type: object
    served: true
    storage: false
    subresources:
      status: {}
