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';
  
  const models = require('./index');
  
  /**
   * Request parameters for updating an existing work or school account user.
   *
   * @extends models['UserBase']
   */
  class UserUpdateParameters extends models['UserBase'] {
    /**
     * Create a UserUpdateParameters.
     * @member {boolean} [accountEnabled] Whether the account is enabled.
     * @member {string} [displayName] The display name of the user.
     * @member {object} [passwordProfile] The password profile of the user.
     * @member {string} [passwordProfile.password] Password
     * @member {boolean} [passwordProfile.forceChangePasswordNextLogin] Whether
     * to force a password change on next login.
     * @member {string} [userPrincipalName] The user principal name
     * (someuser@contoso.com). It must contain one of the verified domains for
     * the tenant.
     * @member {string} [mailNickname] The mail alias for the user.
     */
    constructor() {
      super();
    }
  
    /**
     * Defines the metadata of UserUpdateParameters
     *
     * @returns {object} metadata of UserUpdateParameters
     *
     */
    mapper() {
      return {
        required: false,
        serializedName: 'UserUpdateParameters',
        type: {
          name: 'Composite',
          className: 'UserUpdateParameters',
          modelProperties: {
            immutableId: {
              required: false,
              serializedName: 'immutableId',
              type: {
                name: 'String'
              }
            },
            usageLocation: {
              required: false,
              serializedName: 'usageLocation',
              type: {
                name: 'String'
              }
            },
            givenName: {
              required: false,
              serializedName: 'givenName',
              type: {
                name: 'String'
              }
            },
            surname: {
              required: false,
              serializedName: 'surname',
              type: {
                name: 'String'
              }
            },
            userType: {
              required: false,
              serializedName: 'userType',
              type: {
                name: 'String'
              }
            },
            accountEnabled: {
              required: false,
              serializedName: 'accountEnabled',
              type: {
                name: 'Boolean'
              }
            },
            displayName: {
              required: false,
              serializedName: 'displayName',
              type: {
                name: 'String'
              }
            },
            passwordProfile: {
              required: false,
              serializedName: 'passwordProfile',
              type: {
                name: 'Composite',
                additionalProperties: {
                  type: {
                    name: 'Dictionary',
                    value: {
                        required: false,
                        serializedName: 'ObjectElementType',
                        type: {
                          name: 'Object'
                        }
                    }
                  }
                },
                className: 'PasswordProfile'
              }
            },
            userPrincipalName: {
              required: false,
              serializedName: 'userPrincipalName',
              type: {
                name: 'String'
              }
            },
            mailNickname: {
              required: false,
              serializedName: 'mailNickname',
              type: {
                name: 'String'
              }
            }
          }
        }
      };
    }
  }
  
  module.exports = UserUpdateParameters;
  