/*
 * 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';

/**
 * An Application Insights component feature capabilities
 *
 */
class ApplicationInsightsComponentFeatureCapabilities {
  /**
   * Create a ApplicationInsightsComponentFeatureCapabilities.
   * @member {boolean} [supportExportData] Whether allow to use continuous
   * export feature.
   * @member {string} [burstThrottlePolicy] Reserved, not used now.
   * @member {string} [metadataClass] Reserved, not used now.
   * @member {boolean} [liveStreamMetrics] Reserved, not used now.
   * @member {boolean} [applicationMap] Reserved, not used now.
   * @member {boolean} [workItemIntegration] Whether allow to use work item
   * integration feature.
   * @member {boolean} [powerBIIntegration] Reserved, not used now.
   * @member {boolean} [openSchema] Reserved, not used now.
   * @member {boolean} [proactiveDetection] Reserved, not used now.
   * @member {boolean} [analyticsIntegration] Reserved, not used now.
   * @member {boolean} [multipleStepWebTest] Whether allow to use multiple
   * steps web test feature.
   * @member {string} [apiAccessLevel] Reserved, not used now.
   * @member {string} [trackingType] The applciation insights component used
   * tracking type.
   * @member {number} [dailyCap] Daily data volume cap in GB.
   * @member {number} [dailyCapResetTime] Daily data volume cap UTC reset hour.
   * @member {number} [throttleRate] Reserved, not used now.
   */
  constructor() {
  }

  /**
   * Defines the metadata of ApplicationInsightsComponentFeatureCapabilities
   *
   * @returns {object} metadata of ApplicationInsightsComponentFeatureCapabilities
   *
   */
  mapper() {
    return {
      required: false,
      serializedName: 'ApplicationInsightsComponentFeatureCapabilities',
      type: {
        name: 'Composite',
        className: 'ApplicationInsightsComponentFeatureCapabilities',
        modelProperties: {
          supportExportData: {
            required: false,
            readOnly: true,
            serializedName: 'SupportExportData',
            type: {
              name: 'Boolean'
            }
          },
          burstThrottlePolicy: {
            required: false,
            readOnly: true,
            serializedName: 'BurstThrottlePolicy',
            type: {
              name: 'String'
            }
          },
          metadataClass: {
            required: false,
            readOnly: true,
            serializedName: 'MetadataClass',
            type: {
              name: 'String'
            }
          },
          liveStreamMetrics: {
            required: false,
            readOnly: true,
            serializedName: 'LiveStreamMetrics',
            type: {
              name: 'Boolean'
            }
          },
          applicationMap: {
            required: false,
            readOnly: true,
            serializedName: 'ApplicationMap',
            type: {
              name: 'Boolean'
            }
          },
          workItemIntegration: {
            required: false,
            readOnly: true,
            serializedName: 'WorkItemIntegration',
            type: {
              name: 'Boolean'
            }
          },
          powerBIIntegration: {
            required: false,
            readOnly: true,
            serializedName: 'PowerBIIntegration',
            type: {
              name: 'Boolean'
            }
          },
          openSchema: {
            required: false,
            readOnly: true,
            serializedName: 'OpenSchema',
            type: {
              name: 'Boolean'
            }
          },
          proactiveDetection: {
            required: false,
            readOnly: true,
            serializedName: 'ProactiveDetection',
            type: {
              name: 'Boolean'
            }
          },
          analyticsIntegration: {
            required: false,
            readOnly: true,
            serializedName: 'AnalyticsIntegration',
            type: {
              name: 'Boolean'
            }
          },
          multipleStepWebTest: {
            required: false,
            readOnly: true,
            serializedName: 'MultipleStepWebTest',
            type: {
              name: 'Boolean'
            }
          },
          apiAccessLevel: {
            required: false,
            readOnly: true,
            serializedName: 'ApiAccessLevel',
            type: {
              name: 'String'
            }
          },
          trackingType: {
            required: false,
            readOnly: true,
            serializedName: 'TrackingType',
            type: {
              name: 'String'
            }
          },
          dailyCap: {
            required: false,
            readOnly: true,
            serializedName: 'DailyCap',
            type: {
              name: 'Number'
            }
          },
          dailyCapResetTime: {
            required: false,
            readOnly: true,
            serializedName: 'DailyCapResetTime',
            type: {
              name: 'Number'
            }
          },
          throttleRate: {
            required: false,
            readOnly: true,
            serializedName: 'ThrottleRate',
            type: {
              name: 'Number'
            }
          }
        }
      }
    };
  }
}

module.exports = ApplicationInsightsComponentFeatureCapabilities;
