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';
  
  /**
   * Properties that define a Continuous Export configuration.
   *
   */
  class ApplicationInsightsComponentExportConfiguration {
    /**
     * Create a ApplicationInsightsComponentExportConfiguration.
     * @member {string} [exportId] The unique ID of the export configuration
     * inside an Applciation Insights component. It is auto generated when the
     * Continuous Export configuration is created.
     * @member {string} [instrumentationKey] The instrumentation key of the
     * Application Insights component.
     * @member {string} [recordTypes] This comma separated list of document types
     * that will be exported. The possible values include 'Requests', 'Event',
     * 'Exceptions', 'Metrics', 'PageViews', 'PageViewPerformance', 'Rdd',
     * 'PerformanceCounters', 'Availability', 'Messages'.
     * @member {string} [applicationName] The name of the Application Insights
     * component.
     * @member {string} [subscriptionId] The subscription of the Application
     * Insights component.
     * @member {string} [resourceGroup] The resource group of the Application
     * Insights component.
     * @member {string} [destinationStorageSubscriptionId] The destination
     * storage account subscription ID.
     * @member {string} [destinationStorageLocationId] The destination account
     * location ID.
     * @member {string} [destinationAccountId] The name of destination account.
     * @member {string} [destinationType] The destination type.
     * @member {string} [isUserEnabled] This will be 'true' if the Continuous
     * Export configuration is enabled, otherwise it will be 'false'.
     * @member {string} [lastUserUpdate] Last time the Continuous Export
     * configuration was updated.
     * @member {string} [notificationQueueEnabled] Deprecated
     * @member {string} [exportStatus] This indicates current Continuous Export
     * configuration status. The possible values are 'Preparing', 'Success',
     * 'Failure'.
     * @member {string} [lastSuccessTime] The last time data was successfully
     * delivered to the destination storage container for this Continuous Export
     * configuration.
     * @member {string} [lastGapTime] The last time the Continuous Export
     * configuration started failing.
     * @member {string} [permanentErrorReason] This is the reason the Continuous
     * Export configuration started failing. It can be 'AzureStorageNotFound' or
     * 'AzureStorageAccessDenied'.
     * @member {string} [storageName] The name of the destination storage
     * account.
     * @member {string} [containerName] The name of the destination storage
     * container.
     */
    constructor() {
    }
  
    /**
     * Defines the metadata of ApplicationInsightsComponentExportConfiguration
     *
     * @returns {object} metadata of ApplicationInsightsComponentExportConfiguration
     *
     */
    mapper() {
      return {
        required: false,
        serializedName: 'ApplicationInsightsComponentExportConfiguration',
        type: {
          name: 'Composite',
          className: 'ApplicationInsightsComponentExportConfiguration',
          modelProperties: {
            exportId: {
              required: false,
              readOnly: true,
              serializedName: 'ExportId',
              type: {
                name: 'String'
              }
            },
            instrumentationKey: {
              required: false,
              readOnly: true,
              serializedName: 'InstrumentationKey',
              type: {
                name: 'String'
              }
            },
            recordTypes: {
              required: false,
              serializedName: 'RecordTypes',
              type: {
                name: 'String'
              }
            },
            applicationName: {
              required: false,
              readOnly: true,
              serializedName: 'ApplicationName',
              type: {
                name: 'String'
              }
            },
            subscriptionId: {
              required: false,
              readOnly: true,
              serializedName: 'SubscriptionId',
              type: {
                name: 'String'
              }
            },
            resourceGroup: {
              required: false,
              readOnly: true,
              serializedName: 'ResourceGroup',
              type: {
                name: 'String'
              }
            },
            destinationStorageSubscriptionId: {
              required: false,
              readOnly: true,
              serializedName: 'DestinationStorageSubscriptionId',
              type: {
                name: 'String'
              }
            },
            destinationStorageLocationId: {
              required: false,
              readOnly: true,
              serializedName: 'DestinationStorageLocationId',
              type: {
                name: 'String'
              }
            },
            destinationAccountId: {
              required: false,
              readOnly: true,
              serializedName: 'DestinationAccountId',
              type: {
                name: 'String'
              }
            },
            destinationType: {
              required: false,
              readOnly: true,
              serializedName: 'DestinationType',
              type: {
                name: 'String'
              }
            },
            isUserEnabled: {
              required: false,
              readOnly: true,
              serializedName: 'IsUserEnabled',
              type: {
                name: 'String'
              }
            },
            lastUserUpdate: {
              required: false,
              readOnly: true,
              serializedName: 'LastUserUpdate',
              type: {
                name: 'String'
              }
            },
            notificationQueueEnabled: {
              required: false,
              serializedName: 'NotificationQueueEnabled',
              type: {
                name: 'String'
              }
            },
            exportStatus: {
              required: false,
              readOnly: true,
              serializedName: 'ExportStatus',
              type: {
                name: 'String'
              }
            },
            lastSuccessTime: {
              required: false,
              readOnly: true,
              serializedName: 'LastSuccessTime',
              type: {
                name: 'String'
              }
            },
            lastGapTime: {
              required: false,
              readOnly: true,
              serializedName: 'LastGapTime',
              type: {
                name: 'String'
              }
            },
            permanentErrorReason: {
              required: false,
              readOnly: true,
              serializedName: 'PermanentErrorReason',
              type: {
                name: 'String'
              }
            },
            storageName: {
              required: false,
              readOnly: true,
              serializedName: 'StorageName',
              type: {
                name: 'String'
              }
            },
            containerName: {
              required: false,
              readOnly: true,
              serializedName: 'ContainerName',
              type: {
                name: 'String'
              }
            }
          }
        }
      };
    }
  }
  
  module.exports = ApplicationInsightsComponentExportConfiguration;
  