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');
  
  /**
   * @class
   * Initializes a new instance of the Operation class.
   * @constructor
   * @member {string} [name] The name of the operation being performed on this
   * particular object. It should match the action name that appears in RBAC /
   * the event service.
   * 
   * @member {object} [display]
   * 
   * @member {string} [display.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] 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] 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] 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} [display.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'
   * 
   */
  function Operation() {
  }
  
  /**
   * Defines the metadata of Operation
   *
   * @returns {object} metadata of Operation
   *
   */
  Operation.prototype.mapper = function () {
    return {
      required: false,
      serializedName: 'Operation',
      type: {
        name: 'Composite',
        className: 'Operation',
        modelProperties: {
          name: {
            required: false,
            serializedName: 'name',
            type: {
              name: 'String'
            }
          },
          display: {
            required: false,
            serializedName: 'display',
            type: {
              name: 'Composite',
              className: 'Display'
            }
          }
        }
      }
    };
  };
  
  module.exports = Operation;
  