/*
 * 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
 * Initializes a new instance of the JobStatisticsVertexStage class.
 * @constructor
 * The Data Lake Analytics job statistics vertex stage information.
 *
 * @member {number} [dataRead] the amount of data read, in bytes.
 * 
 * @member {number} [dataReadCrossPod] the amount of data read across multiple
 * pods, in bytes.
 * 
 * @member {number} [dataReadIntraPod] the amount of data read in one pod, in
 * bytes.
 * 
 * @member {number} [dataToRead] the amount of data remaining to be read, in
 * bytes.
 * 
 * @member {number} [dataWritten] the amount of data written, in bytes.
 * 
 * @member {number} [duplicateDiscardCount] the number of duplicates that were
 * discarded.
 * 
 * @member {number} [failedCount] the number of failures that occured in this
 * stage.
 * 
 * @member {number} [maxVertexDataRead] the maximum amount of data read in a
 * single vertex, in bytes.
 * 
 * @member {number} [minVertexDataRead] the minimum amount of data read in a
 * single vertex, in bytes.
 * 
 * @member {number} [readFailureCount] the number of read failures in this
 * stage.
 * 
 * @member {number} [revocationCount] the number of vertices that were revoked
 * during this stage.
 * 
 * @member {number} [runningCount] the number of currently running vertices in
 * this stage.
 * 
 * @member {number} [scheduledCount] the number of currently scheduled
 * vertices in this stage
 * 
 * @member {string} [stageName] the name of this stage in job execution.
 * 
 * @member {number} [succeededCount] the number of vertices that succeeded in
 * this stage.
 * 
 * @member {number} [tempDataWritten] the amount of temporary data written, in
 * bytes.
 * 
 * @member {number} [totalCount] the total vertex count for this stage.
 * 
 * @member {moment.duration} [totalFailedTime] the amount of time that failed
 * vertices took up in this stage.
 * 
 * @member {number} [totalProgress] the current progress of this stage, as a
 * percentage.
 * 
 * @member {moment.duration} [totalSucceededTime] the amount of time all
 * successful vertices took in this stage.
 * 
 */
function JobStatisticsVertexStage() {
}

/**
 * Defines the metadata of JobStatisticsVertexStage
 *
 * @returns {object} metadata of JobStatisticsVertexStage
 *
 */
JobStatisticsVertexStage.prototype.mapper = function () {
  return {
    required: false,
    serializedName: 'JobStatisticsVertexStage',
    type: {
      name: 'Composite',
      className: 'JobStatisticsVertexStage',
      modelProperties: {
        dataRead: {
          required: false,
          readOnly: true,
          serializedName: 'dataRead',
          type: {
            name: 'Number'
          }
        },
        dataReadCrossPod: {
          required: false,
          readOnly: true,
          serializedName: 'dataReadCrossPod',
          type: {
            name: 'Number'
          }
        },
        dataReadIntraPod: {
          required: false,
          readOnly: true,
          serializedName: 'dataReadIntraPod',
          type: {
            name: 'Number'
          }
        },
        dataToRead: {
          required: false,
          readOnly: true,
          serializedName: 'dataToRead',
          type: {
            name: 'Number'
          }
        },
        dataWritten: {
          required: false,
          readOnly: true,
          serializedName: 'dataWritten',
          type: {
            name: 'Number'
          }
        },
        duplicateDiscardCount: {
          required: false,
          readOnly: true,
          serializedName: 'duplicateDiscardCount',
          type: {
            name: 'Number'
          }
        },
        failedCount: {
          required: false,
          readOnly: true,
          serializedName: 'failedCount',
          type: {
            name: 'Number'
          }
        },
        maxVertexDataRead: {
          required: false,
          readOnly: true,
          serializedName: 'maxVertexDataRead',
          type: {
            name: 'Number'
          }
        },
        minVertexDataRead: {
          required: false,
          readOnly: true,
          serializedName: 'minVertexDataRead',
          type: {
            name: 'Number'
          }
        },
        readFailureCount: {
          required: false,
          readOnly: true,
          serializedName: 'readFailureCount',
          type: {
            name: 'Number'
          }
        },
        revocationCount: {
          required: false,
          readOnly: true,
          serializedName: 'revocationCount',
          type: {
            name: 'Number'
          }
        },
        runningCount: {
          required: false,
          readOnly: true,
          serializedName: 'runningCount',
          type: {
            name: 'Number'
          }
        },
        scheduledCount: {
          required: false,
          readOnly: true,
          serializedName: 'scheduledCount',
          type: {
            name: 'Number'
          }
        },
        stageName: {
          required: false,
          readOnly: true,
          serializedName: 'stageName',
          type: {
            name: 'String'
          }
        },
        succeededCount: {
          required: false,
          readOnly: true,
          serializedName: 'succeededCount',
          type: {
            name: 'Number'
          }
        },
        tempDataWritten: {
          required: false,
          readOnly: true,
          serializedName: 'tempDataWritten',
          type: {
            name: 'Number'
          }
        },
        totalCount: {
          required: false,
          readOnly: true,
          serializedName: 'totalCount',
          type: {
            name: 'Number'
          }
        },
        totalFailedTime: {
          required: false,
          readOnly: true,
          serializedName: 'totalFailedTime',
          type: {
            name: 'TimeSpan'
          }
        },
        totalProgress: {
          required: false,
          readOnly: true,
          serializedName: 'totalProgress',
          type: {
            name: 'Number'
          }
        },
        totalSucceededTime: {
          required: false,
          readOnly: true,
          serializedName: 'totalSucceededTime',
          type: {
            name: 'TimeSpan'
          }
        }
      }
    }
  };
};

module.exports = JobStatisticsVertexStage;
