text: /*
   * Copyright (c) Microsoft Corporation. All rights reserved.
   * Licensed under the MIT License. See License.txt in the project root for
   * license information.
   * 
   * Code generated by Microsoft (R) AutoRest Code Generator.
   * Changes may cause incorrect behavior and will be lost if the code is
   * regenerated.
   */
  
  'use strict';
  
  var models = require('./index');
  
  var util = require('util');
  
  /**
   * @class
   * Initializes a new instance of the OSProfile class.
   * @constructor
   * Describes an OS profile.
   * @member {string} [computerName] the computer name.
   * 
   * @member {string} [adminUsername] the admin user name.
   * 
   * @member {string} [adminPassword] the admin user password.
   * 
   * @member {string} [customData] a base-64 encoded string of custom data.
   * 
   * @member {object} [windowsConfiguration] the Windows Configuration of the OS
   * profile.
   * 
   * @member {boolean} [windowsConfiguration.provisionVMAgent] whether VM Agent
   * should be provisioned on the Virtual Machine.
   * 
   * @member {boolean} [windowsConfiguration.enableAutomaticUpdates] whether
   * Windows updates are automatically installed on the VM
   * 
   * @member {string} [windowsConfiguration.timeZone] the Time Zone of the VM
   * 
   * @member {array} [windowsConfiguration.additionalUnattendContent] the
   * additional base-64 encoded XML formatted information that can be included
   * in the Unattend.xml file.
   * 
   * @member {object} [windowsConfiguration.winRM] the Windows Remote Management
   * configuration of the VM
   * 
   * @member {array} [windowsConfiguration.winRM.listeners] the list of Windows
   * Remote Management listeners
   * 
   * @member {object} [linuxConfiguration] the Linux Configuration of the OS
   * profile.
   * 
   * @member {boolean} [linuxConfiguration.disablePasswordAuthentication]
   * whether Authentication using user name and password is allowed or not
   * 
   * @member {object} [linuxConfiguration.ssh] the SSH configuration for linux
   * VMs
   * 
   * @member {array} [linuxConfiguration.ssh.publicKeys] the list of SSH public
   * keys used to authenticate with linux based VMs
   * 
   * @member {array} [secrets] the List of certificates for addition to the VM.
   * 
   */
  function OSProfile() {
  }
  
  /**
   * Defines the metadata of OSProfile
   *
   * @returns {object} metadata of OSProfile
   *
   */
  OSProfile.prototype.mapper = function () {
    return {
      required: false,
      serializedName: 'OSProfile',
      type: {
        name: 'Composite',
        className: 'OSProfile',
        modelProperties: {
          computerName: {
            required: false,
            serializedName: 'computerName',
            type: {
              name: 'String'
            }
          },
          adminUsername: {
            required: false,
            serializedName: 'adminUsername',
            type: {
              name: 'String'
            }
          },
          adminPassword: {
            required: false,
            serializedName: 'adminPassword',
            type: {
              name: 'String'
            }
          },
          customData: {
            required: false,
            serializedName: 'customData',
            type: {
              name: 'String'
            }
          },
          windowsConfiguration: {
            required: false,
            serializedName: 'windowsConfiguration',
            type: {
              name: 'Composite',
              className: 'WindowsConfiguration'
            }
          },
          linuxConfiguration: {
            required: false,
            serializedName: 'linuxConfiguration',
            type: {
              name: 'Composite',
              className: 'LinuxConfiguration'
            }
          },
          secrets: {
            required: false,
            serializedName: 'secrets',
            type: {
              name: 'Sequence',
              element: {
                  required: false,
                  serializedName: 'VaultSecretGroupElementType',
                  type: {
                    name: 'Composite',
                    className: 'VaultSecretGroup'
                  }
              }
            }
          }
        }
      }
    };
  };
  
  module.exports = OSProfile;
  