# encoding: utf-8
# Code generated by Microsoft (R) AutoRest Code Generator.
# Changes may cause incorrect behavior and will be lost if the code is
# regenerated.

module Azure::ContainerService::Mgmt::V2020_09_01
  module Models
    #
    # Profile for Windows VMs in the container service cluster.
    #
    class ManagedClusterWindowsProfile

      include MsRestAzure

      # @return [String] Specifies the name of the administrator account.
      # <br><br> **restriction:** Cannot end in "." <br><br> **Disallowed
      # values:** "administrator", "admin", "user", "user1", "test", "user2",
      # "test1", "user3", "admin1", "1", "123", "a", "actuser", "adm",
      # "admin2", "aspnet", "backup", "console", "david", "guest", "john",
      # "owner", "root", "server", "sql", "support", "support_388945a0", "sys",
      # "test2", "test3", "user4", "user5". <br><br> **Minimum-length:** 1
      # character <br><br> **Max-length:** 20 characters
      attr_accessor :admin_username

      # @return [String] Specifies the password of the administrator account.
      # <br><br> **Minimum-length:** 8 characters <br><br> **Max-length:** 123
      # characters <br><br> **Complexity requirements:** 3 out of 4 conditions
      # below need to be fulfilled <br> Has lower characters <br>Has upper
      # characters <br> Has a digit <br> Has a special character (Regex match
      # [\W_]) <br><br> **Disallowed values:** "abc@123", "P@$$w0rd",
      # "P@ssw0rd", "P@ssword123", "Pa$$word", "pass@word1", "Password!",
      # "Password1", "Password22", "iloveyou!"
      attr_accessor :admin_password

      # @return [LicenseType] The licenseType to use for Windows VMs.
      # Windows_Server is used to enable Azure Hybrid User Benefits for Windows
      # VMs. Possible values include: 'None', 'Windows_Server'
      attr_accessor :license_type


      #
      # Mapper for ManagedClusterWindowsProfile class as Ruby Hash.
      # This will be used for serialization/deserialization.
      #
      def self.mapper()
        {
          client_side_validation: true,
          required: false,
          serialized_name: 'ManagedClusterWindowsProfile',
          type: {
            name: 'Composite',
            class_name: 'ManagedClusterWindowsProfile',
            model_properties: {
              admin_username: {
                client_side_validation: true,
                required: true,
                serialized_name: 'adminUsername',
                type: {
                  name: 'String'
                }
              },
              admin_password: {
                client_side_validation: true,
                required: false,
                serialized_name: 'adminPassword',
                type: {
                  name: 'String'
                }
              },
              license_type: {
                client_side_validation: true,
                required: false,
                serialized_name: 'licenseType',
                type: {
                  name: 'String'
                }
              }
            }
          }
        }
      end
    end
  end
end
