/*
 * Code generated by Microsoft (R) AutoRest Code Generator.
 * Changes may cause incorrect behavior and will be lost if the code is
 * regenerated.
*/

import { ServiceClientOptions, RequestOptions, ServiceCallback, HttpOperationResponse } from 'ms-rest';
import * as models from '../models';


/**
 * @class
 * CrashGroups
 * __NOTE__: An instance of this class is automatically created for an
 * instance of the CrashClient.
 */
export interface CrashGroups {


    /**
     * @summary Gets a list of crash groups and whether the list contains all
     * available groups.
     *
     * Gets a list of crash groups and whether the list contains all available
     * groups.
     *
     * @param {string} appName The name of the application
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {object} [options] Optional Parameters.
     *
     * @param {string} [options.orderby] the OData-like $orderby argument. Possible
     * values include: 'last_occurrence asc', 'last_occurrence desc', 'count asc',
     * 'count desc', 'display_id asc', 'display_id desc', 'impacted_users asc',
     * 'impacted_users desc'
     *
     * @param {string} [options.appVersion] version
     *
     * @param {string} [options.continuationToken] Cassandra request continuation
     * token. The token is used for pagination.
     *
     * @param {string} [options.groupStatus] Possible values include: 'open',
     * 'closed', 'ignored'
     *
     * @param {string} [options.groupTextSearch] A freetext search that matches in
     * crash, crash types, crash stack_traces and crash user
     *
     * @param {string} [options.groupType] Possible values include: 'GroupType1',
     * 'GroupType2'
     *
     * @param {boolean} [options.includeUserCounts] if true include impacted user
     * counts in crash group results
     *
     * @param {date} [options.lastOccurrenceFrom] Earliest date when the last time
     * a crash occured in a crash group
     *
     * @param {date} [options.lastOccurrenceTo] Latest date when the last time a
     * crash occured in a crash group
     *
     * @param {object} [options.customHeaders] Headers that will be added to the
     * request
     *
     * @returns {Promise} A promise is returned
     *
     * @resolve {HttpOperationResponse<CrashGroupsContainer>} - The deserialized result object.
     *
     * @reject {Error|ServiceError} - The error object.
     */
    listWithHttpOperationResponse(appName: string, ownerName: string, options?: { orderby? : string, appVersion? : string, continuationToken? : string, groupStatus? : string, groupTextSearch? : string, groupType? : string, includeUserCounts? : boolean, lastOccurrenceFrom? : Date, lastOccurrenceTo? : Date, customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<models.CrashGroupsContainer>>;

    /**
     * @summary Gets a list of crash groups and whether the list contains all
     * available groups.
     *
     * Gets a list of crash groups and whether the list contains all available
     * groups.
     *
     * @param {string} appName The name of the application
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {object} [options] Optional Parameters.
     *
     * @param {string} [options.orderby] the OData-like $orderby argument. Possible
     * values include: 'last_occurrence asc', 'last_occurrence desc', 'count asc',
     * 'count desc', 'display_id asc', 'display_id desc', 'impacted_users asc',
     * 'impacted_users desc'
     *
     * @param {string} [options.appVersion] version
     *
     * @param {string} [options.continuationToken] Cassandra request continuation
     * token. The token is used for pagination.
     *
     * @param {string} [options.groupStatus] Possible values include: 'open',
     * 'closed', 'ignored'
     *
     * @param {string} [options.groupTextSearch] A freetext search that matches in
     * crash, crash types, crash stack_traces and crash user
     *
     * @param {string} [options.groupType] Possible values include: 'GroupType1',
     * 'GroupType2'
     *
     * @param {boolean} [options.includeUserCounts] if true include impacted user
     * counts in crash group results
     *
     * @param {date} [options.lastOccurrenceFrom] Earliest date when the last time
     * a crash occured in a crash group
     *
     * @param {date} [options.lastOccurrenceTo] Latest date when the last time a
     * crash occured in a crash group
     *
     * @param {object} [options.customHeaders] Headers that will be added to the
     * request
     *
     * @param {ServiceCallback} [optionalCallback] - The optional callback.
     *
     * @returns {ServiceCallback|Promise} If a callback was passed as the last
     * parameter then it returns the callback else returns a Promise.
     *
     * {Promise} A promise is returned.
     *
     *                      @resolve {CrashGroupsContainer} - The deserialized result object.
     *
     *                      @reject {Error|ServiceError} - The error object.
     *
     * {ServiceCallback} optionalCallback(err, result, request, response)
     *
     *                      {Error|ServiceError}  err        - The Error object if an error occurred, null otherwise.
     *
     *                      {CrashGroupsContainer} [result]   - The deserialized result object if an error did not occur.
     *                      See {@link CrashGroupsContainer} for more information.
     *
     *                      {WebResource} [request]  - The HTTP Request object if an error did not occur.
     *
     *                      {http.IncomingMessage} [response] - The HTTP Response stream if an error did not occur.
     */
    list(appName: string, ownerName: string, options?: { orderby? : string, appVersion? : string, continuationToken? : string, groupStatus? : string, groupTextSearch? : string, groupType? : string, includeUserCounts? : boolean, lastOccurrenceFrom? : Date, lastOccurrenceTo? : Date, customHeaders? : { [headerName: string]: string; } }): Promise<models.CrashGroupsContainer>;
    list(appName: string, ownerName: string, callback: ServiceCallback<models.CrashGroupsContainer>): void;
    list(appName: string, ownerName: string, options: { orderby? : string, appVersion? : string, continuationToken? : string, groupStatus? : string, groupTextSearch? : string, groupType? : string, includeUserCounts? : boolean, lastOccurrenceFrom? : Date, lastOccurrenceTo? : Date, customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<models.CrashGroupsContainer>): void;


    /**
     * Gets a specific group
     *
     * @param {string} appName The name of the application
     *
     * @param {string} crashGroupId id of a specific group
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {object} [options] Optional Parameters.
     *
     * @param {boolean} [options.includeUserCounts] if true include impacted user
     * counts in crash group results
     *
     * @param {object} [options.customHeaders] Headers that will be added to the
     * request
     *
     * @returns {Promise} A promise is returned
     *
     * @resolve {HttpOperationResponse<CrashGroup>} - The deserialized result object.
     *
     * @reject {Error|ServiceError} - The error object.
     */
    getWithHttpOperationResponse(appName: string, crashGroupId: string, ownerName: string, options?: { includeUserCounts? : boolean, customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<models.CrashGroup>>;

    /**
     * Gets a specific group
     *
     * @param {string} appName The name of the application
     *
     * @param {string} crashGroupId id of a specific group
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {object} [options] Optional Parameters.
     *
     * @param {boolean} [options.includeUserCounts] if true include impacted user
     * counts in crash group results
     *
     * @param {object} [options.customHeaders] Headers that will be added to the
     * request
     *
     * @param {ServiceCallback} [optionalCallback] - The optional callback.
     *
     * @returns {ServiceCallback|Promise} If a callback was passed as the last
     * parameter then it returns the callback else returns a Promise.
     *
     * {Promise} A promise is returned.
     *
     *                      @resolve {CrashGroup} - The deserialized result object.
     *
     *                      @reject {Error|ServiceError} - The error object.
     *
     * {ServiceCallback} optionalCallback(err, result, request, response)
     *
     *                      {Error|ServiceError}  err        - The Error object if an error occurred, null otherwise.
     *
     *                      {CrashGroup} [result]   - The deserialized result object if an error did not occur.
     *                      See {@link CrashGroup} for more information.
     *
     *                      {WebResource} [request]  - The HTTP Request object if an error did not occur.
     *
     *                      {http.IncomingMessage} [response] - The HTTP Response stream if an error did not occur.
     */
    get(appName: string, crashGroupId: string, ownerName: string, options?: { includeUserCounts? : boolean, customHeaders? : { [headerName: string]: string; } }): Promise<models.CrashGroup>;
    get(appName: string, crashGroupId: string, ownerName: string, callback: ServiceCallback<models.CrashGroup>): void;
    get(appName: string, crashGroupId: string, ownerName: string, options: { includeUserCounts? : boolean, customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<models.CrashGroup>): void;


    /**
     * Updates a group
     *
     * @param {string} appName The name of the application
     *
     * @param {string} crashGroupId id of a specific group
     *
     * @param {object} group Group change object. All fields are optional and only
     * provided fields will get updated.
     *
     * @param {object} [group.status]
     *
     * @param {string} [group.annotation]
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {object} [options] Optional Parameters.
     *
     * @param {boolean} [options.includeUserCounts] if true include impacted user
     * counts in crash group results
     *
     * @param {object} [options.customHeaders] Headers that will be added to the
     * request
     *
     * @returns {Promise} A promise is returned
     *
     * @resolve {HttpOperationResponse<CrashGroup>} - The deserialized result object.
     *
     * @reject {Error|ServiceError} - The error object.
     */
    updateWithHttpOperationResponse(appName: string, crashGroupId: string, group: models.CrashGroupChange, ownerName: string, options?: { includeUserCounts? : boolean, customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<models.CrashGroup>>;

    /**
     * Updates a group
     *
     * @param {string} appName The name of the application
     *
     * @param {string} crashGroupId id of a specific group
     *
     * @param {object} group Group change object. All fields are optional and only
     * provided fields will get updated.
     *
     * @param {object} [group.status]
     *
     * @param {string} [group.annotation]
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {object} [options] Optional Parameters.
     *
     * @param {boolean} [options.includeUserCounts] if true include impacted user
     * counts in crash group results
     *
     * @param {object} [options.customHeaders] Headers that will be added to the
     * request
     *
     * @param {ServiceCallback} [optionalCallback] - The optional callback.
     *
     * @returns {ServiceCallback|Promise} If a callback was passed as the last
     * parameter then it returns the callback else returns a Promise.
     *
     * {Promise} A promise is returned.
     *
     *                      @resolve {CrashGroup} - The deserialized result object.
     *
     *                      @reject {Error|ServiceError} - The error object.
     *
     * {ServiceCallback} optionalCallback(err, result, request, response)
     *
     *                      {Error|ServiceError}  err        - The Error object if an error occurred, null otherwise.
     *
     *                      {CrashGroup} [result]   - The deserialized result object if an error did not occur.
     *                      See {@link CrashGroup} for more information.
     *
     *                      {WebResource} [request]  - The HTTP Request object if an error did not occur.
     *
     *                      {http.IncomingMessage} [response] - The HTTP Response stream if an error did not occur.
     */
    update(appName: string, crashGroupId: string, group: models.CrashGroupChange, ownerName: string, options?: { includeUserCounts? : boolean, customHeaders? : { [headerName: string]: string; } }): Promise<models.CrashGroup>;
    update(appName: string, crashGroupId: string, group: models.CrashGroupChange, ownerName: string, callback: ServiceCallback<models.CrashGroup>): void;
    update(appName: string, crashGroupId: string, group: models.CrashGroupChange, ownerName: string, options: { includeUserCounts? : boolean, customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<models.CrashGroup>): void;


    /**
     * Gets a stacktrace for a specific crash
     *
     * @param {string} appName The name of the application
     *
     * @param {string} crashGroupId id of a specific group
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {object} [options] Optional Parameters.
     *
     * @param {boolean} [options.groupingOnly] true if the stacktrace should be
     * only the relevant thread / exception. Default is false
     *
     * @param {object} [options.customHeaders] Headers that will be added to the
     * request
     *
     * @returns {Promise} A promise is returned
     *
     * @resolve {HttpOperationResponse<Stacktrace>} - The deserialized result object.
     *
     * @reject {Error|ServiceError} - The error object.
     */
    getStacktraceWithHttpOperationResponse(appName: string, crashGroupId: string, ownerName: string, options?: { groupingOnly? : boolean, customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<models.Stacktrace>>;

    /**
     * Gets a stacktrace for a specific crash
     *
     * @param {string} appName The name of the application
     *
     * @param {string} crashGroupId id of a specific group
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {object} [options] Optional Parameters.
     *
     * @param {boolean} [options.groupingOnly] true if the stacktrace should be
     * only the relevant thread / exception. Default is false
     *
     * @param {object} [options.customHeaders] Headers that will be added to the
     * request
     *
     * @param {ServiceCallback} [optionalCallback] - The optional callback.
     *
     * @returns {ServiceCallback|Promise} If a callback was passed as the last
     * parameter then it returns the callback else returns a Promise.
     *
     * {Promise} A promise is returned.
     *
     *                      @resolve {Stacktrace} - The deserialized result object.
     *
     *                      @reject {Error|ServiceError} - The error object.
     *
     * {ServiceCallback} optionalCallback(err, result, request, response)
     *
     *                      {Error|ServiceError}  err        - The Error object if an error occurred, null otherwise.
     *
     *                      {Stacktrace} [result]   - The deserialized result object if an error did not occur.
     *                      See {@link Stacktrace} for more information.
     *
     *                      {WebResource} [request]  - The HTTP Request object if an error did not occur.
     *
     *                      {http.IncomingMessage} [response] - The HTTP Response stream if an error did not occur.
     */
    getStacktrace(appName: string, crashGroupId: string, ownerName: string, options?: { groupingOnly? : boolean, customHeaders? : { [headerName: string]: string; } }): Promise<models.Stacktrace>;
    getStacktrace(appName: string, crashGroupId: string, ownerName: string, callback: ServiceCallback<models.Stacktrace>): void;
    getStacktrace(appName: string, crashGroupId: string, ownerName: string, options: { groupingOnly? : boolean, customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<models.Stacktrace>): void;
}

/**
 * @class
 * Crashes
 * __NOTE__: An instance of this class is automatically created for an
 * instance of the CrashClient.
 */
export interface Crashes {


    /**
     * Gets all crashes of a group
     *
     * @param {string} appName The name of the application
     *
     * @param {string} crashGroupId id of a specific group
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {object} [options] Optional Parameters.
     *
     * @param {string} [options.appVersion] version
     *
     * @param {date} [options.dateFrom]
     *
     * @param {date} [options.dateTo]
     *
     * @param {string} [options.errorType] Possible values include:
     * 'CrashingErrors', 'HandledErrors'
     *
     * @param {boolean} [options.includeLog] true if the crash should include the
     * custom log report. Default is false
     *
     * @param {boolean} [options.includeReport] true if the crash should include
     * the raw crash report. Default is false
     *
     * @param {object} [options.customHeaders] Headers that will be added to the
     * request
     *
     * @returns {Promise} A promise is returned
     *
     * @resolve {HttpOperationResponse<Array>} - The deserialized result object.
     *
     * @reject {Error|ServiceError} - The error object.
     */
    listWithHttpOperationResponse(appName: string, crashGroupId: string, ownerName: string, options?: { appVersion? : string, dateFrom? : Date, dateTo? : Date, errorType? : string, includeLog? : boolean, includeReport? : boolean, customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<models.Crash[]>>;

    /**
     * Gets all crashes of a group
     *
     * @param {string} appName The name of the application
     *
     * @param {string} crashGroupId id of a specific group
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {object} [options] Optional Parameters.
     *
     * @param {string} [options.appVersion] version
     *
     * @param {date} [options.dateFrom]
     *
     * @param {date} [options.dateTo]
     *
     * @param {string} [options.errorType] Possible values include:
     * 'CrashingErrors', 'HandledErrors'
     *
     * @param {boolean} [options.includeLog] true if the crash should include the
     * custom log report. Default is false
     *
     * @param {boolean} [options.includeReport] true if the crash should include
     * the raw crash report. Default is false
     *
     * @param {object} [options.customHeaders] Headers that will be added to the
     * request
     *
     * @param {ServiceCallback} [optionalCallback] - The optional callback.
     *
     * @returns {ServiceCallback|Promise} If a callback was passed as the last
     * parameter then it returns the callback else returns a Promise.
     *
     * {Promise} A promise is returned.
     *
     *                      @resolve {Array} - The deserialized result object.
     *
     *                      @reject {Error|ServiceError} - The error object.
     *
     * {ServiceCallback} optionalCallback(err, result, request, response)
     *
     *                      {Error|ServiceError}  err        - The Error object if an error occurred, null otherwise.
     *
     *                      {Array} [result]   - The deserialized result object if an error did not occur.
     *
     *                      {WebResource} [request]  - The HTTP Request object if an error did not occur.
     *
     *                      {http.IncomingMessage} [response] - The HTTP Response stream if an error did not occur.
     */
    list(appName: string, crashGroupId: string, ownerName: string, options?: { appVersion? : string, dateFrom? : Date, dateTo? : Date, errorType? : string, includeLog? : boolean, includeReport? : boolean, customHeaders? : { [headerName: string]: string; } }): Promise<models.Crash[]>;
    list(appName: string, crashGroupId: string, ownerName: string, callback: ServiceCallback<models.Crash[]>): void;
    list(appName: string, crashGroupId: string, ownerName: string, options: { appVersion? : string, dateFrom? : Date, dateTo? : Date, errorType? : string, includeLog? : boolean, includeReport? : boolean, customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<models.Crash[]>): void;


    /**
     * Gets a specific crash for an app
     *
     * @param {string} appName The name of the application
     *
     * @param {string} crashGroupId id of a specific group
     *
     * @param {string} crashId id of a specific crash
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {object} [options] Optional Parameters.
     *
     * @param {boolean} [options.groupingOnly] true if the stacktrace should be
     * only the relevant thread / exception. Default is false
     *
     * @param {boolean} [options.includeDetails] true if the crash should include
     * in depth crash details
     *
     * @param {boolean} [options.includeLog] true if the crash should include the
     * custom log report. Default is false
     *
     * @param {boolean} [options.includeReport] true if the crash should include
     * the raw crash report. Default is false
     *
     * @param {boolean} [options.includeStacktrace] true if the crash should
     * include the stacktrace information
     *
     * @param {object} [options.customHeaders] Headers that will be added to the
     * request
     *
     * @returns {Promise} A promise is returned
     *
     * @resolve {HttpOperationResponse<Crash>} - The deserialized result object.
     *
     * @reject {Error|ServiceError} - The error object.
     */
    getWithHttpOperationResponse(appName: string, crashGroupId: string, crashId: string, ownerName: string, options?: { groupingOnly? : boolean, includeDetails? : boolean, includeLog? : boolean, includeReport? : boolean, includeStacktrace? : boolean, customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<models.Crash>>;

    /**
     * Gets a specific crash for an app
     *
     * @param {string} appName The name of the application
     *
     * @param {string} crashGroupId id of a specific group
     *
     * @param {string} crashId id of a specific crash
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {object} [options] Optional Parameters.
     *
     * @param {boolean} [options.groupingOnly] true if the stacktrace should be
     * only the relevant thread / exception. Default is false
     *
     * @param {boolean} [options.includeDetails] true if the crash should include
     * in depth crash details
     *
     * @param {boolean} [options.includeLog] true if the crash should include the
     * custom log report. Default is false
     *
     * @param {boolean} [options.includeReport] true if the crash should include
     * the raw crash report. Default is false
     *
     * @param {boolean} [options.includeStacktrace] true if the crash should
     * include the stacktrace information
     *
     * @param {object} [options.customHeaders] Headers that will be added to the
     * request
     *
     * @param {ServiceCallback} [optionalCallback] - The optional callback.
     *
     * @returns {ServiceCallback|Promise} If a callback was passed as the last
     * parameter then it returns the callback else returns a Promise.
     *
     * {Promise} A promise is returned.
     *
     *                      @resolve {Crash} - The deserialized result object.
     *
     *                      @reject {Error|ServiceError} - The error object.
     *
     * {ServiceCallback} optionalCallback(err, result, request, response)
     *
     *                      {Error|ServiceError}  err        - The Error object if an error occurred, null otherwise.
     *
     *                      {Crash} [result]   - The deserialized result object if an error did not occur.
     *                      See {@link Crash} for more information.
     *
     *                      {WebResource} [request]  - The HTTP Request object if an error did not occur.
     *
     *                      {http.IncomingMessage} [response] - The HTTP Response stream if an error did not occur.
     */
    get(appName: string, crashGroupId: string, crashId: string, ownerName: string, options?: { groupingOnly? : boolean, includeDetails? : boolean, includeLog? : boolean, includeReport? : boolean, includeStacktrace? : boolean, customHeaders? : { [headerName: string]: string; } }): Promise<models.Crash>;
    get(appName: string, crashGroupId: string, crashId: string, ownerName: string, callback: ServiceCallback<models.Crash>): void;
    get(appName: string, crashGroupId: string, crashId: string, ownerName: string, options: { groupingOnly? : boolean, includeDetails? : boolean, includeLog? : boolean, includeReport? : boolean, includeStacktrace? : boolean, customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<models.Crash>): void;


    /**
     * @summary Gets the native log of a specific crash
     *
     * Gets the native log of a specific crash
     *
     * @param {string} appName The name of the application
     *
     * @param {string} crashGroupId id of a specific group
     *
     * @param {string} crashId id of a specific crash
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {object} [options] Optional Parameters.
     *
     * @param {object} [options.customHeaders] Headers that will be added to the
     * request
     *
     * @returns {Promise} A promise is returned
     *
     * @resolve {HttpOperationResponse<String>} - The deserialized result object.
     *
     * @reject {Error|ServiceError} - The error object.
     */
    getNativeCrashWithHttpOperationResponse(appName: string, crashGroupId: string, crashId: string, ownerName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<string>>;

    /**
     * @summary Gets the native log of a specific crash
     *
     * Gets the native log of a specific crash
     *
     * @param {string} appName The name of the application
     *
     * @param {string} crashGroupId id of a specific group
     *
     * @param {string} crashId id of a specific crash
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {object} [options] Optional Parameters.
     *
     * @param {object} [options.customHeaders] Headers that will be added to the
     * request
     *
     * @param {ServiceCallback} [optionalCallback] - The optional callback.
     *
     * @returns {ServiceCallback|Promise} If a callback was passed as the last
     * parameter then it returns the callback else returns a Promise.
     *
     * {Promise} A promise is returned.
     *
     *                      @resolve {String} - The deserialized result object.
     *
     *                      @reject {Error|ServiceError} - The error object.
     *
     * {ServiceCallback} optionalCallback(err, result, request, response)
     *
     *                      {Error|ServiceError}  err        - The Error object if an error occurred, null otherwise.
     *
     *                      {String} [result]   - The deserialized result object if an error did not occur.
     *
     *                      {WebResource} [request]  - The HTTP Request object if an error did not occur.
     *
     *                      {http.IncomingMessage} [response] - The HTTP Response stream if an error did not occur.
     */
    getNativeCrash(appName: string, crashGroupId: string, crashId: string, ownerName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<string>;
    getNativeCrash(appName: string, crashGroupId: string, crashId: string, ownerName: string, callback: ServiceCallback<string>): void;
    getNativeCrash(appName: string, crashGroupId: string, crashId: string, ownerName: string, options: { customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<string>): void;


    /**
     * @summary Gets the native log of a specific crash as a text attachment
     *
     * Gets the native log of a specific crash as a text attachment
     *
     * @param {string} appName The name of the application
     *
     * @param {string} crashGroupId id of a specific group
     *
     * @param {string} crashId id of a specific crash
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {object} [options] Optional Parameters.
     *
     * @param {object} [options.customHeaders] Headers that will be added to the
     * request
     *
     * @returns {Promise} A promise is returned
     *
     * @resolve {HttpOperationResponse<String>} - The deserialized result object.
     *
     * @reject {Error|ServiceError} - The error object.
     */
    getNativeCrashDownloadWithHttpOperationResponse(appName: string, crashGroupId: string, crashId: string, ownerName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<string>>;

    /**
     * @summary Gets the native log of a specific crash as a text attachment
     *
     * Gets the native log of a specific crash as a text attachment
     *
     * @param {string} appName The name of the application
     *
     * @param {string} crashGroupId id of a specific group
     *
     * @param {string} crashId id of a specific crash
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {object} [options] Optional Parameters.
     *
     * @param {object} [options.customHeaders] Headers that will be added to the
     * request
     *
     * @param {ServiceCallback} [optionalCallback] - The optional callback.
     *
     * @returns {ServiceCallback|Promise} If a callback was passed as the last
     * parameter then it returns the callback else returns a Promise.
     *
     * {Promise} A promise is returned.
     *
     *                      @resolve {String} - The deserialized result object.
     *
     *                      @reject {Error|ServiceError} - The error object.
     *
     * {ServiceCallback} optionalCallback(err, result, request, response)
     *
     *                      {Error|ServiceError}  err        - The Error object if an error occurred, null otherwise.
     *
     *                      {String} [result]   - The deserialized result object if an error did not occur.
     *
     *                      {WebResource} [request]  - The HTTP Request object if an error did not occur.
     *
     *                      {http.IncomingMessage} [response] - The HTTP Response stream if an error did not occur.
     */
    getNativeCrashDownload(appName: string, crashGroupId: string, crashId: string, ownerName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<string>;
    getNativeCrashDownload(appName: string, crashGroupId: string, crashId: string, ownerName: string, callback: ServiceCallback<string>): void;
    getNativeCrashDownload(appName: string, crashGroupId: string, crashId: string, ownerName: string, options: { customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<string>): void;


    /**
     * Gets the URI location to download json of a specific crash
     *
     * @param {string} appName The name of the application
     *
     * @param {string} crashGroupId id of a specific group
     *
     * @param {string} crashId id of a specific crash
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {object} [options] Optional Parameters.
     *
     * @param {object} [options.customHeaders] Headers that will be added to the
     * request
     *
     * @returns {Promise} A promise is returned
     *
     * @resolve {HttpOperationResponse<CrashRawLocation>} - The deserialized result object.
     *
     * @reject {Error|ServiceError} - The error object.
     */
    getRawCrashLocationWithHttpOperationResponse(appName: string, crashGroupId: string, crashId: string, ownerName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<models.CrashRawLocation>>;

    /**
     * Gets the URI location to download json of a specific crash
     *
     * @param {string} appName The name of the application
     *
     * @param {string} crashGroupId id of a specific group
     *
     * @param {string} crashId id of a specific crash
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {object} [options] Optional Parameters.
     *
     * @param {object} [options.customHeaders] Headers that will be added to the
     * request
     *
     * @param {ServiceCallback} [optionalCallback] - The optional callback.
     *
     * @returns {ServiceCallback|Promise} If a callback was passed as the last
     * parameter then it returns the callback else returns a Promise.
     *
     * {Promise} A promise is returned.
     *
     *                      @resolve {CrashRawLocation} - The deserialized result object.
     *
     *                      @reject {Error|ServiceError} - The error object.
     *
     * {ServiceCallback} optionalCallback(err, result, request, response)
     *
     *                      {Error|ServiceError}  err        - The Error object if an error occurred, null otherwise.
     *
     *                      {CrashRawLocation} [result]   - The deserialized result object if an error did not occur.
     *                      See {@link CrashRawLocation} for more information.
     *
     *                      {WebResource} [request]  - The HTTP Request object if an error did not occur.
     *
     *                      {http.IncomingMessage} [response] - The HTTP Response stream if an error did not occur.
     */
    getRawCrashLocation(appName: string, crashGroupId: string, crashId: string, ownerName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<models.CrashRawLocation>;
    getRawCrashLocation(appName: string, crashGroupId: string, crashId: string, ownerName: string, callback: ServiceCallback<models.CrashRawLocation>): void;
    getRawCrashLocation(appName: string, crashGroupId: string, crashId: string, ownerName: string, options: { customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<models.CrashRawLocation>): void;


    /**
     * Gets a stacktrace for a specific crash
     *
     * @param {string} appName The name of the application
     *
     * @param {string} crashGroupId id of a specific group
     *
     * @param {string} crashId id of a specific crash
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {object} [options] Optional Parameters.
     *
     * @param {boolean} [options.groupingOnly] true if the stacktrace should be
     * only the relevant thread / exception. Default is false
     *
     * @param {object} [options.customHeaders] Headers that will be added to the
     * request
     *
     * @returns {Promise} A promise is returned
     *
     * @resolve {HttpOperationResponse<Stacktrace>} - The deserialized result object.
     *
     * @reject {Error|ServiceError} - The error object.
     */
    getStacktraceWithHttpOperationResponse(appName: string, crashGroupId: string, crashId: string, ownerName: string, options?: { groupingOnly? : boolean, customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<models.Stacktrace>>;

    /**
     * Gets a stacktrace for a specific crash
     *
     * @param {string} appName The name of the application
     *
     * @param {string} crashGroupId id of a specific group
     *
     * @param {string} crashId id of a specific crash
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {object} [options] Optional Parameters.
     *
     * @param {boolean} [options.groupingOnly] true if the stacktrace should be
     * only the relevant thread / exception. Default is false
     *
     * @param {object} [options.customHeaders] Headers that will be added to the
     * request
     *
     * @param {ServiceCallback} [optionalCallback] - The optional callback.
     *
     * @returns {ServiceCallback|Promise} If a callback was passed as the last
     * parameter then it returns the callback else returns a Promise.
     *
     * {Promise} A promise is returned.
     *
     *                      @resolve {Stacktrace} - The deserialized result object.
     *
     *                      @reject {Error|ServiceError} - The error object.
     *
     * {ServiceCallback} optionalCallback(err, result, request, response)
     *
     *                      {Error|ServiceError}  err        - The Error object if an error occurred, null otherwise.
     *
     *                      {Stacktrace} [result]   - The deserialized result object if an error did not occur.
     *                      See {@link Stacktrace} for more information.
     *
     *                      {WebResource} [request]  - The HTTP Request object if an error did not occur.
     *
     *                      {http.IncomingMessage} [response] - The HTTP Response stream if an error did not occur.
     */
    getStacktrace(appName: string, crashGroupId: string, crashId: string, ownerName: string, options?: { groupingOnly? : boolean, customHeaders? : { [headerName: string]: string; } }): Promise<models.Stacktrace>;
    getStacktrace(appName: string, crashGroupId: string, crashId: string, ownerName: string, callback: ServiceCallback<models.Stacktrace>): void;
    getStacktrace(appName: string, crashGroupId: string, crashId: string, ownerName: string, options: { groupingOnly? : boolean, customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<models.Stacktrace>): void;


    /**
     * query azure search
     *
     * @param {string} appName The name of the application
     *
     * @param {object} body the query request object
     *
     * @param {string} body.search
     *
     * @param {string} crashGroupId id of a specific group
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {object} [options] Optional Parameters.
     *
     * @param {string} [options.appVersion] version
     *
     * @param {date} [options.dateFrom]
     *
     * @param {date} [options.dateTo]
     *
     * @param {object} [options.customHeaders] Headers that will be added to the
     * request
     *
     * @returns {Promise} A promise is returned
     *
     * @resolve {HttpOperationResponse<Array>} - The deserialized result object.
     *
     * @reject {Error|ServiceError} - The error object.
     */
    searchCrashesWithHttpOperationResponse(appName: string, body: models.SearchItemsRequest, crashGroupId: string, ownerName: string, options?: { appVersion? : string, dateFrom? : Date, dateTo? : Date, customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<models.SearchItem[]>>;

    /**
     * query azure search
     *
     * @param {string} appName The name of the application
     *
     * @param {object} body the query request object
     *
     * @param {string} body.search
     *
     * @param {string} crashGroupId id of a specific group
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {object} [options] Optional Parameters.
     *
     * @param {string} [options.appVersion] version
     *
     * @param {date} [options.dateFrom]
     *
     * @param {date} [options.dateTo]
     *
     * @param {object} [options.customHeaders] Headers that will be added to the
     * request
     *
     * @param {ServiceCallback} [optionalCallback] - The optional callback.
     *
     * @returns {ServiceCallback|Promise} If a callback was passed as the last
     * parameter then it returns the callback else returns a Promise.
     *
     * {Promise} A promise is returned.
     *
     *                      @resolve {Array} - The deserialized result object.
     *
     *                      @reject {Error|ServiceError} - The error object.
     *
     * {ServiceCallback} optionalCallback(err, result, request, response)
     *
     *                      {Error|ServiceError}  err        - The Error object if an error occurred, null otherwise.
     *
     *                      {Array} [result]   - The deserialized result object if an error did not occur.
     *
     *                      {WebResource} [request]  - The HTTP Request object if an error did not occur.
     *
     *                      {http.IncomingMessage} [response] - The HTTP Response stream if an error did not occur.
     */
    searchCrashes(appName: string, body: models.SearchItemsRequest, crashGroupId: string, ownerName: string, options?: { appVersion? : string, dateFrom? : Date, dateTo? : Date, customHeaders? : { [headerName: string]: string; } }): Promise<models.SearchItem[]>;
    searchCrashes(appName: string, body: models.SearchItemsRequest, crashGroupId: string, ownerName: string, callback: ServiceCallback<models.SearchItem[]>): void;
    searchCrashes(appName: string, body: models.SearchItemsRequest, crashGroupId: string, ownerName: string, options: { appVersion? : string, dateFrom? : Date, dateTo? : Date, customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<models.SearchItem[]>): void;


    /**
     * Gets all attachments for a specific crash
     *
     * @param {string} appName The name of the application
     *
     * @param {string} crashId id of a specific crash
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {object} [options] Optional Parameters.
     *
     * @param {object} [options.customHeaders] Headers that will be added to the
     * request
     *
     * @returns {Promise} A promise is returned
     *
     * @resolve {HttpOperationResponse<Array>} - The deserialized result object.
     *
     * @reject {Error|ServiceError} - The error object.
     */
    listAttachmentsWithHttpOperationResponse(appName: string, crashId: string, ownerName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<models.CrashAttachment[]>>;

    /**
     * Gets all attachments for a specific crash
     *
     * @param {string} appName The name of the application
     *
     * @param {string} crashId id of a specific crash
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {object} [options] Optional Parameters.
     *
     * @param {object} [options.customHeaders] Headers that will be added to the
     * request
     *
     * @param {ServiceCallback} [optionalCallback] - The optional callback.
     *
     * @returns {ServiceCallback|Promise} If a callback was passed as the last
     * parameter then it returns the callback else returns a Promise.
     *
     * {Promise} A promise is returned.
     *
     *                      @resolve {Array} - The deserialized result object.
     *
     *                      @reject {Error|ServiceError} - The error object.
     *
     * {ServiceCallback} optionalCallback(err, result, request, response)
     *
     *                      {Error|ServiceError}  err        - The Error object if an error occurred, null otherwise.
     *
     *                      {Array} [result]   - The deserialized result object if an error did not occur.
     *
     *                      {WebResource} [request]  - The HTTP Request object if an error did not occur.
     *
     *                      {http.IncomingMessage} [response] - The HTTP Response stream if an error did not occur.
     */
    listAttachments(appName: string, crashId: string, ownerName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<models.CrashAttachment[]>;
    listAttachments(appName: string, crashId: string, ownerName: string, callback: ServiceCallback<models.CrashAttachment[]>): void;
    listAttachments(appName: string, crashId: string, ownerName: string, options: { customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<models.CrashAttachment[]>): void;


    /**
     * Gets the URI location to download crash attachment
     *
     * @param {string} appName The name of the application
     *
     * @param {string} attachmentId attachment id
     *
     * @param {string} crashId id of a specific crash
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {object} [options] Optional Parameters.
     *
     * @param {object} [options.customHeaders] Headers that will be added to the
     * request
     *
     * @returns {Promise} A promise is returned
     *
     * @resolve {HttpOperationResponse<CrashAttachmentLocation>} - The deserialized result object.
     *
     * @reject {Error|ServiceError} - The error object.
     */
    getCrashAttachmentLocationWithHttpOperationResponse(appName: string, attachmentId: string, crashId: string, ownerName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<models.CrashAttachmentLocation>>;

    /**
     * Gets the URI location to download crash attachment
     *
     * @param {string} appName The name of the application
     *
     * @param {string} attachmentId attachment id
     *
     * @param {string} crashId id of a specific crash
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {object} [options] Optional Parameters.
     *
     * @param {object} [options.customHeaders] Headers that will be added to the
     * request
     *
     * @param {ServiceCallback} [optionalCallback] - The optional callback.
     *
     * @returns {ServiceCallback|Promise} If a callback was passed as the last
     * parameter then it returns the callback else returns a Promise.
     *
     * {Promise} A promise is returned.
     *
     *                      @resolve {CrashAttachmentLocation} - The deserialized result object.
     *
     *                      @reject {Error|ServiceError} - The error object.
     *
     * {ServiceCallback} optionalCallback(err, result, request, response)
     *
     *                      {Error|ServiceError}  err        - The Error object if an error occurred, null otherwise.
     *
     *                      {CrashAttachmentLocation} [result]   - The deserialized result object if an error did not occur.
     *                      See {@link CrashAttachmentLocation} for more
     *                      information.
     *
     *                      {WebResource} [request]  - The HTTP Request object if an error did not occur.
     *
     *                      {http.IncomingMessage} [response] - The HTTP Response stream if an error did not occur.
     */
    getCrashAttachmentLocation(appName: string, attachmentId: string, crashId: string, ownerName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<models.CrashAttachmentLocation>;
    getCrashAttachmentLocation(appName: string, attachmentId: string, crashId: string, ownerName: string, callback: ServiceCallback<models.CrashAttachmentLocation>): void;
    getCrashAttachmentLocation(appName: string, attachmentId: string, crashId: string, ownerName: string, options: { customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<models.CrashAttachmentLocation>): void;


    /**
     * Gets content of the text attachment
     *
     * @param {string} appName The name of the application
     *
     * @param {string} attachmentId attachment id
     *
     * @param {string} crashId id of a specific crash
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {object} [options] Optional Parameters.
     *
     * @param {object} [options.customHeaders] Headers that will be added to the
     * request
     *
     * @returns {Promise} A promise is returned
     *
     * @resolve {HttpOperationResponse<String>} - The deserialized result object.
     *
     * @reject {Error|ServiceError} - The error object.
     */
    getCrashTextAttachmentContentWithHttpOperationResponse(appName: string, attachmentId: string, crashId: string, ownerName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<string>>;

    /**
     * Gets content of the text attachment
     *
     * @param {string} appName The name of the application
     *
     * @param {string} attachmentId attachment id
     *
     * @param {string} crashId id of a specific crash
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {object} [options] Optional Parameters.
     *
     * @param {object} [options.customHeaders] Headers that will be added to the
     * request
     *
     * @param {ServiceCallback} [optionalCallback] - The optional callback.
     *
     * @returns {ServiceCallback|Promise} If a callback was passed as the last
     * parameter then it returns the callback else returns a Promise.
     *
     * {Promise} A promise is returned.
     *
     *                      @resolve {String} - The deserialized result object.
     *
     *                      @reject {Error|ServiceError} - The error object.
     *
     * {ServiceCallback} optionalCallback(err, result, request, response)
     *
     *                      {Error|ServiceError}  err        - The Error object if an error occurred, null otherwise.
     *
     *                      {String} [result]   - The deserialized result object if an error did not occur.
     *
     *                      {WebResource} [request]  - The HTTP Request object if an error did not occur.
     *
     *                      {http.IncomingMessage} [response] - The HTTP Response stream if an error did not occur.
     */
    getCrashTextAttachmentContent(appName: string, attachmentId: string, crashId: string, ownerName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<string>;
    getCrashTextAttachmentContent(appName: string, attachmentId: string, crashId: string, ownerName: string, callback: ServiceCallback<string>): void;
    getCrashTextAttachmentContent(appName: string, attachmentId: string, crashId: string, ownerName: string, options: { customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<string>): void;


    /**
     * @summary Gets whether the application has any crashes
     *
     * Gets whether the application has any crashes
     *
     * @param {string} appName The name of the application
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {object} [options] Optional Parameters.
     *
     * @param {object} [options.customHeaders] Headers that will be added to the
     * request
     *
     * @returns {Promise} A promise is returned
     *
     * @resolve {HttpOperationResponse<AppCrashesInfo>} - The deserialized result object.
     *
     * @reject {Error|ServiceError} - The error object.
     */
    getAppCrashesInfoWithHttpOperationResponse(appName: string, ownerName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<models.AppCrashesInfo>>;

    /**
     * @summary Gets whether the application has any crashes
     *
     * Gets whether the application has any crashes
     *
     * @param {string} appName The name of the application
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {object} [options] Optional Parameters.
     *
     * @param {object} [options.customHeaders] Headers that will be added to the
     * request
     *
     * @param {ServiceCallback} [optionalCallback] - The optional callback.
     *
     * @returns {ServiceCallback|Promise} If a callback was passed as the last
     * parameter then it returns the callback else returns a Promise.
     *
     * {Promise} A promise is returned.
     *
     *                      @resolve {AppCrashesInfo} - The deserialized result object.
     *
     *                      @reject {Error|ServiceError} - The error object.
     *
     * {ServiceCallback} optionalCallback(err, result, request, response)
     *
     *                      {Error|ServiceError}  err        - The Error object if an error occurred, null otherwise.
     *
     *                      {AppCrashesInfo} [result]   - The deserialized result object if an error did not occur.
     *                      See {@link AppCrashesInfo} for more information.
     *
     *                      {WebResource} [request]  - The HTTP Request object if an error did not occur.
     *
     *                      {http.IncomingMessage} [response] - The HTTP Response stream if an error did not occur.
     */
    getAppCrashesInfo(appName: string, ownerName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<models.AppCrashesInfo>;
    getAppCrashesInfo(appName: string, ownerName: string, callback: ServiceCallback<models.AppCrashesInfo>): void;
    getAppCrashesInfo(appName: string, ownerName: string, options: { customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<models.AppCrashesInfo>): void;


    /**
     * @summary Gets the state of HockeyApp Crash forwarding for SxS apps
     *
     * Gets the state of HockeyApp Crash forwarding for SxS apps
     *
     * @param {string} appName The name of the application
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {object} [options] Optional Parameters.
     *
     * @param {object} [options.customHeaders] Headers that will be added to the
     * request
     *
     * @returns {Promise} A promise is returned
     *
     * @resolve {HttpOperationResponse<HockeyAppCrashForwardingInfo>} - The deserialized result object.
     *
     * @reject {Error|ServiceError} - The error object.
     */
    getHockeyAppCrashForwardingStatusWithHttpOperationResponse(appName: string, ownerName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<models.HockeyAppCrashForwardingInfo>>;

    /**
     * @summary Gets the state of HockeyApp Crash forwarding for SxS apps
     *
     * Gets the state of HockeyApp Crash forwarding for SxS apps
     *
     * @param {string} appName The name of the application
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {object} [options] Optional Parameters.
     *
     * @param {object} [options.customHeaders] Headers that will be added to the
     * request
     *
     * @param {ServiceCallback} [optionalCallback] - The optional callback.
     *
     * @returns {ServiceCallback|Promise} If a callback was passed as the last
     * parameter then it returns the callback else returns a Promise.
     *
     * {Promise} A promise is returned.
     *
     *                      @resolve {HockeyAppCrashForwardingInfo} - The deserialized result object.
     *
     *                      @reject {Error|ServiceError} - The error object.
     *
     * {ServiceCallback} optionalCallback(err, result, request, response)
     *
     *                      {Error|ServiceError}  err        - The Error object if an error occurred, null otherwise.
     *
     *                      {HockeyAppCrashForwardingInfo} [result]   - The deserialized result object if an error did not occur.
     *                      See {@link HockeyAppCrashForwardingInfo} for more
     *                      information.
     *
     *                      {WebResource} [request]  - The HTTP Request object if an error did not occur.
     *
     *                      {http.IncomingMessage} [response] - The HTTP Response stream if an error did not occur.
     */
    getHockeyAppCrashForwardingStatus(appName: string, ownerName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<models.HockeyAppCrashForwardingInfo>;
    getHockeyAppCrashForwardingStatus(appName: string, ownerName: string, callback: ServiceCallback<models.HockeyAppCrashForwardingInfo>): void;
    getHockeyAppCrashForwardingStatus(appName: string, ownerName: string, options: { customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<models.HockeyAppCrashForwardingInfo>): void;


    /**
     * @summary Enable HockeyApp crash forwarding for SxS apps
     *
     * Enable HockeyApp crash forwarding for SxS apps
     *
     * @param {string} appName The name of the application
     *
     * @param {object} body Enable Forwarding
     *
     * @param {boolean} [body.enableForwarding]
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {object} [options] Optional Parameters.
     *
     * @param {object} [options.customHeaders] Headers that will be added to the
     * request
     *
     * @returns {Promise} A promise is returned
     *
     * @resolve {HttpOperationResponse<HockeyAppCrashForwardingInfo>} - The deserialized result object.
     *
     * @reject {Error|ServiceError} - The error object.
     */
    updateHockeyAppCrashForwardingWithHttpOperationResponse(appName: string, body: models.HockeyAppCrashForwardingChange, ownerName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<models.HockeyAppCrashForwardingInfo>>;

    /**
     * @summary Enable HockeyApp crash forwarding for SxS apps
     *
     * Enable HockeyApp crash forwarding for SxS apps
     *
     * @param {string} appName The name of the application
     *
     * @param {object} body Enable Forwarding
     *
     * @param {boolean} [body.enableForwarding]
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {object} [options] Optional Parameters.
     *
     * @param {object} [options.customHeaders] Headers that will be added to the
     * request
     *
     * @param {ServiceCallback} [optionalCallback] - The optional callback.
     *
     * @returns {ServiceCallback|Promise} If a callback was passed as the last
     * parameter then it returns the callback else returns a Promise.
     *
     * {Promise} A promise is returned.
     *
     *                      @resolve {HockeyAppCrashForwardingInfo} - The deserialized result object.
     *
     *                      @reject {Error|ServiceError} - The error object.
     *
     * {ServiceCallback} optionalCallback(err, result, request, response)
     *
     *                      {Error|ServiceError}  err        - The Error object if an error occurred, null otherwise.
     *
     *                      {HockeyAppCrashForwardingInfo} [result]   - The deserialized result object if an error did not occur.
     *                      See {@link HockeyAppCrashForwardingInfo} for more
     *                      information.
     *
     *                      {WebResource} [request]  - The HTTP Request object if an error did not occur.
     *
     *                      {http.IncomingMessage} [response] - The HTTP Response stream if an error did not occur.
     */
    updateHockeyAppCrashForwarding(appName: string, body: models.HockeyAppCrashForwardingChange, ownerName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<models.HockeyAppCrashForwardingInfo>;
    updateHockeyAppCrashForwarding(appName: string, body: models.HockeyAppCrashForwardingChange, ownerName: string, callback: ServiceCallback<models.HockeyAppCrashForwardingInfo>): void;
    updateHockeyAppCrashForwarding(appName: string, body: models.HockeyAppCrashForwardingChange, ownerName: string, options: { customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<models.HockeyAppCrashForwardingInfo>): void;


    /**
     * @summary Gets a list of application versions
     *
     * Gets a list of application versions
     *
     * @param {string} appName The name of the application
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {object} [options] Optional Parameters.
     *
     * @param {object} [options.customHeaders] Headers that will be added to the
     * request
     *
     * @returns {Promise} A promise is returned
     *
     * @resolve {HttpOperationResponse<Array>} - The deserialized result object.
     *
     * @reject {Error|ServiceError} - The error object.
     */
    getAppVersionsWithHttpOperationResponse(appName: string, ownerName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<models.AppVersion[]>>;

    /**
     * @summary Gets a list of application versions
     *
     * Gets a list of application versions
     *
     * @param {string} appName The name of the application
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {object} [options] Optional Parameters.
     *
     * @param {object} [options.customHeaders] Headers that will be added to the
     * request
     *
     * @param {ServiceCallback} [optionalCallback] - The optional callback.
     *
     * @returns {ServiceCallback|Promise} If a callback was passed as the last
     * parameter then it returns the callback else returns a Promise.
     *
     * {Promise} A promise is returned.
     *
     *                      @resolve {Array} - The deserialized result object.
     *
     *                      @reject {Error|ServiceError} - The error object.
     *
     * {ServiceCallback} optionalCallback(err, result, request, response)
     *
     *                      {Error|ServiceError}  err        - The Error object if an error occurred, null otherwise.
     *
     *                      {Array} [result]   - The deserialized result object if an error did not occur.
     *
     *                      {WebResource} [request]  - The HTTP Request object if an error did not occur.
     *
     *                      {http.IncomingMessage} [response] - The HTTP Response stream if an error did not occur.
     */
    getAppVersions(appName: string, ownerName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<models.AppVersion[]>;
    getAppVersions(appName: string, ownerName: string, callback: ServiceCallback<models.AppVersion[]>): void;
    getAppVersions(appName: string, ownerName: string, options: { customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<models.AppVersion[]>): void;
}

/**
 * @class
 * MissingSymbolGroups
 * __NOTE__: An instance of this class is automatically created for an
 * instance of the CrashClient.
 */
export interface MissingSymbolGroups {


    /**
     * @summary Gets top N (ordered by crash count) of crash groups by missing
     * symbol
     *
     * Gets top N (ordered by crash count) of crash groups by missing symbol
     *
     * @param {string} appName The name of the application
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {number} top top N elements
     *
     * @param {object} [options] Optional Parameters.
     *
     * @param {string} [options.filter] query filter
     *
     * @param {object} [options.customHeaders] Headers that will be added to the
     * request
     *
     * @returns {Promise} A promise is returned
     *
     * @resolve {HttpOperationResponse<MissingSymbolCrashGroupsResponse>} - The deserialized result object.
     *
     * @reject {Error|ServiceError} - The error object.
     */
    listWithHttpOperationResponse(appName: string, ownerName: string, top: number, options?: { filter? : string, customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<models.MissingSymbolCrashGroupsResponse>>;

    /**
     * @summary Gets top N (ordered by crash count) of crash groups by missing
     * symbol
     *
     * Gets top N (ordered by crash count) of crash groups by missing symbol
     *
     * @param {string} appName The name of the application
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {number} top top N elements
     *
     * @param {object} [options] Optional Parameters.
     *
     * @param {string} [options.filter] query filter
     *
     * @param {object} [options.customHeaders] Headers that will be added to the
     * request
     *
     * @param {ServiceCallback} [optionalCallback] - The optional callback.
     *
     * @returns {ServiceCallback|Promise} If a callback was passed as the last
     * parameter then it returns the callback else returns a Promise.
     *
     * {Promise} A promise is returned.
     *
     *                      @resolve {MissingSymbolCrashGroupsResponse} - The deserialized result object.
     *
     *                      @reject {Error|ServiceError} - The error object.
     *
     * {ServiceCallback} optionalCallback(err, result, request, response)
     *
     *                      {Error|ServiceError}  err        - The Error object if an error occurred, null otherwise.
     *
     *                      {MissingSymbolCrashGroupsResponse} [result]   - The deserialized result object if an error did not occur.
     *                      See {@link MissingSymbolCrashGroupsResponse} for more
     *                      information.
     *
     *                      {WebResource} [request]  - The HTTP Request object if an error did not occur.
     *
     *                      {http.IncomingMessage} [response] - The HTTP Response stream if an error did not occur.
     */
    list(appName: string, ownerName: string, top: number, options?: { filter? : string, customHeaders? : { [headerName: string]: string; } }): Promise<models.MissingSymbolCrashGroupsResponse>;
    list(appName: string, ownerName: string, top: number, callback: ServiceCallback<models.MissingSymbolCrashGroupsResponse>): void;
    list(appName: string, ownerName: string, top: number, options: { filter? : string, customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<models.MissingSymbolCrashGroupsResponse>): void;


    /**
     * @summary Gets missing symbol crash group by its id
     *
     * Gets missing symbol crash group by its id
     *
     * @param {string} appName The name of the application
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} symbolGroupId missing symbol crash group id
     *
     * @param {object} [options] Optional Parameters.
     *
     * @param {object} [options.customHeaders] Headers that will be added to the
     * request
     *
     * @returns {Promise} A promise is returned
     *
     * @resolve {HttpOperationResponse<MissingSymbolCrashGroupsResponse>} - The deserialized result object.
     *
     * @reject {Error|ServiceError} - The error object.
     */
    getWithHttpOperationResponse(appName: string, ownerName: string, symbolGroupId: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<models.MissingSymbolCrashGroupsResponse>>;

    /**
     * @summary Gets missing symbol crash group by its id
     *
     * Gets missing symbol crash group by its id
     *
     * @param {string} appName The name of the application
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} symbolGroupId missing symbol crash group id
     *
     * @param {object} [options] Optional Parameters.
     *
     * @param {object} [options.customHeaders] Headers that will be added to the
     * request
     *
     * @param {ServiceCallback} [optionalCallback] - The optional callback.
     *
     * @returns {ServiceCallback|Promise} If a callback was passed as the last
     * parameter then it returns the callback else returns a Promise.
     *
     * {Promise} A promise is returned.
     *
     *                      @resolve {MissingSymbolCrashGroupsResponse} - The deserialized result object.
     *
     *                      @reject {Error|ServiceError} - The error object.
     *
     * {ServiceCallback} optionalCallback(err, result, request, response)
     *
     *                      {Error|ServiceError}  err        - The Error object if an error occurred, null otherwise.
     *
     *                      {MissingSymbolCrashGroupsResponse} [result]   - The deserialized result object if an error did not occur.
     *                      See {@link MissingSymbolCrashGroupsResponse} for more
     *                      information.
     *
     *                      {WebResource} [request]  - The HTTP Request object if an error did not occur.
     *
     *                      {http.IncomingMessage} [response] - The HTTP Response stream if an error did not occur.
     */
    get(appName: string, ownerName: string, symbolGroupId: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<models.MissingSymbolCrashGroupsResponse>;
    get(appName: string, ownerName: string, symbolGroupId: string, callback: ServiceCallback<models.MissingSymbolCrashGroupsResponse>): void;
    get(appName: string, ownerName: string, symbolGroupId: string, options: { customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<models.MissingSymbolCrashGroupsResponse>): void;


    /**
     * @summary Gets application level statistics for all missing symbol groups
     *
     * Gets application level statistics for all missing symbol groups
     *
     * @param {string} appName The name of the application
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {object} [options] Optional Parameters.
     *
     * @param {object} [options.customHeaders] Headers that will be added to the
     * request
     *
     * @returns {Promise} A promise is returned
     *
     * @resolve {HttpOperationResponse<MissingSymbolCrashGroupsInfoResponse>} - The deserialized result object.
     *
     * @reject {Error|ServiceError} - The error object.
     */
    infoWithHttpOperationResponse(appName: string, ownerName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<models.MissingSymbolCrashGroupsInfoResponse>>;

    /**
     * @summary Gets application level statistics for all missing symbol groups
     *
     * Gets application level statistics for all missing symbol groups
     *
     * @param {string} appName The name of the application
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {object} [options] Optional Parameters.
     *
     * @param {object} [options.customHeaders] Headers that will be added to the
     * request
     *
     * @param {ServiceCallback} [optionalCallback] - The optional callback.
     *
     * @returns {ServiceCallback|Promise} If a callback was passed as the last
     * parameter then it returns the callback else returns a Promise.
     *
     * {Promise} A promise is returned.
     *
     *                      @resolve {MissingSymbolCrashGroupsInfoResponse} - The deserialized result object.
     *
     *                      @reject {Error|ServiceError} - The error object.
     *
     * {ServiceCallback} optionalCallback(err, result, request, response)
     *
     *                      {Error|ServiceError}  err        - The Error object if an error occurred, null otherwise.
     *
     *                      {MissingSymbolCrashGroupsInfoResponse} [result]   - The deserialized result object if an error did not occur.
     *                      See {@link MissingSymbolCrashGroupsInfoResponse} for
     *                      more information.
     *
     *                      {WebResource} [request]  - The HTTP Request object if an error did not occur.
     *
     *                      {http.IncomingMessage} [response] - The HTTP Response stream if an error did not occur.
     */
    info(appName: string, ownerName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<models.MissingSymbolCrashGroupsInfoResponse>;
    info(appName: string, ownerName: string, callback: ServiceCallback<models.MissingSymbolCrashGroupsInfoResponse>): void;
    info(appName: string, ownerName: string, options: { customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<models.MissingSymbolCrashGroupsInfoResponse>): void;
}

/**
 * @class
 * SymbolUploads
 * __NOTE__: An instance of this class is automatically created for an
 * instance of the CrashClient.
 */
export interface SymbolUploads {


    /**
     * Gets a list of all uploads for the specified application
     *
     * @param {string} appName The name of the application
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {object} [options] Optional Parameters.
     *
     * @param {string} [options.status] Filter results by the current status of a
     * symbol upload: * all: all states in the symbol upload process. Includes
     * created, aborted, committed, processing, indexed and failed states *
     * uploaded: all states after package is uploaded. Includes committed,
     * processing, indexed and failed states * processed: symbol upload processing
     * is completed. Includes indexed and failed states.
     * . Possible values include: 'all', 'uploaded', 'processed'
     *
     * @param {number} [options.top] The maximum number of results to return.
     *
     * @param {object} [options.customHeaders] Headers that will be added to the
     * request
     *
     * @returns {Promise} A promise is returned
     *
     * @resolve {HttpOperationResponse<Array>} - The deserialized result object.
     *
     * @reject {Error|ServiceError} - The error object.
     */
    listWithHttpOperationResponse(appName: string, ownerName: string, options?: { status? : string, top? : number, customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<models.SymbolUpload[]>>;

    /**
     * Gets a list of all uploads for the specified application
     *
     * @param {string} appName The name of the application
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {object} [options] Optional Parameters.
     *
     * @param {string} [options.status] Filter results by the current status of a
     * symbol upload: * all: all states in the symbol upload process. Includes
     * created, aborted, committed, processing, indexed and failed states *
     * uploaded: all states after package is uploaded. Includes committed,
     * processing, indexed and failed states * processed: symbol upload processing
     * is completed. Includes indexed and failed states.
     * . Possible values include: 'all', 'uploaded', 'processed'
     *
     * @param {number} [options.top] The maximum number of results to return.
     *
     * @param {object} [options.customHeaders] Headers that will be added to the
     * request
     *
     * @param {ServiceCallback} [optionalCallback] - The optional callback.
     *
     * @returns {ServiceCallback|Promise} If a callback was passed as the last
     * parameter then it returns the callback else returns a Promise.
     *
     * {Promise} A promise is returned.
     *
     *                      @resolve {Array} - The deserialized result object.
     *
     *                      @reject {Error|ServiceError} - The error object.
     *
     * {ServiceCallback} optionalCallback(err, result, request, response)
     *
     *                      {Error|ServiceError}  err        - The Error object if an error occurred, null otherwise.
     *
     *                      {Array} [result]   - The deserialized result object if an error did not occur.
     *
     *                      {WebResource} [request]  - The HTTP Request object if an error did not occur.
     *
     *                      {http.IncomingMessage} [response] - The HTTP Response stream if an error did not occur.
     */
    list(appName: string, ownerName: string, options?: { status? : string, top? : number, customHeaders? : { [headerName: string]: string; } }): Promise<models.SymbolUpload[]>;
    list(appName: string, ownerName: string, callback: ServiceCallback<models.SymbolUpload[]>): void;
    list(appName: string, ownerName: string, options: { status? : string, top? : number, customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<models.SymbolUpload[]>): void;


    /**
     * Begins the symbol upload process for a new set of symbols for the specified
     * application
     *
     * @param {string} appName The name of the application
     *
     * @param {object} body The symbol information
     *
     * @param {string} body.symbolType The type of the symbol for the current
     * symbol upload. Possible values include: 'Apple', 'Breakpad',
     * 'AndroidProguard'
     *
     * @param {string} [body.clientCallback] The callback URL that the client can
     * optionally provide to get status updates for the current symbol upload
     *
     * @param {string} [body.fileName] The file name for the symbol upload
     *
     * @param {string} [body.build] The build number. Optional for Apple platforms.
     *
     * @param {string} [body.version] the version number.  Optional for Apple
     * platforms.
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {object} [options] Optional Parameters.
     *
     * @param {object} [options.customHeaders] Headers that will be added to the
     * request
     *
     * @returns {Promise} A promise is returned
     *
     * @resolve {HttpOperationResponse<SymbolUploadBeginResponse>} - The deserialized result object.
     *
     * @reject {Error|ServiceError} - The error object.
     */
    createWithHttpOperationResponse(appName: string, body: models.SymbolUploadBeginRequest, ownerName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<models.SymbolUploadBeginResponse>>;

    /**
     * Begins the symbol upload process for a new set of symbols for the specified
     * application
     *
     * @param {string} appName The name of the application
     *
     * @param {object} body The symbol information
     *
     * @param {string} body.symbolType The type of the symbol for the current
     * symbol upload. Possible values include: 'Apple', 'Breakpad',
     * 'AndroidProguard'
     *
     * @param {string} [body.clientCallback] The callback URL that the client can
     * optionally provide to get status updates for the current symbol upload
     *
     * @param {string} [body.fileName] The file name for the symbol upload
     *
     * @param {string} [body.build] The build number. Optional for Apple platforms.
     *
     * @param {string} [body.version] the version number.  Optional for Apple
     * platforms.
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {object} [options] Optional Parameters.
     *
     * @param {object} [options.customHeaders] Headers that will be added to the
     * request
     *
     * @param {ServiceCallback} [optionalCallback] - The optional callback.
     *
     * @returns {ServiceCallback|Promise} If a callback was passed as the last
     * parameter then it returns the callback else returns a Promise.
     *
     * {Promise} A promise is returned.
     *
     *                      @resolve {SymbolUploadBeginResponse} - The deserialized result object.
     *
     *                      @reject {Error|ServiceError} - The error object.
     *
     * {ServiceCallback} optionalCallback(err, result, request, response)
     *
     *                      {Error|ServiceError}  err        - The Error object if an error occurred, null otherwise.
     *
     *                      {SymbolUploadBeginResponse} [result]   - The deserialized result object if an error did not occur.
     *                      See {@link SymbolUploadBeginResponse} for more
     *                      information.
     *
     *                      {WebResource} [request]  - The HTTP Request object if an error did not occur.
     *
     *                      {http.IncomingMessage} [response] - The HTTP Response stream if an error did not occur.
     */
    create(appName: string, body: models.SymbolUploadBeginRequest, ownerName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<models.SymbolUploadBeginResponse>;
    create(appName: string, body: models.SymbolUploadBeginRequest, ownerName: string, callback: ServiceCallback<models.SymbolUploadBeginResponse>): void;
    create(appName: string, body: models.SymbolUploadBeginRequest, ownerName: string, options: { customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<models.SymbolUploadBeginResponse>): void;


    /**
     * Gets a symbol upload by id for the specified application
     *
     * @param {string} appName The name of the application
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} symbolUploadId The ID of the symbol upload
     *
     * @param {object} [options] Optional Parameters.
     *
     * @param {object} [options.customHeaders] Headers that will be added to the
     * request
     *
     * @returns {Promise} A promise is returned
     *
     * @resolve {HttpOperationResponse<SymbolUpload>} - The deserialized result object.
     *
     * @reject {Error|ServiceError} - The error object.
     */
    getWithHttpOperationResponse(appName: string, ownerName: string, symbolUploadId: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<models.SymbolUpload>>;

    /**
     * Gets a symbol upload by id for the specified application
     *
     * @param {string} appName The name of the application
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} symbolUploadId The ID of the symbol upload
     *
     * @param {object} [options] Optional Parameters.
     *
     * @param {object} [options.customHeaders] Headers that will be added to the
     * request
     *
     * @param {ServiceCallback} [optionalCallback] - The optional callback.
     *
     * @returns {ServiceCallback|Promise} If a callback was passed as the last
     * parameter then it returns the callback else returns a Promise.
     *
     * {Promise} A promise is returned.
     *
     *                      @resolve {SymbolUpload} - The deserialized result object.
     *
     *                      @reject {Error|ServiceError} - The error object.
     *
     * {ServiceCallback} optionalCallback(err, result, request, response)
     *
     *                      {Error|ServiceError}  err        - The Error object if an error occurred, null otherwise.
     *
     *                      {SymbolUpload} [result]   - The deserialized result object if an error did not occur.
     *                      See {@link SymbolUpload} for more information.
     *
     *                      {WebResource} [request]  - The HTTP Request object if an error did not occur.
     *
     *                      {http.IncomingMessage} [response] - The HTTP Response stream if an error did not occur.
     */
    get(appName: string, ownerName: string, symbolUploadId: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<models.SymbolUpload>;
    get(appName: string, ownerName: string, symbolUploadId: string, callback: ServiceCallback<models.SymbolUpload>): void;
    get(appName: string, ownerName: string, symbolUploadId: string, options: { customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<models.SymbolUpload>): void;


    /**
     * Commits or aborts the symbol upload process for a new set of symbols for the
     * specified application
     *
     * @param {string} appName The name of the application
     *
     * @param {object} body The symbol information
     *
     * @param {string} body.status The desired operation for the symbol upload.
     * Possible values include: 'committed', 'aborted'
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} symbolUploadId The ID of the symbol upload
     *
     * @param {object} [options] Optional Parameters.
     *
     * @param {object} [options.customHeaders] Headers that will be added to the
     * request
     *
     * @returns {Promise} A promise is returned
     *
     * @resolve {HttpOperationResponse<SymbolUpload>} - The deserialized result object.
     *
     * @reject {Error|ServiceError} - The error object.
     */
    completeWithHttpOperationResponse(appName: string, body: models.SymbolUploadEndRequest, ownerName: string, symbolUploadId: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<models.SymbolUpload>>;

    /**
     * Commits or aborts the symbol upload process for a new set of symbols for the
     * specified application
     *
     * @param {string} appName The name of the application
     *
     * @param {object} body The symbol information
     *
     * @param {string} body.status The desired operation for the symbol upload.
     * Possible values include: 'committed', 'aborted'
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} symbolUploadId The ID of the symbol upload
     *
     * @param {object} [options] Optional Parameters.
     *
     * @param {object} [options.customHeaders] Headers that will be added to the
     * request
     *
     * @param {ServiceCallback} [optionalCallback] - The optional callback.
     *
     * @returns {ServiceCallback|Promise} If a callback was passed as the last
     * parameter then it returns the callback else returns a Promise.
     *
     * {Promise} A promise is returned.
     *
     *                      @resolve {SymbolUpload} - The deserialized result object.
     *
     *                      @reject {Error|ServiceError} - The error object.
     *
     * {ServiceCallback} optionalCallback(err, result, request, response)
     *
     *                      {Error|ServiceError}  err        - The Error object if an error occurred, null otherwise.
     *
     *                      {SymbolUpload} [result]   - The deserialized result object if an error did not occur.
     *                      See {@link SymbolUpload} for more information.
     *
     *                      {WebResource} [request]  - The HTTP Request object if an error did not occur.
     *
     *                      {http.IncomingMessage} [response] - The HTTP Response stream if an error did not occur.
     */
    complete(appName: string, body: models.SymbolUploadEndRequest, ownerName: string, symbolUploadId: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<models.SymbolUpload>;
    complete(appName: string, body: models.SymbolUploadEndRequest, ownerName: string, symbolUploadId: string, callback: ServiceCallback<models.SymbolUpload>): void;
    complete(appName: string, body: models.SymbolUploadEndRequest, ownerName: string, symbolUploadId: string, options: { customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<models.SymbolUpload>): void;


    /**
     * Deletes a symbol upload by id for the specified application
     *
     * @param {string} appName The name of the application
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} symbolUploadId The ID of the symbol upload
     *
     * @param {object} [options] Optional Parameters.
     *
     * @param {object} [options.customHeaders] Headers that will be added to the
     * request
     *
     * @returns {Promise} A promise is returned
     *
     * @resolve {HttpOperationResponse<SymbolUpload>} - The deserialized result object.
     *
     * @reject {Error|ServiceError} - The error object.
     */
    deleteMethodWithHttpOperationResponse(appName: string, ownerName: string, symbolUploadId: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<models.SymbolUpload>>;

    /**
     * Deletes a symbol upload by id for the specified application
     *
     * @param {string} appName The name of the application
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} symbolUploadId The ID of the symbol upload
     *
     * @param {object} [options] Optional Parameters.
     *
     * @param {object} [options.customHeaders] Headers that will be added to the
     * request
     *
     * @param {ServiceCallback} [optionalCallback] - The optional callback.
     *
     * @returns {ServiceCallback|Promise} If a callback was passed as the last
     * parameter then it returns the callback else returns a Promise.
     *
     * {Promise} A promise is returned.
     *
     *                      @resolve {SymbolUpload} - The deserialized result object.
     *
     *                      @reject {Error|ServiceError} - The error object.
     *
     * {ServiceCallback} optionalCallback(err, result, request, response)
     *
     *                      {Error|ServiceError}  err        - The Error object if an error occurred, null otherwise.
     *
     *                      {SymbolUpload} [result]   - The deserialized result object if an error did not occur.
     *                      See {@link SymbolUpload} for more information.
     *
     *                      {WebResource} [request]  - The HTTP Request object if an error did not occur.
     *
     *                      {http.IncomingMessage} [response] - The HTTP Response stream if an error did not occur.
     */
    deleteMethod(appName: string, ownerName: string, symbolUploadId: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<models.SymbolUpload>;
    deleteMethod(appName: string, ownerName: string, symbolUploadId: string, callback: ServiceCallback<models.SymbolUpload>): void;
    deleteMethod(appName: string, ownerName: string, symbolUploadId: string, options: { customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<models.SymbolUpload>): void;


    /**
     * Gets the URL to download the symbol upload
     *
     * @param {string} appName The name of the application
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} symbolUploadId The ID of the symbol upload
     *
     * @param {object} [options] Optional Parameters.
     *
     * @param {object} [options.customHeaders] Headers that will be added to the
     * request
     *
     * @returns {Promise} A promise is returned
     *
     * @resolve {HttpOperationResponse<SymbolUploadLocation>} - The deserialized result object.
     *
     * @reject {Error|ServiceError} - The error object.
     */
    getLocationWithHttpOperationResponse(appName: string, ownerName: string, symbolUploadId: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<models.SymbolUploadLocation>>;

    /**
     * Gets the URL to download the symbol upload
     *
     * @param {string} appName The name of the application
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} symbolUploadId The ID of the symbol upload
     *
     * @param {object} [options] Optional Parameters.
     *
     * @param {object} [options.customHeaders] Headers that will be added to the
     * request
     *
     * @param {ServiceCallback} [optionalCallback] - The optional callback.
     *
     * @returns {ServiceCallback|Promise} If a callback was passed as the last
     * parameter then it returns the callback else returns a Promise.
     *
     * {Promise} A promise is returned.
     *
     *                      @resolve {SymbolUploadLocation} - The deserialized result object.
     *
     *                      @reject {Error|ServiceError} - The error object.
     *
     * {ServiceCallback} optionalCallback(err, result, request, response)
     *
     *                      {Error|ServiceError}  err        - The Error object if an error occurred, null otherwise.
     *
     *                      {SymbolUploadLocation} [result]   - The deserialized result object if an error did not occur.
     *                      See {@link SymbolUploadLocation} for more information.
     *
     *                      {WebResource} [request]  - The HTTP Request object if an error did not occur.
     *
     *                      {http.IncomingMessage} [response] - The HTTP Response stream if an error did not occur.
     */
    getLocation(appName: string, ownerName: string, symbolUploadId: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<models.SymbolUploadLocation>;
    getLocation(appName: string, ownerName: string, symbolUploadId: string, callback: ServiceCallback<models.SymbolUploadLocation>): void;
    getLocation(appName: string, ownerName: string, symbolUploadId: string, options: { customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<models.SymbolUploadLocation>): void;
}

/**
 * @class
 * Symbols
 * __NOTE__: An instance of this class is automatically created for an
 * instance of the CrashClient.
 */
export interface Symbols {


    /**
     * Returns the list of all symbols for the provided application
     *
     * @param {string} appName The name of the application
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {object} [options] Optional Parameters.
     *
     * @param {object} [options.customHeaders] Headers that will be added to the
     * request
     *
     * @returns {Promise} A promise is returned
     *
     * @resolve {HttpOperationResponse<Array>} - The deserialized result object.
     *
     * @reject {Error|ServiceError} - The error object.
     */
    listWithHttpOperationResponse(appName: string, ownerName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<models.Symbol[]>>;

    /**
     * Returns the list of all symbols for the provided application
     *
     * @param {string} appName The name of the application
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {object} [options] Optional Parameters.
     *
     * @param {object} [options.customHeaders] Headers that will be added to the
     * request
     *
     * @param {ServiceCallback} [optionalCallback] - The optional callback.
     *
     * @returns {ServiceCallback|Promise} If a callback was passed as the last
     * parameter then it returns the callback else returns a Promise.
     *
     * {Promise} A promise is returned.
     *
     *                      @resolve {Array} - The deserialized result object.
     *
     *                      @reject {Error|ServiceError} - The error object.
     *
     * {ServiceCallback} optionalCallback(err, result, request, response)
     *
     *                      {Error|ServiceError}  err        - The Error object if an error occurred, null otherwise.
     *
     *                      {Array} [result]   - The deserialized result object if an error did not occur.
     *
     *                      {WebResource} [request]  - The HTTP Request object if an error did not occur.
     *
     *                      {http.IncomingMessage} [response] - The HTTP Response stream if an error did not occur.
     */
    list(appName: string, ownerName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<models.Symbol[]>;
    list(appName: string, ownerName: string, callback: ServiceCallback<models.Symbol[]>): void;
    list(appName: string, ownerName: string, options: { customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<models.Symbol[]>): void;


    /**
     * Returns a particular symbol by id (uuid) for the provided application
     *
     * @param {string} appName The name of the application
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} symbolId The ID of the symbol (uuid of the symbol)
     *
     * @param {object} [options] Optional Parameters.
     *
     * @param {object} [options.customHeaders] Headers that will be added to the
     * request
     *
     * @returns {Promise} A promise is returned
     *
     * @resolve {HttpOperationResponse<Symbol>} - The deserialized result object.
     *
     * @reject {Error|ServiceError} - The error object.
     */
    getWithHttpOperationResponse(appName: string, ownerName: string, symbolId: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<models.Symbol>>;

    /**
     * Returns a particular symbol by id (uuid) for the provided application
     *
     * @param {string} appName The name of the application
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} symbolId The ID of the symbol (uuid of the symbol)
     *
     * @param {object} [options] Optional Parameters.
     *
     * @param {object} [options.customHeaders] Headers that will be added to the
     * request
     *
     * @param {ServiceCallback} [optionalCallback] - The optional callback.
     *
     * @returns {ServiceCallback|Promise} If a callback was passed as the last
     * parameter then it returns the callback else returns a Promise.
     *
     * {Promise} A promise is returned.
     *
     *                      @resolve {Symbol} - The deserialized result object.
     *
     *                      @reject {Error|ServiceError} - The error object.
     *
     * {ServiceCallback} optionalCallback(err, result, request, response)
     *
     *                      {Error|ServiceError}  err        - The Error object if an error occurred, null otherwise.
     *
     *                      {Symbol} [result]   - The deserialized result object if an error did not occur.
     *                      See {@link Symbol} for more information.
     *
     *                      {WebResource} [request]  - The HTTP Request object if an error did not occur.
     *
     *                      {http.IncomingMessage} [response] - The HTTP Response stream if an error did not occur.
     */
    get(appName: string, ownerName: string, symbolId: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<models.Symbol>;
    get(appName: string, ownerName: string, symbolId: string, callback: ServiceCallback<models.Symbol>): void;
    get(appName: string, ownerName: string, symbolId: string, options: { customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<models.Symbol>): void;


    /**
     * Marks a symbol by id (uuid) as ignored
     *
     * @param {string} appName The name of the application
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} symbolId The ID of the symbol (uuid of the symbol)
     *
     * @param {object} [options] Optional Parameters.
     *
     * @param {object} [options.customHeaders] Headers that will be added to the
     * request
     *
     * @returns {Promise} A promise is returned
     *
     * @resolve {HttpOperationResponse<Symbol>} - The deserialized result object.
     *
     * @reject {Error|ServiceError} - The error object.
     */
    ignoreWithHttpOperationResponse(appName: string, ownerName: string, symbolId: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<models.Symbol>>;

    /**
     * Marks a symbol by id (uuid) as ignored
     *
     * @param {string} appName The name of the application
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} symbolId The ID of the symbol (uuid of the symbol)
     *
     * @param {object} [options] Optional Parameters.
     *
     * @param {object} [options.customHeaders] Headers that will be added to the
     * request
     *
     * @param {ServiceCallback} [optionalCallback] - The optional callback.
     *
     * @returns {ServiceCallback|Promise} If a callback was passed as the last
     * parameter then it returns the callback else returns a Promise.
     *
     * {Promise} A promise is returned.
     *
     *                      @resolve {Symbol} - The deserialized result object.
     *
     *                      @reject {Error|ServiceError} - The error object.
     *
     * {ServiceCallback} optionalCallback(err, result, request, response)
     *
     *                      {Error|ServiceError}  err        - The Error object if an error occurred, null otherwise.
     *
     *                      {Symbol} [result]   - The deserialized result object if an error did not occur.
     *                      See {@link Symbol} for more information.
     *
     *                      {WebResource} [request]  - The HTTP Request object if an error did not occur.
     *
     *                      {http.IncomingMessage} [response] - The HTTP Response stream if an error did not occur.
     */
    ignore(appName: string, ownerName: string, symbolId: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<models.Symbol>;
    ignore(appName: string, ownerName: string, symbolId: string, callback: ServiceCallback<models.Symbol>): void;
    ignore(appName: string, ownerName: string, symbolId: string, options: { customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<models.Symbol>): void;


    /**
     * Returns a particular symbol by id (uuid) for the provided application
     *
     * @param {string} appName The name of the application
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} symbolId The ID of the symbol (uuid of the symbol)
     *
     * @param {object} [options] Optional Parameters.
     *
     * @param {object} [options.customHeaders] Headers that will be added to the
     * request
     *
     * @returns {Promise} A promise is returned
     *
     * @resolve {HttpOperationResponse<SymbolStatusResponse>} - The deserialized result object.
     *
     * @reject {Error|ServiceError} - The error object.
     */
    getStatusWithHttpOperationResponse(appName: string, ownerName: string, symbolId: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<models.SymbolStatusResponse>>;

    /**
     * Returns a particular symbol by id (uuid) for the provided application
     *
     * @param {string} appName The name of the application
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} symbolId The ID of the symbol (uuid of the symbol)
     *
     * @param {object} [options] Optional Parameters.
     *
     * @param {object} [options.customHeaders] Headers that will be added to the
     * request
     *
     * @param {ServiceCallback} [optionalCallback] - The optional callback.
     *
     * @returns {ServiceCallback|Promise} If a callback was passed as the last
     * parameter then it returns the callback else returns a Promise.
     *
     * {Promise} A promise is returned.
     *
     *                      @resolve {SymbolStatusResponse} - The deserialized result object.
     *
     *                      @reject {Error|ServiceError} - The error object.
     *
     * {ServiceCallback} optionalCallback(err, result, request, response)
     *
     *                      {Error|ServiceError}  err        - The Error object if an error occurred, null otherwise.
     *
     *                      {SymbolStatusResponse} [result]   - The deserialized result object if an error did not occur.
     *                      See {@link SymbolStatusResponse} for more information.
     *
     *                      {WebResource} [request]  - The HTTP Request object if an error did not occur.
     *
     *                      {http.IncomingMessage} [response] - The HTTP Response stream if an error did not occur.
     */
    getStatus(appName: string, ownerName: string, symbolId: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<models.SymbolStatusResponse>;
    getStatus(appName: string, ownerName: string, symbolId: string, callback: ServiceCallback<models.SymbolStatusResponse>): void;
    getStatus(appName: string, ownerName: string, symbolId: string, options: { customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<models.SymbolStatusResponse>): void;
}
