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';
  
  /**
   * Class represents provider operation
   *
   */
  class AvailableProviderOperation {
    /**
     * Create a AvailableProviderOperation.
     * @member {string} [name] Gets or sets the name of the operation being
     * performed on this particular object
     * Return value format:
     * "{resourceProviderNamespace}/{resourceType}/{read|write|deletion|action}"
     * Eg: Microsoft.StorSimple/managers/devices/fileServers/read
     * Microsoft.StorSimple/managers/devices/alerts/clearAlerts/action
     * @member {object} [display] Gets or sets Display information
     * Contains the localized display information for this particular
     * operation/action
     * @member {string} [display.provider] Gets or sets Provider
     * The localized friendly form of the resource provider name – it is expected
     * to also include the publisher/company responsible.
     * It should use Title Casing and begin with “Microsoft” for 1st party
     * services.
     * @member {string} [display.resource] Gets or sets Resource
     * The localized friendly form of the resource type related to this
     * action/operation – it should match the public documentation for the
     * resource provider.
     * It should use Title Casing – for examples, please refer to the “name”
     * section.
     * @member {string} [display.operation] Gets or sets Operation
     * The localized friendly name for the operation, as it should be shown to
     * the user.
     * It should be concise (to fit in drop downs) but clear (i.e.
     * self-documenting). It should use Title Casing and include the
     * entity/resource to which it applies.
     * @member {string} [display.description] Gets or sets Description
     * The localized friendly description for the operation, as it should be
     * shown to the user.
     * It should be thorough, yet concise – it will be used in tool tips and
     * detailed views.
     * @member {string} [origin] Gets or sets Origin
     * The intended executor of the operation; governs the display of the
     * operation in the RBAC UX and the audit logs UX.
     * Default value is “user,system”
     * @member {object} [properties] Gets or sets Properties
     * Reserved for future use
     */
    constructor() {
    }
  
    /**
     * Defines the metadata of AvailableProviderOperation
     *
     * @returns {object} metadata of AvailableProviderOperation
     *
     */
    mapper() {
      return {
        required: false,
        serializedName: 'AvailableProviderOperation',
        type: {
          name: 'Composite',
          className: 'AvailableProviderOperation',
          modelProperties: {
            name: {
              required: false,
              serializedName: 'name',
              type: {
                name: 'String'
              }
            },
            display: {
              required: false,
              serializedName: 'display',
              type: {
                name: 'Composite',
                className: 'AvailableProviderOperationDisplay'
              }
            },
            origin: {
              required: false,
              serializedName: 'origin',
              type: {
                name: 'String'
              }
            },
            properties: {
              required: false,
              serializedName: 'properties',
              type: {
                name: 'Object'
              }
            }
          }
        }
      };
    }
  }
  
  module.exports = AvailableProviderOperation;
  