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');
  
  /**
   * Parameters allowd to update for a server.
   *
   */
  class ServerUpdateParameters {
    /**
     * Create a ServerUpdateParameters.
     * @member {object} [sku] The SKU (pricing tier) of the server.
     * @member {string} [sku.name] The name of the sku, typically, tier + family
     * + cores, e.g. B_Gen4_1, GP_Gen5_8.
     * @member {string} [sku.tier] The tier of the particular SKU, e.g. Basic.
     * Possible values include: 'Basic', 'GeneralPurpose', 'MemoryOptimized'
     * @member {number} [sku.capacity] The scale up/out capacity, representing
     * server's compute units.
     * @member {string} [sku.size] The size code, to be interpreted by resource
     * as appropriate.
     * @member {string} [sku.family] The family of hardware.
     * @member {object} [storageProfile] Storage profile of a server.
     * @member {number} [storageProfile.backupRetentionDays] Backup retention
     * days for the server.
     * @member {string} [storageProfile.geoRedundantBackup] Enable Geo-redundant
     * or not for server backup. Possible values include: 'Enabled', 'Disabled'
     * @member {number} [storageProfile.storageMB] Max storage allowed for a
     * server.
     * @member {string} [administratorLoginPassword] The password of the
     * administrator login.
     * @member {string} [version] The version of a server. Possible values
     * include: '9.5', '9.6', '10', '10.0', '10.2'
     * @member {string} [sslEnforcement] Enable ssl enforcement or not when
     * connect to server. Possible values include: 'Enabled', 'Disabled'
     * @member {object} [tags] Application-specific metadata in the form of
     * key-value pairs.
     */
    constructor() {
    }
  
    /**
     * Defines the metadata of ServerUpdateParameters
     *
     * @returns {object} metadata of ServerUpdateParameters
     *
     */
    mapper() {
      return {
        required: false,
        serializedName: 'ServerUpdateParameters',
        type: {
          name: 'Composite',
          className: 'ServerUpdateParameters',
          modelProperties: {
            sku: {
              required: false,
              serializedName: 'sku',
              type: {
                name: 'Composite',
                className: 'Sku'
              }
            },
            storageProfile: {
              required: false,
              serializedName: 'properties.storageProfile',
              type: {
                name: 'Composite',
                className: 'StorageProfile'
              }
            },
            administratorLoginPassword: {
              required: false,
              serializedName: 'properties.administratorLoginPassword',
              type: {
                name: 'String'
              }
            },
            version: {
              required: false,
              serializedName: 'properties.version',
              type: {
                name: 'String'
              }
            },
            sslEnforcement: {
              required: false,
              serializedName: 'properties.sslEnforcement',
              type: {
                name: 'Enum',
                allowedValues: [ 'Enabled', 'Disabled' ]
              }
            },
            tags: {
              required: false,
              serializedName: 'tags',
              type: {
                name: 'Dictionary',
                value: {
                    required: false,
                    serializedName: 'StringElementType',
                    type: {
                      name: 'String'
                    }
                }
              }
            }
          }
        }
      };
    }
  }
  
  module.exports = ServerUpdateParameters;
  