/*
 * Copyright (c) Microsoft Corporation. All rights reserved.
 * Licensed under the MIT License. See License.txt in the project root for
 * license information.
 *
 * Code generated by Microsoft (R) AutoRest Code Generator.
 * Changes may cause incorrect behavior and will be lost if the code is
 * regenerated.
*/

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


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


    /**
     * Registers a user for an existing device
     *
     * @param {string} userId The ID of the user
     *
     * @param {object} body The device info.
     *
     * @param {string} body.udid The Unique Device IDentifier of the device
     *
     * @param {string} body.model The model identifier of the device, in the format
     * iDeviceM,N
     *
     * @param {string} [body.osBuild] The build number of the last known OS version
     * running on the device
     *
     * @param {string} [body.osVersion] The last known OS version running on the
     * device
     *
     * @param {string} [body.serial] The device's serial number. Always empty or
     * undefined at present.
     *
     * @param {string} [body.imei] The device's International Mobile Equipment
     * Identity number. Always empty or undefined at present.
     *
     * @param {string} [body.ownerId] The user ID of the device 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<Object>} - The deserialized result object.
     *
     * @reject {Error|ServiceError} - The error object.
     */
    registerUserForDeviceWithHttpOperationResponse(userId: string, body: models.DeviceInfoRequest, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<any>>;

    /**
     * Registers a user for an existing device
     *
     * @param {string} userId The ID of the user
     *
     * @param {object} body The device info.
     *
     * @param {string} body.udid The Unique Device IDentifier of the device
     *
     * @param {string} body.model The model identifier of the device, in the format
     * iDeviceM,N
     *
     * @param {string} [body.osBuild] The build number of the last known OS version
     * running on the device
     *
     * @param {string} [body.osVersion] The last known OS version running on the
     * device
     *
     * @param {string} [body.serial] The device's serial number. Always empty or
     * undefined at present.
     *
     * @param {string} [body.imei] The device's International Mobile Equipment
     * Identity number. Always empty or undefined at present.
     *
     * @param {string} [body.ownerId] The user ID of the device 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 {Object} - 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.
     *
     *                      {Object} [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.
     */
    registerUserForDevice(userId: string, body: models.DeviceInfoRequest, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<any>;
    registerUserForDevice(userId: string, body: models.DeviceInfoRequest, callback: ServiceCallback<any>): void;
    registerUserForDevice(userId: string, body: models.DeviceInfoRequest, options: { customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<any>): void;


    /**
     * Returns the device details.
     *
     * @param {string} deviceUdid The UDID of the device
     *
     * @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<Object>} - The deserialized result object.
     *
     * @reject {Error|ServiceError} - The error object.
     */
    deviceDetailsWithHttpOperationResponse(deviceUdid: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<any>>;

    /**
     * Returns the device details.
     *
     * @param {string} deviceUdid The UDID of the device
     *
     * @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 {Object} - 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.
     *
     *                      {Object} [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.
     */
    deviceDetails(deviceUdid: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<any>;
    deviceDetails(deviceUdid: string, callback: ServiceCallback<any>): void;
    deviceDetails(deviceUdid: string, options: { customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<any>): void;


    /**
     * Removes an existing device from a user
     *
     * @param {string} deviceUdid The UDID of the device
     *
     * @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<ErrorDetails>} - The deserialized result object.
     *
     * @reject {Error|ServiceError} - The error object.
     */
    removeUserDeviceWithHttpOperationResponse(deviceUdid: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<models.ErrorDetails>>;

    /**
     * Removes an existing device from a user
     *
     * @param {string} deviceUdid The UDID of the device
     *
     * @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 {ErrorDetails} - 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.
     *
     *                      {ErrorDetails} [result]   - The deserialized result object if an error did not occur.
     *                      See {@link ErrorDetails} 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.
     */
    removeUserDevice(deviceUdid: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<models.ErrorDetails>;
    removeUserDevice(deviceUdid: string, callback: ServiceCallback<models.ErrorDetails>): void;
    removeUserDevice(deviceUdid: string, options: { customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<models.ErrorDetails>): void;


    /**
     * Returns all devices associated with the given user.
     *
     * @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<Object>} - The deserialized result object.
     *
     * @reject {Error|ServiceError} - The error object.
     */
    userDevicesListWithHttpOperationResponse(options?: { customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<any>>;

    /**
     * Returns all devices associated with the given user.
     *
     * @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 {Object} - 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.
     *
     *                      {Object} [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.
     */
    userDevicesList(options?: { customHeaders? : { [headerName: string]: string; } }): Promise<any>;
    userDevicesList(callback: ServiceCallback<any>): void;
    userDevicesList(options: { customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<any>): void;


    /**
     * Returns the resign status to the caller
     *
     * @param {string} releaseId The ID of the release.
     *
     * @param {string} resignId The ID of the resign operation.
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @param {object} [options] Optional Parameters.
     *
     * @param {boolean} [options.includeProvisioningProfile] A boolean value that
     * indicates if the provisioning profile should be return in addition to the
     * status. When set to true, the provisioning profile will be returned only
     * when status is 'complete' or 'preparing_for_testers'.
     *
     * @param {object} [options.customHeaders] Headers that will be added to the
     * request
     *
     * @returns {Promise} A promise is returned
     *
     * @resolve {HttpOperationResponse<Object>} - The deserialized result object.
     *
     * @reject {Error|ServiceError} - The error object.
     */
    getReleaseUpdateDevicesStatusWithHttpOperationResponse(releaseId: string, resignId: string, ownerName: string, appName: string, options?: { includeProvisioningProfile? : boolean, customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<any>>;

    /**
     * Returns the resign status to the caller
     *
     * @param {string} releaseId The ID of the release.
     *
     * @param {string} resignId The ID of the resign operation.
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @param {object} [options] Optional Parameters.
     *
     * @param {boolean} [options.includeProvisioningProfile] A boolean value that
     * indicates if the provisioning profile should be return in addition to the
     * status. When set to true, the provisioning profile will be returned only
     * when status is 'complete' or 'preparing_for_testers'.
     *
     * @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 {Object} - 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.
     *
     *                      {Object} [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.
     */
    getReleaseUpdateDevicesStatus(releaseId: string, resignId: string, ownerName: string, appName: string, options?: { includeProvisioningProfile? : boolean, customHeaders? : { [headerName: string]: string; } }): Promise<any>;
    getReleaseUpdateDevicesStatus(releaseId: string, resignId: string, ownerName: string, appName: string, callback: ServiceCallback<any>): void;
    getReleaseUpdateDevicesStatus(releaseId: string, resignId: string, ownerName: string, appName: string, options: { includeProvisioningProfile? : boolean, customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<any>): void;


    /**
     * Returns all devices associated with the given distribution group.
     *
     * @param {string} distributionGroupName The name of the distribution group.
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @param {object} [options] Optional Parameters.
     *
     * @param {boolean} [options.unprovisionedOnly] when true, filters out
     * provisioned devices
     *
     * @param {array} [options.udids] multiple UDIDs which should be part of the
     * resulting CSV.
     *
     * @param {object} [options.customHeaders] Headers that will be added to the
     * request
     *
     * @returns {Promise} A promise is returned
     *
     * @resolve {HttpOperationResponse<Object>} - The deserialized result object.
     *
     * @reject {Error|ServiceError} - The error object.
     */
    listCsvFormatWithHttpOperationResponse(distributionGroupName: string, ownerName: string, appName: string, options?: { unprovisionedOnly? : boolean, udids? : string[], customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<any>>;

    /**
     * Returns all devices associated with the given distribution group.
     *
     * @param {string} distributionGroupName The name of the distribution group.
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @param {object} [options] Optional Parameters.
     *
     * @param {boolean} [options.unprovisionedOnly] when true, filters out
     * provisioned devices
     *
     * @param {array} [options.udids] multiple UDIDs which should be part of the
     * resulting CSV.
     *
     * @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 {Object} - 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.
     *
     *                      {Object} [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.
     */
    listCsvFormat(distributionGroupName: string, ownerName: string, appName: string, options?: { unprovisionedOnly? : boolean, udids? : string[], customHeaders? : { [headerName: string]: string; } }): Promise<any>;
    listCsvFormat(distributionGroupName: string, ownerName: string, appName: string, callback: ServiceCallback<any>): void;
    listCsvFormat(distributionGroupName: string, ownerName: string, appName: string, options: { unprovisionedOnly? : boolean, udids? : string[], customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<any>): void;


    /**
     * Returns all devices associated with the given distribution group
     *
     * @param {string} distributionGroupName The name of the distribution group.
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @param {object} [options] Optional Parameters.
     *
     * @param {number} [options.releaseId] when provided, gets the provisioning
     * state of the devices owned by users of this distribution group when compared
     * to the provided release.
     *
     * @param {object} [options.customHeaders] Headers that will be added to the
     * request
     *
     * @returns {Promise} A promise is returned
     *
     * @resolve {HttpOperationResponse<Object>} - The deserialized result object.
     *
     * @reject {Error|ServiceError} - The error object.
     */
    listWithHttpOperationResponse(distributionGroupName: string, ownerName: string, appName: string, options?: { releaseId? : number, customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<any>>;

    /**
     * Returns all devices associated with the given distribution group
     *
     * @param {string} distributionGroupName The name of the distribution group.
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @param {object} [options] Optional Parameters.
     *
     * @param {number} [options.releaseId] when provided, gets the provisioning
     * state of the devices owned by users of this distribution group when compared
     * to the provided release.
     *
     * @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 {Object} - 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.
     *
     *                      {Object} [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(distributionGroupName: string, ownerName: string, appName: string, options?: { releaseId? : number, customHeaders? : { [headerName: string]: string; } }): Promise<any>;
    list(distributionGroupName: string, ownerName: string, appName: string, callback: ServiceCallback<any>): void;
    list(distributionGroupName: string, ownerName: string, appName: string, options: { releaseId? : number, customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<any>): void;


    /**
     * **Warning, this operation is not reversible.**
     *
     * A successful call to this API will permanently stop ingesting any logs
     * received via SDK for the given installation ID, and cannot be restored. We
     * advise caution when using this API, it is designed to permanently disable
     * collection from a specific installation of the app on a device, usually
     * following the request from a user.
     *
     *
     * @param {string} installId The id of the device
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @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.
     */
    blockLogsWithHttpOperationResponse(installId: string, ownerName: string, appName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<string>>;

    /**
     * **Warning, this operation is not reversible.**
     *
     * A successful call to this API will permanently stop ingesting any logs
     * received via SDK for the given installation ID, and cannot be restored. We
     * advise caution when using this API, it is designed to permanently disable
     * collection from a specific installation of the app on a device, usually
     * following the request from a user.
     *
     *
     * @param {string} installId The id of the device
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @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.
     */
    blockLogs(installId: string, ownerName: string, appName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<string>;
    blockLogs(installId: string, ownerName: string, appName: string, callback: ServiceCallback<string>): void;
    blockLogs(installId: string, ownerName: string, appName: string, options: { customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<string>): void;
}

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


    /**
     * Get Default email notification settings for the user
     *
     * @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<AlertUserEmailSettingsResult>} - The deserialized result object.
     *
     * @reject {Error|ServiceError} - The error object.
     */
    getUserEmailSettingsWithHttpOperationResponse(options?: { customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<models.AlertUserEmailSettingsResult>>;

    /**
     * Get Default email notification settings for the user
     *
     * @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 {AlertUserEmailSettingsResult} - 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.
     *
     *                      {AlertUserEmailSettingsResult} [result]   - The deserialized result object if an error did not occur.
     *                      See {@link AlertUserEmailSettingsResult} 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.
     */
    getUserEmailSettings(options?: { customHeaders? : { [headerName: string]: string; } }): Promise<models.AlertUserEmailSettingsResult>;
    getUserEmailSettings(callback: ServiceCallback<models.AlertUserEmailSettingsResult>): void;
    getUserEmailSettings(options: { customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<models.AlertUserEmailSettingsResult>): void;


    /**
     * Get Email notification settings of user for a particular app
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @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<AlertUserAppEmailSettingsResult>} - The deserialized result object.
     *
     * @reject {Error|ServiceError} - The error object.
     */
    getAppEmailSettingsWithHttpOperationResponse(ownerName: string, appName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<models.AlertUserAppEmailSettingsResult>>;

    /**
     * Get Email notification settings of user for a particular app
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @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 {AlertUserAppEmailSettingsResult} - 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.
     *
     *                      {AlertUserAppEmailSettingsResult} [result]   - The deserialized result object if an error did not occur.
     *                      See {@link AlertUserAppEmailSettingsResult} 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.
     */
    getAppEmailSettings(ownerName: string, appName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<models.AlertUserAppEmailSettingsResult>;
    getAppEmailSettings(ownerName: string, appName: string, callback: ServiceCallback<models.AlertUserAppEmailSettingsResult>): void;
    getAppEmailSettings(ownerName: string, appName: string, options: { customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<models.AlertUserAppEmailSettingsResult>): void;
}

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


    /**
     * Rejects a pending organization invitation
     *
     * @param {string} invitationToken The app invitation token that was sent to
     * the user
     *
     * @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<null>} - The deserialized result object.
     *
     * @reject {Error|ServiceError} - The error object.
     */
    rejectWithHttpOperationResponse(invitationToken: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<void>>;

    /**
     * Rejects a pending organization invitation
     *
     * @param {string} invitationToken The app invitation token that was sent to
     * the user
     *
     * @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 {null} - 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.
     *
     *                      {null} [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.
     */
    reject(invitationToken: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<void>;
    reject(invitationToken: string, callback: ServiceCallback<void>): void;
    reject(invitationToken: string, options: { customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<void>): void;


    /**
     * Accepts a pending organization invitation for the specified user
     *
     * @param {string} invitationToken The app invitation token that was sent to
     * the user
     *
     * @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<null>} - The deserialized result object.
     *
     * @reject {Error|ServiceError} - The error object.
     */
    acceptWithHttpOperationResponse(invitationToken: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<void>>;

    /**
     * Accepts a pending organization invitation for the specified user
     *
     * @param {string} invitationToken The app invitation token that was sent to
     * the user
     *
     * @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 {null} - 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.
     *
     *                      {null} [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.
     */
    accept(invitationToken: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<void>;
    accept(invitationToken: string, callback: ServiceCallback<void>): void;
    accept(invitationToken: string, options: { customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<void>): void;


    /**
     * Removes a user's invitation to an organization
     *
     * @param {string} orgName The organization's name
     *
     * @param {string} email The email address of the user to send the password
     * reset mail to.
     *
     * @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<null>} - The deserialized result object.
     *
     * @reject {Error|ServiceError} - The error object.
     */
    unnamedMethodWithHttpOperationResponse(orgName: string, email: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<void>>;

    /**
     * Removes a user's invitation to an organization
     *
     * @param {string} orgName The organization's name
     *
     * @param {string} email The email address of the user to send the password
     * reset mail to.
     *
     * @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 {null} - 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.
     *
     *                      {null} [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.
     */
    unnamedMethod(orgName: string, email: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<void>;
    unnamedMethod(orgName: string, email: string, callback: ServiceCallback<void>): void;
    unnamedMethod(orgName: string, email: string, options: { customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<void>): void;


    /**
     * Cancels an existing organization invitation for the user and sends a new one
     *
     * @param {string} orgName The organization's name
     *
     * @param {string} email The email address of the user to send the password
     * reset mail to.
     *
     * @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<null>} - The deserialized result object.
     *
     * @reject {Error|ServiceError} - The error object.
     */
    sendNewInvitationWithHttpOperationResponse(orgName: string, email: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<void>>;

    /**
     * Cancels an existing organization invitation for the user and sends a new one
     *
     * @param {string} orgName The organization's name
     *
     * @param {string} email The email address of the user to send the password
     * reset mail to.
     *
     * @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 {null} - 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.
     *
     *                      {null} [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.
     */
    sendNewInvitation(orgName: string, email: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<void>;
    sendNewInvitation(orgName: string, email: string, callback: ServiceCallback<void>): void;
    sendNewInvitation(orgName: string, email: string, options: { customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<void>): void;


    /**
     * Allows the role of an invited user to be changed
     *
     * @param {string} orgName The organization's name
     *
     * @param {string} email The email address of the user to send the password
     * reset mail to.
     *
     * @param {object} [options] Optional Parameters.
     *
     * @param {string} [options.role] The user's role in the organizatiion.
     * Possible values include: 'admin', 'collaborator'
     *
     * @param {object} [options.customHeaders] Headers that will be added to the
     * request
     *
     * @returns {Promise} A promise is returned
     *
     * @resolve {HttpOperationResponse<null>} - The deserialized result object.
     *
     * @reject {Error|ServiceError} - The error object.
     */
    updateWithHttpOperationResponse(orgName: string, email: string, options?: { role? : string, customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<void>>;

    /**
     * Allows the role of an invited user to be changed
     *
     * @param {string} orgName The organization's name
     *
     * @param {string} email The email address of the user to send the password
     * reset mail to.
     *
     * @param {object} [options] Optional Parameters.
     *
     * @param {string} [options.role] The user's role in the organizatiion.
     * Possible values include: 'admin', 'collaborator'
     *
     * @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 {null} - 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.
     *
     *                      {null} [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.
     */
    update(orgName: string, email: string, options?: { role? : string, customHeaders? : { [headerName: string]: string; } }): Promise<void>;
    update(orgName: string, email: string, callback: ServiceCallback<void>): void;
    update(orgName: string, email: string, options: { role? : string, customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<void>): void;


    /**
     * Invites a new or existing user to an organization
     *
     * @param {string} orgName The organization's name
     *
     * @param {string} userEmail The user's email address'
     *
     * @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<null>} - The deserialized result object.
     *
     * @reject {Error|ServiceError} - The error object.
     */
    createWithHttpOperationResponse(orgName: string, userEmail: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<void>>;

    /**
     * Invites a new or existing user to an organization
     *
     * @param {string} orgName The organization's name
     *
     * @param {string} userEmail The user's email address'
     *
     * @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 {null} - 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.
     *
     *                      {null} [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.
     */
    create(orgName: string, userEmail: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<void>;
    create(orgName: string, userEmail: string, callback: ServiceCallback<void>): void;
    create(orgName: string, userEmail: string, options: { customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<void>): void;


    /**
     * Removes a user's invitation to an organization
     *
     * @param {string} orgName The organization's name
     *
     * @param {string} userEmail The user's email address'
     *
     * @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<null>} - The deserialized result object.
     *
     * @reject {Error|ServiceError} - The error object.
     */
    deleteMethodWithHttpOperationResponse(orgName: string, userEmail: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<void>>;

    /**
     * Removes a user's invitation to an organization
     *
     * @param {string} orgName The organization's name
     *
     * @param {string} userEmail The user's email address'
     *
     * @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 {null} - 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.
     *
     *                      {null} [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.
     */
    deleteMethod(orgName: string, userEmail: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<void>;
    deleteMethod(orgName: string, userEmail: string, callback: ServiceCallback<void>): void;
    deleteMethod(orgName: string, userEmail: string, options: { customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<void>): void;


    /**
     * Gets the pending invitations for the organization
     *
     * @param {string} orgName The organization's name
     *
     * @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.
     */
    listPendingWithHttpOperationResponse(orgName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<models.OrganizationInvitationSimpleDetailResponse[]>>;

    /**
     * Gets the pending invitations for the organization
     *
     * @param {string} orgName The organization's name
     *
     * @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.
     */
    listPending(orgName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<models.OrganizationInvitationSimpleDetailResponse[]>;
    listPending(orgName: string, callback: ServiceCallback<models.OrganizationInvitationSimpleDetailResponse[]>): void;
    listPending(orgName: string, options: { customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<models.OrganizationInvitationSimpleDetailResponse[]>): void;
}

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


    /**
     * Accepts all pending invitations to distribution groups for the specified
     * user
     *
     * @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<null>} - The deserialized result object.
     *
     * @reject {Error|ServiceError} - The error object.
     */
    acceptAllWithHttpOperationResponse(options?: { customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<void>>;

    /**
     * Accepts all pending invitations to distribution groups for the specified
     * user
     *
     * @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 {null} - 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.
     *
     *                      {null} [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.
     */
    acceptAll(options?: { customHeaders? : { [headerName: string]: string; } }): Promise<void>;
    acceptAll(callback: ServiceCallback<void>): void;
    acceptAll(options: { customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<void>): void;
}

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


    /**
     * Rejects a pending invitation for the specified user
     *
     * @param {string} invitationToken The app invitation token that was sent to
     * the user
     *
     * @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<null>} - The deserialized result object.
     *
     * @reject {Error|ServiceError} - The error object.
     */
    rejectWithHttpOperationResponse(invitationToken: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<void>>;

    /**
     * Rejects a pending invitation for the specified user
     *
     * @param {string} invitationToken The app invitation token that was sent to
     * the user
     *
     * @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 {null} - 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.
     *
     *                      {null} [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.
     */
    reject(invitationToken: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<void>;
    reject(invitationToken: string, callback: ServiceCallback<void>): void;
    reject(invitationToken: string, options: { customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<void>): void;


    /**
     * Accepts a pending invitation for the specified user
     *
     * @param {string} invitationToken The app invitation token that was sent to
     * the user
     *
     * @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<null>} - The deserialized result object.
     *
     * @reject {Error|ServiceError} - The error object.
     */
    acceptWithHttpOperationResponse(invitationToken: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<void>>;

    /**
     * Accepts a pending invitation for the specified user
     *
     * @param {string} invitationToken The app invitation token that was sent to
     * the user
     *
     * @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 {null} - 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.
     *
     *                      {null} [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.
     */
    accept(invitationToken: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<void>;
    accept(invitationToken: string, callback: ServiceCallback<void>): void;
    accept(invitationToken: string, options: { customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<void>): void;


    /**
     * Invites a new or existing user to an app
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @param {string} userEmail The email of the user to invite
     *
     * @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<null>} - The deserialized result object.
     *
     * @reject {Error|ServiceError} - The error object.
     */
    createByEmailWithHttpOperationResponse(ownerName: string, appName: string, userEmail: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<void>>;

    /**
     * Invites a new or existing user to an app
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @param {string} userEmail The email of the user to invite
     *
     * @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 {null} - 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.
     *
     *                      {null} [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.
     */
    createByEmail(ownerName: string, appName: string, userEmail: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<void>;
    createByEmail(ownerName: string, appName: string, userEmail: string, callback: ServiceCallback<void>): void;
    createByEmail(ownerName: string, appName: string, userEmail: string, options: { customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<void>): void;


    /**
     * Update pending invitation permission
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @param {string} userEmail The email of the user to invite
     *
     * @param {array} permissions The permissions the user has for the app in the
     * invitation
     *
     * @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<null>} - The deserialized result object.
     *
     * @reject {Error|ServiceError} - The error object.
     */
    updatePermissionsWithHttpOperationResponse(ownerName: string, appName: string, userEmail: string, permissions: string[], options?: { customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<void>>;

    /**
     * Update pending invitation permission
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @param {string} userEmail The email of the user to invite
     *
     * @param {array} permissions The permissions the user has for the app in the
     * invitation
     *
     * @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 {null} - 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.
     *
     *                      {null} [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.
     */
    updatePermissions(ownerName: string, appName: string, userEmail: string, permissions: string[], options?: { customHeaders? : { [headerName: string]: string; } }): Promise<void>;
    updatePermissions(ownerName: string, appName: string, userEmail: string, permissions: string[], callback: ServiceCallback<void>): void;
    updatePermissions(ownerName: string, appName: string, userEmail: string, permissions: string[], options: { customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<void>): void;


    /**
     * Removes a user's invitation to an app
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @param {string} userEmail The email of the user to invite
     *
     * @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<null>} - The deserialized result object.
     *
     * @reject {Error|ServiceError} - The error object.
     */
    deleteMethodWithHttpOperationResponse(ownerName: string, appName: string, userEmail: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<void>>;

    /**
     * Removes a user's invitation to an app
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @param {string} userEmail The email of the user to invite
     *
     * @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 {null} - 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.
     *
     *                      {null} [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.
     */
    deleteMethod(ownerName: string, appName: string, userEmail: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<void>;
    deleteMethod(ownerName: string, appName: string, userEmail: string, callback: ServiceCallback<void>): void;
    deleteMethod(ownerName: string, appName: string, userEmail: string, options: { customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<void>): void;


    /**
     * Invites a new or existing user to an app
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @param {string} userEmail The user's email address'
     *
     * @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<null>} - The deserialized result object.
     *
     * @reject {Error|ServiceError} - The error object.
     */
    createWithHttpOperationResponse(ownerName: string, appName: string, userEmail: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<void>>;

    /**
     * Invites a new or existing user to an app
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @param {string} userEmail The user's email address'
     *
     * @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 {null} - 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.
     *
     *                      {null} [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.
     */
    create(ownerName: string, appName: string, userEmail: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<void>;
    create(ownerName: string, appName: string, userEmail: string, callback: ServiceCallback<void>): void;
    create(ownerName: string, appName: string, userEmail: string, options: { customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<void>): void;


    /**
     * Gets the pending invitations for the app
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @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<AppInvitationDetailResponse>} - The deserialized result object.
     *
     * @reject {Error|ServiceError} - The error object.
     */
    listWithHttpOperationResponse(ownerName: string, appName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<models.AppInvitationDetailResponse>>;

    /**
     * Gets the pending invitations for the app
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @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 {AppInvitationDetailResponse} - 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.
     *
     *                      {AppInvitationDetailResponse} [result]   - The deserialized result object if an error did not occur.
     *                      See {@link AppInvitationDetailResponse} 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(ownerName: string, appName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<models.AppInvitationDetailResponse>;
    list(ownerName: string, appName: string, callback: ServiceCallback<models.AppInvitationDetailResponse>): void;
    list(ownerName: string, appName: string, options: { customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<models.AppInvitationDetailResponse>): void;
}

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


    /**
     * Gets all service connections of the service type for GDPR export.
     *
     * @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.
     */
    connectionsWithHttpOperationResponse(options?: { customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<models.SharedConnectionResponse[]>>;

    /**
     * Gets all service connections of the service type for GDPR export.
     *
     * @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.
     */
    connections(options?: { customHeaders? : { [headerName: string]: string; } }): Promise<models.SharedConnectionResponse[]>;
    connections(callback: ServiceCallback<models.SharedConnectionResponse[]>): void;
    connections(options: { customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<models.SharedConnectionResponse[]>): void;
}

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


    /**
     * @param {uuid} token Unique request ID (GUID)
     *
     * @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<Object>} - The deserialized result object.
     *
     * @reject {Error|ServiceError} - The error object.
     */
    cancelExportRequestWithHttpOperationResponse(token: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<any>>;

    /**
     * @param {uuid} token Unique request ID (GUID)
     *
     * @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 {Object} - 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.
     *
     *                      {Object} [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.
     */
    cancelExportRequest(token: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<any>;
    cancelExportRequest(token: string, callback: ServiceCallback<any>): void;
    cancelExportRequest(token: string, options: { customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<any>): void;


    /**
     * @param {uuid} token Unique request ID (GUID)
     *
     * @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<DataSubjectRightStatusResponse>} - The deserialized result object.
     *
     * @reject {Error|ServiceError} - The error object.
     */
    exportStatusRequestWithHttpOperationResponse(token: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<models.DataSubjectRightStatusResponse>>;

    /**
     * @param {uuid} token Unique request ID (GUID)
     *
     * @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 {DataSubjectRightStatusResponse} - 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.
     *
     *                      {DataSubjectRightStatusResponse} [result]   - The deserialized result object if an error did not occur.
     *                      See {@link DataSubjectRightStatusResponse} 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.
     */
    exportStatusRequest(token: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<models.DataSubjectRightStatusResponse>;
    exportStatusRequest(token: string, callback: ServiceCallback<models.DataSubjectRightStatusResponse>): void;
    exportStatusRequest(token: string, options: { customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<models.DataSubjectRightStatusResponse>): void;


    /**
     * @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<DataSubjectRightResponse>} - The deserialized result object.
     *
     * @reject {Error|ServiceError} - The error object.
     */
    exportRequestWithHttpOperationResponse(options?: { customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<models.DataSubjectRightResponse>>;

    /**
     * @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 {DataSubjectRightResponse} - 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.
     *
     *                      {DataSubjectRightResponse} [result]   - The deserialized result object if an error did not occur.
     *                      See {@link DataSubjectRightResponse} 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.
     */
    exportRequest(options?: { customHeaders? : { [headerName: string]: string; } }): Promise<models.DataSubjectRightResponse>;
    exportRequest(callback: ServiceCallback<models.DataSubjectRightResponse>): void;
    exportRequest(options: { customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<models.DataSubjectRightResponse>): void;


    /**
     * @param {uuid} token Unique request ID (GUID)
     *
     * @param {string} email Email used for cancel delete with x-authz-bypass
     * headers
     *
     * @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<Object>} - The deserialized result object.
     *
     * @reject {Error|ServiceError} - The error object.
     */
    cancelDeleteRequestWithHttpOperationResponse(token: string, email: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<any>>;

    /**
     * @param {uuid} token Unique request ID (GUID)
     *
     * @param {string} email Email used for cancel delete with x-authz-bypass
     * headers
     *
     * @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 {Object} - 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.
     *
     *                      {Object} [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.
     */
    cancelDeleteRequest(token: string, email: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<any>;
    cancelDeleteRequest(token: string, email: string, callback: ServiceCallback<any>): void;
    cancelDeleteRequest(token: string, email: string, options: { customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<any>): void;


    /**
     * @param {uuid} token Unique request ID (GUID)
     *
     * @param {string} email Email used for delete with x-authz-bypass headers
     *
     * @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<DataSubjectRightStatusResponse>} - The deserialized result object.
     *
     * @reject {Error|ServiceError} - The error object.
     */
    deleteStatusRequestWithHttpOperationResponse(token: string, email: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<models.DataSubjectRightStatusResponse>>;

    /**
     * @param {uuid} token Unique request ID (GUID)
     *
     * @param {string} email Email used for delete with x-authz-bypass headers
     *
     * @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 {DataSubjectRightStatusResponse} - 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.
     *
     *                      {DataSubjectRightStatusResponse} [result]   - The deserialized result object if an error did not occur.
     *                      See {@link DataSubjectRightStatusResponse} 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.
     */
    deleteStatusRequest(token: string, email: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<models.DataSubjectRightStatusResponse>;
    deleteStatusRequest(token: string, email: string, callback: ServiceCallback<models.DataSubjectRightStatusResponse>): void;
    deleteStatusRequest(token: string, email: string, options: { customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<models.DataSubjectRightStatusResponse>): void;


    /**
     * @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<DataSubjectRightResponse>} - The deserialized result object.
     *
     * @reject {Error|ServiceError} - The error object.
     */
    deleteRequestWithHttpOperationResponse(options?: { customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<models.DataSubjectRightResponse>>;

    /**
     * @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 {DataSubjectRightResponse} - 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.
     *
     *                      {DataSubjectRightResponse} [result]   - The deserialized result object if an error did not occur.
     *                      See {@link DataSubjectRightResponse} 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.
     */
    deleteRequest(options?: { customHeaders? : { [headerName: string]: string; } }): Promise<models.DataSubjectRightResponse>;
    deleteRequest(callback: ServiceCallback<models.DataSubjectRightResponse>): void;
    deleteRequest(options: { customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<models.DataSubjectRightResponse>): void;
}

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


    /**
     * Returns the user profile data
     *
     * @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<UserProfileResponse>} - The deserialized result object.
     *
     * @reject {Error|ServiceError} - The error object.
     */
    getWithHttpOperationResponse(options?: { customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<models.UserProfileResponse>>;

    /**
     * Returns the user profile data
     *
     * @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 {UserProfileResponse} - 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.
     *
     *                      {UserProfileResponse} [result]   - The deserialized result object if an error did not occur.
     *                      See {@link UserProfileResponse} 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(options?: { customHeaders? : { [headerName: string]: string; } }): Promise<models.UserProfileResponse>;
    get(callback: ServiceCallback<models.UserProfileResponse>): void;
    get(options: { customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<models.UserProfileResponse>): void;


    /**
     * Updates the user profile and returns the updated user data
     *
     * @param {object} [options] Optional Parameters.
     *
     * @param {string} [options.displayName] The full name of the user. Might for
     * example be first and last name
     *
     * @param {object} [options.customHeaders] Headers that will be added to the
     * request
     *
     * @returns {Promise} A promise is returned
     *
     * @resolve {HttpOperationResponse<UserProfileResponse>} - The deserialized result object.
     *
     * @reject {Error|ServiceError} - The error object.
     */
    updateWithHttpOperationResponse(options?: { displayName? : string, customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<models.UserProfileResponse>>;

    /**
     * Updates the user profile and returns the updated user data
     *
     * @param {object} [options] Optional Parameters.
     *
     * @param {string} [options.displayName] The full name of the user. Might for
     * example be first and last name
     *
     * @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 {UserProfileResponse} - 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.
     *
     *                      {UserProfileResponse} [result]   - The deserialized result object if an error did not occur.
     *                      See {@link UserProfileResponse} 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(options?: { displayName? : string, customHeaders? : { [headerName: string]: string; } }): Promise<models.UserProfileResponse>;
    update(callback: ServiceCallback<models.UserProfileResponse>): void;
    update(options: { displayName? : string, customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<models.UserProfileResponse>): void;


    /**
     * Updates the given organization user
     *
     * @param {string} orgName The organization's name
     *
     * @param {string} userName The slug name of the user
     *
     * @param {object} [options] Optional Parameters.
     *
     * @param {string} [options.role] The user's role in the organizatiion.
     * Possible values include: 'admin', 'collaborator'
     *
     * @param {object} [options.customHeaders] Headers that will be added to the
     * request
     *
     * @returns {Promise} A promise is returned
     *
     * @resolve {HttpOperationResponse<OrganizationUserResponse>} - The deserialized result object.
     *
     * @reject {Error|ServiceError} - The error object.
     */
    updateOrgRoleWithHttpOperationResponse(orgName: string, userName: string, options?: { role? : string, customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<models.OrganizationUserResponse>>;

    /**
     * Updates the given organization user
     *
     * @param {string} orgName The organization's name
     *
     * @param {string} userName The slug name of the user
     *
     * @param {object} [options] Optional Parameters.
     *
     * @param {string} [options.role] The user's role in the organizatiion.
     * Possible values include: 'admin', 'collaborator'
     *
     * @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 {OrganizationUserResponse} - 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.
     *
     *                      {OrganizationUserResponse} [result]   - The deserialized result object if an error did not occur.
     *                      See {@link OrganizationUserResponse} 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.
     */
    updateOrgRole(orgName: string, userName: string, options?: { role? : string, customHeaders? : { [headerName: string]: string; } }): Promise<models.OrganizationUserResponse>;
    updateOrgRole(orgName: string, userName: string, callback: ServiceCallback<models.OrganizationUserResponse>): void;
    updateOrgRole(orgName: string, userName: string, options: { role? : string, customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<models.OrganizationUserResponse>): void;


    /**
     * Removes a user from an organization.
     *
     * @param {string} orgName The organization's name
     *
     * @param {string} userName The slug name of the user
     *
     * @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<null>} - The deserialized result object.
     *
     * @reject {Error|ServiceError} - The error object.
     */
    removeFromOrgWithHttpOperationResponse(orgName: string, userName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<void>>;

    /**
     * Removes a user from an organization.
     *
     * @param {string} orgName The organization's name
     *
     * @param {string} userName The slug name of the user
     *
     * @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 {null} - 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.
     *
     *                      {null} [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.
     */
    removeFromOrg(orgName: string, userName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<void>;
    removeFromOrg(orgName: string, userName: string, callback: ServiceCallback<void>): void;
    removeFromOrg(orgName: string, userName: string, options: { customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<void>): void;


    /**
     * Returns a list of users that belong to an organization
     *
     * @param {string} orgName The organization's name
     *
     * @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.
     */
    listForOrgWithHttpOperationResponse(orgName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<models.OrganizationUserResponse[]>>;

    /**
     * Returns a list of users that belong to an organization
     *
     * @param {string} orgName The organization's name
     *
     * @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.
     */
    listForOrg(orgName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<models.OrganizationUserResponse[]>;
    listForOrg(orgName: string, callback: ServiceCallback<models.OrganizationUserResponse[]>): void;
    listForOrg(orgName: string, options: { customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<models.OrganizationUserResponse[]>): void;


    /**
     * Returns the users associated with the app specified with the given app name
     * which belongs to the given owner.
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @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(ownerName: string, appName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<models.UserProfileResponse[]>>;

    /**
     * Returns the users associated with the app specified with the given app name
     * which belongs to the given owner.
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @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(ownerName: string, appName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<models.UserProfileResponse[]>;
    list(ownerName: string, appName: string, callback: ServiceCallback<models.UserProfileResponse[]>): void;
    list(ownerName: string, appName: string, options: { customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<models.UserProfileResponse[]>): void;
}

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


    /**
     * Return a list of applications that the user has tester permission to with
     * the latest release for each.
     *
     * @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.
     */
    listTesterAppsWithHttpOperationResponse(options?: { customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<models.TesterAppWithReleaseResponse[]>>;

    /**
     * Return a list of applications that the user has tester permission to with
     * the latest release for each.
     *
     * @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.
     */
    listTesterApps(options?: { customHeaders? : { [headerName: string]: string; } }): Promise<models.TesterAppWithReleaseResponse[]>;
    listTesterApps(callback: ServiceCallback<models.TesterAppWithReleaseResponse[]>): void;
    listTesterApps(options: { customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<models.TesterAppWithReleaseResponse[]>): void;


    /**
     * Get a release with hash 'release_hash' or the 'latest' from all the
     * distribution groups assigned to the current user.
     *
     * @param {string} appSecret The secret of the target application
     *
     * @param {string} releaseHash The hash of the release or 'latest' to get the
     * latest release from all the distribution groups assigned to the current
     * user.
     *
     * @param {object} [options] Optional Parameters.
     *
     * @param {string} [options.udid] When passing `udid` in the query string, a
     * provisioning check for the given device ID will be done. Will be ignored for
     * non-iOS platforms.
     *
     * @param {object} [options.customHeaders] Headers that will be added to the
     * request
     *
     * @returns {Promise} A promise is returned
     *
     * @resolve {HttpOperationResponse<Object>} - The deserialized result object.
     *
     * @reject {Error|ServiceError} - The error object.
     */
    getLatestByHashWithHttpOperationResponse(appSecret: string, releaseHash: string, options?: { udid? : string, customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<any>>;

    /**
     * Get a release with hash 'release_hash' or the 'latest' from all the
     * distribution groups assigned to the current user.
     *
     * @param {string} appSecret The secret of the target application
     *
     * @param {string} releaseHash The hash of the release or 'latest' to get the
     * latest release from all the distribution groups assigned to the current
     * user.
     *
     * @param {object} [options] Optional Parameters.
     *
     * @param {string} [options.udid] When passing `udid` in the query string, a
     * provisioning check for the given device ID will be done. Will be ignored for
     * non-iOS platforms.
     *
     * @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 {Object} - 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.
     *
     *                      {Object} [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.
     */
    getLatestByHash(appSecret: string, releaseHash: string, options?: { udid? : string, customHeaders? : { [headerName: string]: string; } }): Promise<any>;
    getLatestByHash(appSecret: string, releaseHash: string, callback: ServiceCallback<any>): void;
    getLatestByHash(appSecret: string, releaseHash: string, options: { udid? : string, customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<any>): void;


    /**
     * Update details about the specified tester associated with the release
     *
     * @param {number} releaseId The ID of the release
     *
     * @param {uuid} testerId The id of the tester
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @param {boolean} mandatoryUpdate Whether a release is mandatory for the
     * given destination
     *
     * @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<ErrorDetails>} - The deserialized result object.
     *
     * @reject {Error|ServiceError} - The error object.
     */
    putDistributionTesterWithHttpOperationResponse(releaseId: number, testerId: string, ownerName: string, appName: string, mandatoryUpdate: boolean, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<models.ErrorDetails>>;

    /**
     * Update details about the specified tester associated with the release
     *
     * @param {number} releaseId The ID of the release
     *
     * @param {uuid} testerId The id of the tester
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @param {boolean} mandatoryUpdate Whether a release is mandatory for the
     * given destination
     *
     * @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 {ErrorDetails} - 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.
     *
     *                      {ErrorDetails} [result]   - The deserialized result object if an error did not occur.
     *                      See {@link ErrorDetails} 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.
     */
    putDistributionTester(releaseId: number, testerId: string, ownerName: string, appName: string, mandatoryUpdate: boolean, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<models.ErrorDetails>;
    putDistributionTester(releaseId: number, testerId: string, ownerName: string, appName: string, mandatoryUpdate: boolean, callback: ServiceCallback<models.ErrorDetails>): void;
    putDistributionTester(releaseId: number, testerId: string, ownerName: string, appName: string, mandatoryUpdate: boolean, options: { customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<models.ErrorDetails>): void;


    /**
     * Delete the given tester from the release
     *
     * @param {number} releaseId The ID of the release
     *
     * @param {string} testerId The id of the tester
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @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<ErrorDetails>} - The deserialized result object.
     *
     * @reject {Error|ServiceError} - The error object.
     */
    deleteDistributionTesterWithHttpOperationResponse(releaseId: number, testerId: string, ownerName: string, appName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<models.ErrorDetails>>;

    /**
     * Delete the given tester from the release
     *
     * @param {number} releaseId The ID of the release
     *
     * @param {string} testerId The id of the tester
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @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 {ErrorDetails} - 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.
     *
     *                      {ErrorDetails} [result]   - The deserialized result object if an error did not occur.
     *                      See {@link ErrorDetails} 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.
     */
    deleteDistributionTester(releaseId: number, testerId: string, ownerName: string, appName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<models.ErrorDetails>;
    deleteDistributionTester(releaseId: number, testerId: string, ownerName: string, appName: string, callback: ServiceCallback<models.ErrorDetails>): void;
    deleteDistributionTester(releaseId: number, testerId: string, ownerName: string, appName: string, options: { customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<models.ErrorDetails>): void;


    /**
     * Distributes a release to a user
     *
     * @param {number} releaseId The ID of the release
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @param {string} email Tester's email address
     *
     * @param {object} [options] Optional Parameters.
     *
     * @param {boolean} [options.mandatoryUpdate] Flag to mark the release for the
     * provided destinations as mandatory
     *
     * @param {boolean} [options.notifyTesters] Flag to enable or disable
     * notifications to testers
     *
     * @param {object} [options.customHeaders] Headers that will be added to the
     * request
     *
     * @returns {Promise} A promise is returned
     *
     * @resolve {HttpOperationResponse<Object>} - The deserialized result object.
     *
     * @reject {Error|ServiceError} - The error object.
     */
    addTestersWithHttpOperationResponse(releaseId: number, ownerName: string, appName: string, email: string, options?: { mandatoryUpdate? : boolean, notifyTesters? : boolean, customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<any>>;

    /**
     * Distributes a release to a user
     *
     * @param {number} releaseId The ID of the release
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @param {string} email Tester's email address
     *
     * @param {object} [options] Optional Parameters.
     *
     * @param {boolean} [options.mandatoryUpdate] Flag to mark the release for the
     * provided destinations as mandatory
     *
     * @param {boolean} [options.notifyTesters] Flag to enable or disable
     * notifications to testers
     *
     * @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 {Object} - 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.
     *
     *                      {Object} [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.
     */
    addTesters(releaseId: number, ownerName: string, appName: string, email: string, options?: { mandatoryUpdate? : boolean, notifyTesters? : boolean, customHeaders? : { [headerName: string]: string; } }): Promise<any>;
    addTesters(releaseId: number, ownerName: string, appName: string, email: string, callback: ServiceCallback<any>): void;
    addTesters(releaseId: number, ownerName: string, appName: string, email: string, options: { mandatoryUpdate? : boolean, notifyTesters? : boolean, customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<any>): void;


    /**
     * Delete the given distribution store from the release
     *
     * @param {number} releaseId The ID of the release
     *
     * @param {string} storeId The id of the distribution store
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @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<ErrorDetails>} - The deserialized result object.
     *
     * @reject {Error|ServiceError} - The error object.
     */
    deleteDistributionStoreWithHttpOperationResponse(releaseId: number, storeId: string, ownerName: string, appName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<models.ErrorDetails>>;

    /**
     * Delete the given distribution store from the release
     *
     * @param {number} releaseId The ID of the release
     *
     * @param {string} storeId The id of the distribution store
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @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 {ErrorDetails} - 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.
     *
     *                      {ErrorDetails} [result]   - The deserialized result object if an error did not occur.
     *                      See {@link ErrorDetails} 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.
     */
    deleteDistributionStore(releaseId: number, storeId: string, ownerName: string, appName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<models.ErrorDetails>;
    deleteDistributionStore(releaseId: number, storeId: string, ownerName: string, appName: string, callback: ServiceCallback<models.ErrorDetails>): void;
    deleteDistributionStore(releaseId: number, storeId: string, ownerName: string, appName: string, options: { customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<models.ErrorDetails>): void;


    /**
     * Distributes a release to a store
     *
     * @param {number} releaseId The ID of the release
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @param {uuid} id Unique id of the release destination
     *
     * @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<Object>} - The deserialized result object.
     *
     * @reject {Error|ServiceError} - The error object.
     */
    addStoreWithHttpOperationResponse(releaseId: number, ownerName: string, appName: string, id: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<any>>;

    /**
     * Distributes a release to a store
     *
     * @param {number} releaseId The ID of the release
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @param {uuid} id Unique id of the release destination
     *
     * @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 {Object} - 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.
     *
     *                      {Object} [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.
     */
    addStore(releaseId: number, ownerName: string, appName: string, id: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<any>;
    addStore(releaseId: number, ownerName: string, appName: string, id: string, callback: ServiceCallback<any>): void;
    addStore(releaseId: number, ownerName: string, appName: string, id: string, options: { customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<any>): void;


    /**
     * Update details about the specified distribution group associated with the
     * release
     *
     * @param {number} releaseId The ID of the release
     *
     * @param {uuid} groupId The id of the releases destination
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @param {boolean} mandatoryUpdate Whether a release is mandatory for the
     * given destination
     *
     * @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<ErrorDetails>} - The deserialized result object.
     *
     * @reject {Error|ServiceError} - The error object.
     */
    putDistributionGroupWithHttpOperationResponse(releaseId: number, groupId: string, ownerName: string, appName: string, mandatoryUpdate: boolean, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<models.ErrorDetails>>;

    /**
     * Update details about the specified distribution group associated with the
     * release
     *
     * @param {number} releaseId The ID of the release
     *
     * @param {uuid} groupId The id of the releases destination
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @param {boolean} mandatoryUpdate Whether a release is mandatory for the
     * given destination
     *
     * @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 {ErrorDetails} - 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.
     *
     *                      {ErrorDetails} [result]   - The deserialized result object if an error did not occur.
     *                      See {@link ErrorDetails} 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.
     */
    putDistributionGroup(releaseId: number, groupId: string, ownerName: string, appName: string, mandatoryUpdate: boolean, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<models.ErrorDetails>;
    putDistributionGroup(releaseId: number, groupId: string, ownerName: string, appName: string, mandatoryUpdate: boolean, callback: ServiceCallback<models.ErrorDetails>): void;
    putDistributionGroup(releaseId: number, groupId: string, ownerName: string, appName: string, mandatoryUpdate: boolean, options: { customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<models.ErrorDetails>): void;


    /**
     * Delete the given distribution group from the release
     *
     * @param {number} releaseId The ID of the release
     *
     * @param {string} groupId The id of the distribution group
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @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<ErrorDetails>} - The deserialized result object.
     *
     * @reject {Error|ServiceError} - The error object.
     */
    deleteDistributionGroupWithHttpOperationResponse(releaseId: number, groupId: string, ownerName: string, appName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<models.ErrorDetails>>;

    /**
     * Delete the given distribution group from the release
     *
     * @param {number} releaseId The ID of the release
     *
     * @param {string} groupId The id of the distribution group
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @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 {ErrorDetails} - 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.
     *
     *                      {ErrorDetails} [result]   - The deserialized result object if an error did not occur.
     *                      See {@link ErrorDetails} 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.
     */
    deleteDistributionGroup(releaseId: number, groupId: string, ownerName: string, appName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<models.ErrorDetails>;
    deleteDistributionGroup(releaseId: number, groupId: string, ownerName: string, appName: string, callback: ServiceCallback<models.ErrorDetails>): void;
    deleteDistributionGroup(releaseId: number, groupId: string, ownerName: string, appName: string, options: { customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<models.ErrorDetails>): void;


    /**
     * Distributes a release to a group
     *
     * @param {number} releaseId The ID of the release
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @param {uuid} id Unique id of the release destination
     *
     * @param {object} [options] Optional Parameters.
     *
     * @param {boolean} [options.mandatoryUpdate] Flag to mark the release for the
     * provided destinations as mandatory
     *
     * @param {boolean} [options.notifyTesters] Flag to enable or disable
     * notifications to testers
     *
     * @param {object} [options.customHeaders] Headers that will be added to the
     * request
     *
     * @returns {Promise} A promise is returned
     *
     * @resolve {HttpOperationResponse<Object>} - The deserialized result object.
     *
     * @reject {Error|ServiceError} - The error object.
     */
    addDistributionGroupWithHttpOperationResponse(releaseId: number, ownerName: string, appName: string, id: string, options?: { mandatoryUpdate? : boolean, notifyTesters? : boolean, customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<any>>;

    /**
     * Distributes a release to a group
     *
     * @param {number} releaseId The ID of the release
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @param {uuid} id Unique id of the release destination
     *
     * @param {object} [options] Optional Parameters.
     *
     * @param {boolean} [options.mandatoryUpdate] Flag to mark the release for the
     * provided destinations as mandatory
     *
     * @param {boolean} [options.notifyTesters] Flag to enable or disable
     * notifications to testers
     *
     * @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 {Object} - 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.
     *
     *                      {Object} [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.
     */
    addDistributionGroup(releaseId: number, ownerName: string, appName: string, id: string, options?: { mandatoryUpdate? : boolean, notifyTesters? : boolean, customHeaders? : { [headerName: string]: string; } }): Promise<any>;
    addDistributionGroup(releaseId: number, ownerName: string, appName: string, id: string, callback: ServiceCallback<any>): void;
    addDistributionGroup(releaseId: number, ownerName: string, appName: string, id: string, options: { mandatoryUpdate? : boolean, notifyTesters? : boolean, customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<any>): void;


    /**
     * Get a release with id `release_id`. If `release_id` is `latest`, return the
     * latest release that was distributed to the current user (from all the
     * distribution groups).
     *
     * @param {string} releaseId The ID of the release, or `latest` to get the
     * latest release from all the distribution groups assigned to the current
     * user.
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @param {object} [options] Optional Parameters.
     *
     * @param {string} [options.udid] when supplied, this call will also check if
     * the given UDID is provisioned. Will be ignored for non-iOS platforms. The
     * value will be returned in the property is_udid_provisioned.
     *
     * @param {object} [options.customHeaders] Headers that will be added to the
     * request
     *
     * @returns {Promise} A promise is returned
     *
     * @resolve {HttpOperationResponse<Object>} - The deserialized result object.
     *
     * @reject {Error|ServiceError} - The error object.
     */
    getLatestByUserWithHttpOperationResponse(releaseId: string, ownerName: string, appName: string, options?: { udid? : string, customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<any>>;

    /**
     * Get a release with id `release_id`. If `release_id` is `latest`, return the
     * latest release that was distributed to the current user (from all the
     * distribution groups).
     *
     * @param {string} releaseId The ID of the release, or `latest` to get the
     * latest release from all the distribution groups assigned to the current
     * user.
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @param {object} [options] Optional Parameters.
     *
     * @param {string} [options.udid] when supplied, this call will also check if
     * the given UDID is provisioned. Will be ignored for non-iOS platforms. The
     * value will be returned in the property is_udid_provisioned.
     *
     * @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 {Object} - 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.
     *
     *                      {Object} [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.
     */
    getLatestByUser(releaseId: string, ownerName: string, appName: string, options?: { udid? : string, customHeaders? : { [headerName: string]: string; } }): Promise<any>;
    getLatestByUser(releaseId: string, ownerName: string, appName: string, callback: ServiceCallback<any>): void;
    getLatestByUser(releaseId: string, ownerName: string, appName: string, options: { udid? : string, customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<any>): void;


    /**
     * Update details of a release.
     *
     * @param {number} releaseId The ID of the release
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @param {object} [options] Optional Parameters.
     *
     * @param {boolean} [options.enabled] Toggle this release to be enable
     * distribute/download or not.
     *
     * @param {string} [options.releaseNotes] Release notes for this release.
     *
     * @param {object} [options.build]
     *
     * @param {string} [options.build.branch] The branch name of the build
     * producing the release
     *
     * @param {string} [options.build.commitHash] The commit hash of the build
     * producing the release
     *
     * @param {string} [options.build.commitMessage] The commit message of the
     * build producing the release
     *
     * @param {object} [options.customHeaders] Headers that will be added to the
     * request
     *
     * @returns {Promise} A promise is returned
     *
     * @resolve {HttpOperationResponse<Object>} - The deserialized result object.
     *
     * @reject {Error|ServiceError} - The error object.
     */
    updateDetailsWithHttpOperationResponse(releaseId: number, ownerName: string, appName: string, options?: { enabled? : boolean, releaseNotes? : string, build? : models.BuildInfo, customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<any>>;

    /**
     * Update details of a release.
     *
     * @param {number} releaseId The ID of the release
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @param {object} [options] Optional Parameters.
     *
     * @param {boolean} [options.enabled] Toggle this release to be enable
     * distribute/download or not.
     *
     * @param {string} [options.releaseNotes] Release notes for this release.
     *
     * @param {object} [options.build]
     *
     * @param {string} [options.build.branch] The branch name of the build
     * producing the release
     *
     * @param {string} [options.build.commitHash] The commit hash of the build
     * producing the release
     *
     * @param {string} [options.build.commitMessage] The commit message of the
     * build producing the release
     *
     * @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 {Object} - 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.
     *
     *                      {Object} [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.
     */
    updateDetails(releaseId: number, ownerName: string, appName: string, options?: { enabled? : boolean, releaseNotes? : string, build? : models.BuildInfo, customHeaders? : { [headerName: string]: string; } }): Promise<any>;
    updateDetails(releaseId: number, ownerName: string, appName: string, callback: ServiceCallback<any>): void;
    updateDetails(releaseId: number, ownerName: string, appName: string, options: { enabled? : boolean, releaseNotes? : string, build? : models.BuildInfo, customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<any>): void;


    /**
     * Updates a release.
     *
     * @param {number} releaseId The ID of the release
     *
     * @param {object} body The release information.
     *
     * @param {string} [body.distributionGroupName] OBSOLETE. Will be removed in
     * future releases - use destinations instead. Name of a distribution group.
     * The release will be associated with this distribution group. If the
     * distribution group doesn't exist a 400 is returned. If both distribution
     * group name and id are passed, the id is taking precedence.
     *
     *
     * @param {string} [body.distributionGroupId] OBSOLETE. Will be removed in
     * future releases - use destinations instead. Id of a distribution group. The
     * release will be associated with this distribution group. If the distribution
     * group doesn't exist a 400 is returned. If both distribution group name and
     * id are passed, the id is taking precedence.
     *
     *
     * @param {string} [body.destinationName] OBSOLETE. Will be removed in future
     * releases - use destinations instead. Name of a destination. The release will
     * be associated with this destination. If the destination doesn't exist a 400
     * is returned. If both distribution group name and id are passed, the id is
     * taking precedence.
     *
     *
     * @param {string} [body.destinationId] OBSOLETE. Will be removed in future
     * releases - use destinations instead. Id of a destination. The release will
     * be associated with this destination. If the destination doesn't exist a 400
     * is returned. If both destination name and id are passed, the id is taking
     * precedence.
     *
     *
     * @param {string} [body.destinationType] Not used anymore.
     *
     * @param {string} [body.releaseNotes] Release notes for this release.
     *
     * @param {boolean} [body.mandatoryUpdate] A boolean which determines whether
     * this version should be a mandatory update or not.
     *
     * @param {array} [body.destinations] Distribute this release under the
     * following list of destinations (store groups or distribution groups).
     *
     * @param {object} [body.build]
     *
     * @param {string} [body.build.branch] The branch name of the build producing
     * the release
     *
     * @param {string} [body.build.commitHash] The commit hash of the build
     * producing the release
     *
     * @param {string} [body.build.commitMessage] The commit message of the build
     * producing the release
     *
     * @param {boolean} [body.notifyTesters] A boolean which determines whether to
     * notify testers of a new release, default to true.
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @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<Object>} - The deserialized result object.
     *
     * @reject {Error|ServiceError} - The error object.
     */
    updateWithHttpOperationResponse(releaseId: number, body: models.ReleaseUpdateRequest, ownerName: string, appName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<any>>;

    /**
     * Updates a release.
     *
     * @param {number} releaseId The ID of the release
     *
     * @param {object} body The release information.
     *
     * @param {string} [body.distributionGroupName] OBSOLETE. Will be removed in
     * future releases - use destinations instead. Name of a distribution group.
     * The release will be associated with this distribution group. If the
     * distribution group doesn't exist a 400 is returned. If both distribution
     * group name and id are passed, the id is taking precedence.
     *
     *
     * @param {string} [body.distributionGroupId] OBSOLETE. Will be removed in
     * future releases - use destinations instead. Id of a distribution group. The
     * release will be associated with this distribution group. If the distribution
     * group doesn't exist a 400 is returned. If both distribution group name and
     * id are passed, the id is taking precedence.
     *
     *
     * @param {string} [body.destinationName] OBSOLETE. Will be removed in future
     * releases - use destinations instead. Name of a destination. The release will
     * be associated with this destination. If the destination doesn't exist a 400
     * is returned. If both distribution group name and id are passed, the id is
     * taking precedence.
     *
     *
     * @param {string} [body.destinationId] OBSOLETE. Will be removed in future
     * releases - use destinations instead. Id of a destination. The release will
     * be associated with this destination. If the destination doesn't exist a 400
     * is returned. If both destination name and id are passed, the id is taking
     * precedence.
     *
     *
     * @param {string} [body.destinationType] Not used anymore.
     *
     * @param {string} [body.releaseNotes] Release notes for this release.
     *
     * @param {boolean} [body.mandatoryUpdate] A boolean which determines whether
     * this version should be a mandatory update or not.
     *
     * @param {array} [body.destinations] Distribute this release under the
     * following list of destinations (store groups or distribution groups).
     *
     * @param {object} [body.build]
     *
     * @param {string} [body.build.branch] The branch name of the build producing
     * the release
     *
     * @param {string} [body.build.commitHash] The commit hash of the build
     * producing the release
     *
     * @param {string} [body.build.commitMessage] The commit message of the build
     * producing the release
     *
     * @param {boolean} [body.notifyTesters] A boolean which determines whether to
     * notify testers of a new release, default to true.
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @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 {Object} - 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.
     *
     *                      {Object} [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.
     */
    update(releaseId: number, body: models.ReleaseUpdateRequest, ownerName: string, appName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<any>;
    update(releaseId: number, body: models.ReleaseUpdateRequest, ownerName: string, appName: string, callback: ServiceCallback<any>): void;
    update(releaseId: number, body: models.ReleaseUpdateRequest, ownerName: string, appName: string, options: { customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<any>): void;


    /**
     * Deletes a release.
     *
     * @param {number} releaseId The ID of the release
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @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<ErrorDetails>} - The deserialized result object.
     *
     * @reject {Error|ServiceError} - The error object.
     */
    deleteMethodWithHttpOperationResponse(releaseId: number, ownerName: string, appName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<models.ErrorDetails>>;

    /**
     * Deletes a release.
     *
     * @param {number} releaseId The ID of the release
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @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 {ErrorDetails} - 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.
     *
     *                      {ErrorDetails} [result]   - The deserialized result object if an error did not occur.
     *                      See {@link ErrorDetails} 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(releaseId: number, ownerName: string, appName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<models.ErrorDetails>;
    deleteMethod(releaseId: number, ownerName: string, appName: string, callback: ServiceCallback<models.ErrorDetails>): void;
    deleteMethod(releaseId: number, ownerName: string, appName: string, options: { customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<models.ErrorDetails>): void;


    /**
     * Return detailed information about releases avaiable to a tester.
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @param {object} [options] Optional Parameters.
     *
     * @param {boolean} [options.publishedOnly] when *true*, filters out releases
     * that were uploaded but were never distributed. Releases that under deleted
     * distribution groups will not be filtered out.
     *
     * @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.
     */
    availableToTesterWithHttpOperationResponse(ownerName: string, appName: string, options?: { publishedOnly? : boolean, customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<models.BasicReleaseDetailsResponse[]>>;

    /**
     * Return detailed information about releases avaiable to a tester.
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @param {object} [options] Optional Parameters.
     *
     * @param {boolean} [options.publishedOnly] when *true*, filters out releases
     * that were uploaded but were never distributed. Releases that under deleted
     * distribution groups will not be filtered out.
     *
     * @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.
     */
    availableToTester(ownerName: string, appName: string, options?: { publishedOnly? : boolean, customHeaders? : { [headerName: string]: string; } }): Promise<models.BasicReleaseDetailsResponse[]>;
    availableToTester(ownerName: string, appName: string, callback: ServiceCallback<models.BasicReleaseDetailsResponse[]>): void;
    availableToTester(ownerName: string, appName: string, options: { publishedOnly? : boolean, customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<models.BasicReleaseDetailsResponse[]>): void;


    /**
     * Return basic information about releases.
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @param {object} [options] Optional Parameters.
     *
     * @param {boolean} [options.publishedOnly] When *true*, filters out releases
     * that were uploaded but were never distributed. Releases that under deleted
     * distribution groups will not be filtered out.
     *
     * @param {string} [options.scope] When the scope is 'tester', only includes
     * releases that have been distributed to groups that the user belongs to.
     *
     * @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(ownerName: string, appName: string, options?: { publishedOnly? : boolean, scope? : string, customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<models.BasicReleaseDetailsResponse[]>>;

    /**
     * Return basic information about releases.
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @param {object} [options] Optional Parameters.
     *
     * @param {boolean} [options.publishedOnly] When *true*, filters out releases
     * that were uploaded but were never distributed. Releases that under deleted
     * distribution groups will not be filtered out.
     *
     * @param {string} [options.scope] When the scope is 'tester', only includes
     * releases that have been distributed to groups that the user belongs to.
     *
     * @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(ownerName: string, appName: string, options?: { publishedOnly? : boolean, scope? : string, customHeaders? : { [headerName: string]: string; } }): Promise<models.BasicReleaseDetailsResponse[]>;
    list(ownerName: string, appName: string, callback: ServiceCallback<models.BasicReleaseDetailsResponse[]>): void;
    list(ownerName: string, appName: string, options: { publishedOnly? : boolean, scope? : string, customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<models.BasicReleaseDetailsResponse[]>): void;


    /**
     * Get the latest release from every distribution group associated with an
     * application.
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @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.
     */
    listLatestWithHttpOperationResponse(ownerName: string, appName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<models.BasicReleaseDetailsResponse[]>>;

    /**
     * Get the latest release from every distribution group associated with an
     * application.
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @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.
     */
    listLatest(ownerName: string, appName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<models.BasicReleaseDetailsResponse[]>;
    listLatest(ownerName: string, appName: string, callback: ServiceCallback<models.BasicReleaseDetailsResponse[]>): void;
    listLatest(ownerName: string, appName: string, options: { customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<models.BasicReleaseDetailsResponse[]>): void;


    /**
     * Return detailed information about a distributed release in a given
     * distribution group.
     *
     * @param {string} ownerName The name of the app owner
     *
     * @param {string} appName The name of the app
     *
     * @param {string} distributionGroupName The name of the distribution group.
     *
     * @param {string} releaseId Only supports the constant `latest`, specific IDs
     * are not supported. `latest` will return the latest release in the
     * distribution group.
     *
     * @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<Object>} - The deserialized result object.
     *
     * @reject {Error|ServiceError} - The error object.
     */
    getLatestByDistributionGroupWithHttpOperationResponse(ownerName: string, appName: string, distributionGroupName: string, releaseId: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<any>>;

    /**
     * Return detailed information about a distributed release in a given
     * distribution group.
     *
     * @param {string} ownerName The name of the app owner
     *
     * @param {string} appName The name of the app
     *
     * @param {string} distributionGroupName The name of the distribution group.
     *
     * @param {string} releaseId Only supports the constant `latest`, specific IDs
     * are not supported. `latest` will return the latest release in the
     * distribution group.
     *
     * @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 {Object} - 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.
     *
     *                      {Object} [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.
     */
    getLatestByDistributionGroup(ownerName: string, appName: string, distributionGroupName: string, releaseId: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<any>;
    getLatestByDistributionGroup(ownerName: string, appName: string, distributionGroupName: string, releaseId: string, callback: ServiceCallback<any>): void;
    getLatestByDistributionGroup(ownerName: string, appName: string, distributionGroupName: string, releaseId: string, options: { customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<any>): void;


    /**
     * Deletes a release with id 'release_id' in a given distribution group.
     *
     * @param {string} ownerName The name of the app owner
     *
     * @param {string} appName The name of the app
     *
     * @param {string} distributionGroupName The name of the distribution group.
     *
     * @param {number} releaseId The ID identifying the unique release.
     *
     * @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<ErrorDetails>} - The deserialized result object.
     *
     * @reject {Error|ServiceError} - The error object.
     */
    deleteWithDistributionGroupIdWithHttpOperationResponse(ownerName: string, appName: string, distributionGroupName: string, releaseId: number, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<models.ErrorDetails>>;

    /**
     * Deletes a release with id 'release_id' in a given distribution group.
     *
     * @param {string} ownerName The name of the app owner
     *
     * @param {string} appName The name of the app
     *
     * @param {string} distributionGroupName The name of the distribution group.
     *
     * @param {number} releaseId The ID identifying the unique release.
     *
     * @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 {ErrorDetails} - 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.
     *
     *                      {ErrorDetails} [result]   - The deserialized result object if an error did not occur.
     *                      See {@link ErrorDetails} 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.
     */
    deleteWithDistributionGroupId(ownerName: string, appName: string, distributionGroupName: string, releaseId: number, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<models.ErrorDetails>;
    deleteWithDistributionGroupId(ownerName: string, appName: string, distributionGroupName: string, releaseId: number, callback: ServiceCallback<models.ErrorDetails>): void;
    deleteWithDistributionGroupId(ownerName: string, appName: string, distributionGroupName: string, releaseId: number, options: { customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<models.ErrorDetails>): void;


    /**
     * Return basic information about distributed releases in a given distribution
     * group.
     *
     * @param {string} distributionGroupName The name of the distribution group.
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @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<Object>} - The deserialized result object.
     *
     * @reject {Error|ServiceError} - The error object.
     */
    listByDistributionGroupWithHttpOperationResponse(distributionGroupName: string, ownerName: string, appName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<any>>;

    /**
     * Return basic information about distributed releases in a given distribution
     * group.
     *
     * @param {string} distributionGroupName The name of the distribution group.
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @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 {Object} - 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.
     *
     *                      {Object} [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.
     */
    listByDistributionGroup(distributionGroupName: string, ownerName: string, appName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<any>;
    listByDistributionGroup(distributionGroupName: string, ownerName: string, appName: string, callback: ServiceCallback<any>): void;
    listByDistributionGroup(distributionGroupName: string, ownerName: string, appName: string, options: { customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<any>): void;
}

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


    /**
     * Returns a unique list of users including the whole organization members plus
     * testers in any shared group of that org
     *
     * @param {string} orgName The organization's name
     *
     * @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.
     */
    listAllTestersForOrgWithHttpOperationResponse(orgName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<models.DistributionGroupTesterGetResponse[]>>;

    /**
     * Returns a unique list of users including the whole organization members plus
     * testers in any shared group of that org
     *
     * @param {string} orgName The organization's name
     *
     * @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.
     */
    listAllTestersForOrg(orgName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<models.DistributionGroupTesterGetResponse[]>;
    listAllTestersForOrg(orgName: string, callback: ServiceCallback<models.DistributionGroupTesterGetResponse[]>): void;
    listAllTestersForOrg(orgName: string, options: { customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<models.DistributionGroupTesterGetResponse[]>): void;


    /**
     * Returns a list of distribution groups with details for an organization
     *
     * @param {string} orgName The organization's name
     *
     * @param {object} [options] Optional Parameters.
     *
     * @param {number} [options.appsLimit] The max number of apps to include in the
     * response
     *
     * @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.
     */
    detailsForOrgWithHttpOperationResponse(orgName: string, options?: { appsLimit? : number, customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<models.OrgDistributionGroupDetailsResponse[]>>;

    /**
     * Returns a list of distribution groups with details for an organization
     *
     * @param {string} orgName The organization's name
     *
     * @param {object} [options] Optional Parameters.
     *
     * @param {number} [options.appsLimit] The max number of apps to include in the
     * response
     *
     * @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.
     */
    detailsForOrg(orgName: string, options?: { appsLimit? : number, customHeaders? : { [headerName: string]: string; } }): Promise<models.OrgDistributionGroupDetailsResponse[]>;
    detailsForOrg(orgName: string, callback: ServiceCallback<models.OrgDistributionGroupDetailsResponse[]>): void;
    detailsForOrg(orgName: string, options: { appsLimit? : number, customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<models.OrgDistributionGroupDetailsResponse[]>): void;


    /**
     * Resend shared distribution group invite notification to previously invited
     * testers
     *
     * @param {string} orgName The organization's name
     *
     * @param {string} distributionGroupName The name of the distribution group
     *
     * @param {object} [options] Optional Parameters.
     *
     * @param {array} [options.userEmails] The list of emails of the users
     *
     * @param {object} [options.customHeaders] Headers that will be added to the
     * request
     *
     * @returns {Promise} A promise is returned
     *
     * @resolve {HttpOperationResponse<null>} - The deserialized result object.
     *
     * @reject {Error|ServiceError} - The error object.
     */
    resendSharedInviteWithHttpOperationResponse(orgName: string, distributionGroupName: string, options?: { userEmails? : string[], customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<void>>;

    /**
     * Resend shared distribution group invite notification to previously invited
     * testers
     *
     * @param {string} orgName The organization's name
     *
     * @param {string} distributionGroupName The name of the distribution group
     *
     * @param {object} [options] Optional Parameters.
     *
     * @param {array} [options.userEmails] The list of emails of the users
     *
     * @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 {null} - 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.
     *
     *                      {null} [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.
     */
    resendSharedInvite(orgName: string, distributionGroupName: string, options?: { userEmails? : string[], customHeaders? : { [headerName: string]: string; } }): Promise<void>;
    resendSharedInvite(orgName: string, distributionGroupName: string, callback: ServiceCallback<void>): void;
    resendSharedInvite(orgName: string, distributionGroupName: string, options: { userEmails? : string[], customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<void>): void;


    /**
     * Delete apps from distribution group in an org
     *
     * @param {string} orgName The organization's name
     *
     * @param {string} distributionGroupName The name of the distribution group
     *
     * @param {object} [options] Optional Parameters.
     *
     * @param {array} [options.userEmails] The list of emails of the users
     *
     * @param {object} [options.customHeaders] Headers that will be added to the
     * request
     *
     * @returns {Promise} A promise is returned
     *
     * @resolve {HttpOperationResponse<null>} - The deserialized result object.
     *
     * @reject {Error|ServiceError} - The error object.
     */
    bulkDeleteUsersWithHttpOperationResponse(orgName: string, distributionGroupName: string, options?: { userEmails? : string[], customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<void>>;

    /**
     * Delete apps from distribution group in an org
     *
     * @param {string} orgName The organization's name
     *
     * @param {string} distributionGroupName The name of the distribution group
     *
     * @param {object} [options] Optional Parameters.
     *
     * @param {array} [options.userEmails] The list of emails of the users
     *
     * @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 {null} - 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.
     *
     *                      {null} [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.
     */
    bulkDeleteUsers(orgName: string, distributionGroupName: string, options?: { userEmails? : string[], customHeaders? : { [headerName: string]: string; } }): Promise<void>;
    bulkDeleteUsers(orgName: string, distributionGroupName: string, callback: ServiceCallback<void>): void;
    bulkDeleteUsers(orgName: string, distributionGroupName: string, options: { userEmails? : string[], customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<void>): void;


    /**
     * Returns a list of member in the distribution group specified
     *
     * @param {string} orgName The organization's name
     *
     * @param {string} distributionGroupName The name of the distribution group
     *
     * @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.
     */
    listUsersForOrgWithHttpOperationResponse(orgName: string, distributionGroupName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<models.DistributionGroupUserGetResponse[]>>;

    /**
     * Returns a list of member in the distribution group specified
     *
     * @param {string} orgName The organization's name
     *
     * @param {string} distributionGroupName The name of the distribution group
     *
     * @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.
     */
    listUsersForOrg(orgName: string, distributionGroupName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<models.DistributionGroupUserGetResponse[]>;
    listUsersForOrg(orgName: string, distributionGroupName: string, callback: ServiceCallback<models.DistributionGroupUserGetResponse[]>): void;
    listUsersForOrg(orgName: string, distributionGroupName: string, options: { customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<models.DistributionGroupUserGetResponse[]>): void;


    /**
     * Accepts an array of user email addresses to get added to the specified group
     *
     * @param {string} orgName The organization's name
     *
     * @param {string} distributionGroupName The name of the distribution group
     *
     * @param {object} [options] Optional Parameters.
     *
     * @param {array} [options.userEmails] The list of emails of the users
     *
     * @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.
     */
    addUsersForOrgWithHttpOperationResponse(orgName: string, distributionGroupName: string, options?: { userEmails? : string[], customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<models.DistributionGroupUserPostResponse[]>>;

    /**
     * Accepts an array of user email addresses to get added to the specified group
     *
     * @param {string} orgName The organization's name
     *
     * @param {string} distributionGroupName The name of the distribution group
     *
     * @param {object} [options] Optional Parameters.
     *
     * @param {array} [options.userEmails] The list of emails of the users
     *
     * @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.
     */
    addUsersForOrg(orgName: string, distributionGroupName: string, options?: { userEmails? : string[], customHeaders? : { [headerName: string]: string; } }): Promise<models.DistributionGroupUserPostResponse[]>;
    addUsersForOrg(orgName: string, distributionGroupName: string, callback: ServiceCallback<models.DistributionGroupUserPostResponse[]>): void;
    addUsersForOrg(orgName: string, distributionGroupName: string, options: { userEmails? : string[], customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<models.DistributionGroupUserPostResponse[]>): void;


    /**
     * Delete apps from distribution group in an org
     *
     * @param {string} orgName The organization's name
     *
     * @param {string} distributionGroupName The name of the distribution group
     *
     * @param {object} [options] Optional Parameters.
     *
     * @param {array} [options.apps] The list of apps to delete from the
     * distribution group
     *
     * @param {object} [options.customHeaders] Headers that will be added to the
     * request
     *
     * @returns {Promise} A promise is returned
     *
     * @resolve {HttpOperationResponse<null>} - The deserialized result object.
     *
     * @reject {Error|ServiceError} - The error object.
     */
    bulkDeleteAppsWithHttpOperationResponse(orgName: string, distributionGroupName: string, options?: { apps? : models.AppDeleteRequest[], customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<void>>;

    /**
     * Delete apps from distribution group in an org
     *
     * @param {string} orgName The organization's name
     *
     * @param {string} distributionGroupName The name of the distribution group
     *
     * @param {object} [options] Optional Parameters.
     *
     * @param {array} [options.apps] The list of apps to delete from the
     * distribution 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 {null} - 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.
     *
     *                      {null} [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.
     */
    bulkDeleteApps(orgName: string, distributionGroupName: string, options?: { apps? : models.AppDeleteRequest[], customHeaders? : { [headerName: string]: string; } }): Promise<void>;
    bulkDeleteApps(orgName: string, distributionGroupName: string, callback: ServiceCallback<void>): void;
    bulkDeleteApps(orgName: string, distributionGroupName: string, options: { apps? : models.AppDeleteRequest[], customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<void>): void;


    /**
     * Get apps from a distribution group in an org
     *
     * @param {string} orgName The organization's name
     *
     * @param {string} distributionGroupName The name of the distribution group
     *
     * @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.
     */
    getAppsWithHttpOperationResponse(orgName: string, distributionGroupName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<models.OrgDistributionGroupAppResponse[]>>;

    /**
     * Get apps from a distribution group in an org
     *
     * @param {string} orgName The organization's name
     *
     * @param {string} distributionGroupName The name of the distribution group
     *
     * @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.
     */
    getApps(orgName: string, distributionGroupName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<models.OrgDistributionGroupAppResponse[]>;
    getApps(orgName: string, distributionGroupName: string, callback: ServiceCallback<models.OrgDistributionGroupAppResponse[]>): void;
    getApps(orgName: string, distributionGroupName: string, options: { customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<models.OrgDistributionGroupAppResponse[]>): void;


    /**
     * Add apps to distribution group in an org
     *
     * @param {string} orgName The organization's name
     *
     * @param {string} distributionGroupName The name of the distribution group
     *
     * @param {object} [options] Optional Parameters.
     *
     * @param {array} [options.apps] The list of apps to add to distribution group
     *
     * @param {object} [options.customHeaders] Headers that will be added to the
     * request
     *
     * @returns {Promise} A promise is returned
     *
     * @resolve {HttpOperationResponse<null>} - The deserialized result object.
     *
     * @reject {Error|ServiceError} - The error object.
     */
    addAppsWithHttpOperationResponse(orgName: string, distributionGroupName: string, options?: { apps? : models.AppAddRequest[], customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<void>>;

    /**
     * Add apps to distribution group in an org
     *
     * @param {string} orgName The organization's name
     *
     * @param {string} distributionGroupName The name of the distribution group
     *
     * @param {object} [options] Optional Parameters.
     *
     * @param {array} [options.apps] The list of apps to add to distribution 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 {null} - 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.
     *
     *                      {null} [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.
     */
    addApps(orgName: string, distributionGroupName: string, options?: { apps? : models.AppAddRequest[], customHeaders? : { [headerName: string]: string; } }): Promise<void>;
    addApps(orgName: string, distributionGroupName: string, callback: ServiceCallback<void>): void;
    addApps(orgName: string, distributionGroupName: string, options: { apps? : models.AppAddRequest[], customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<void>): void;


    /**
     * Returns a single distribution group in org for a given distribution group
     * name
     *
     * @param {string} orgName The organization's name
     *
     * @param {string} distributionGroupName The name of the distribution group
     *
     * @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<DistributionGroupResponse>} - The deserialized result object.
     *
     * @reject {Error|ServiceError} - The error object.
     */
    getForOrgWithHttpOperationResponse(orgName: string, distributionGroupName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<models.DistributionGroupResponse>>;

    /**
     * Returns a single distribution group in org for a given distribution group
     * name
     *
     * @param {string} orgName The organization's name
     *
     * @param {string} distributionGroupName The name of the distribution group
     *
     * @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 {DistributionGroupResponse} - 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.
     *
     *                      {DistributionGroupResponse} [result]   - The deserialized result object if an error did not occur.
     *                      See {@link DistributionGroupResponse} 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.
     */
    getForOrg(orgName: string, distributionGroupName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<models.DistributionGroupResponse>;
    getForOrg(orgName: string, distributionGroupName: string, callback: ServiceCallback<models.DistributionGroupResponse>): void;
    getForOrg(orgName: string, distributionGroupName: string, options: { customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<models.DistributionGroupResponse>): void;


    /**
     * Update one given distribution group name in an org
     *
     * @param {string} orgName The organization's name
     *
     * @param {string} distributionGroupName The name of the distribution group
     *
     * @param {object} [options] Optional Parameters.
     *
     * @param {string} [options.name] The name of the distribution group
     *
     * @param {boolean} [options.isPublic] Whether the distribution group is public
     *
     * @param {object} [options.customHeaders] Headers that will be added to the
     * request
     *
     * @returns {Promise} A promise is returned
     *
     * @resolve {HttpOperationResponse<DistributionGroupResponse>} - The deserialized result object.
     *
     * @reject {Error|ServiceError} - The error object.
     */
    patchForOrgWithHttpOperationResponse(orgName: string, distributionGroupName: string, options?: { name? : string, isPublic? : boolean, customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<models.DistributionGroupResponse>>;

    /**
     * Update one given distribution group name in an org
     *
     * @param {string} orgName The organization's name
     *
     * @param {string} distributionGroupName The name of the distribution group
     *
     * @param {object} [options] Optional Parameters.
     *
     * @param {string} [options.name] The name of the distribution group
     *
     * @param {boolean} [options.isPublic] Whether the distribution group is public
     *
     * @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 {DistributionGroupResponse} - 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.
     *
     *                      {DistributionGroupResponse} [result]   - The deserialized result object if an error did not occur.
     *                      See {@link DistributionGroupResponse} 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.
     */
    patchForOrg(orgName: string, distributionGroupName: string, options?: { name? : string, isPublic? : boolean, customHeaders? : { [headerName: string]: string; } }): Promise<models.DistributionGroupResponse>;
    patchForOrg(orgName: string, distributionGroupName: string, callback: ServiceCallback<models.DistributionGroupResponse>): void;
    patchForOrg(orgName: string, distributionGroupName: string, options: { name? : string, isPublic? : boolean, customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<models.DistributionGroupResponse>): void;


    /**
     * Deletes a single distribution group from an org with a given distribution
     * group name
     *
     * @param {string} orgName The organization's name
     *
     * @param {string} distributionGroupName The name of the distribution group
     *
     * @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<null>} - The deserialized result object.
     *
     * @reject {Error|ServiceError} - The error object.
     */
    deleteForOrgWithHttpOperationResponse(orgName: string, distributionGroupName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<void>>;

    /**
     * Deletes a single distribution group from an org with a given distribution
     * group name
     *
     * @param {string} orgName The organization's name
     *
     * @param {string} distributionGroupName The name of the distribution group
     *
     * @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 {null} - 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.
     *
     *                      {null} [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.
     */
    deleteForOrg(orgName: string, distributionGroupName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<void>;
    deleteForOrg(orgName: string, distributionGroupName: string, callback: ServiceCallback<void>): void;
    deleteForOrg(orgName: string, distributionGroupName: string, options: { customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<void>): void;


    /**
     * Creates a disribution goup which can be shared across apps under an
     * organization
     *
     * @param {string} orgName The organization's name
     *
     * @param {string} name The name of the distribution group
     *
     * @param {object} [options] Optional Parameters.
     *
     * @param {string} [options.displayName] The display name of the distribution
     * group. If not specified, the name will be used.
     *
     * @param {object} [options.customHeaders] Headers that will be added to the
     * request
     *
     * @returns {Promise} A promise is returned
     *
     * @resolve {HttpOperationResponse<DistributionGroupResponse>} - The deserialized result object.
     *
     * @reject {Error|ServiceError} - The error object.
     */
    createForOrgWithHttpOperationResponse(orgName: string, name: string, options?: { displayName? : string, customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<models.DistributionGroupResponse>>;

    /**
     * Creates a disribution goup which can be shared across apps under an
     * organization
     *
     * @param {string} orgName The organization's name
     *
     * @param {string} name The name of the distribution group
     *
     * @param {object} [options] Optional Parameters.
     *
     * @param {string} [options.displayName] The display name of the distribution
     * group. If not specified, the name will be used.
     *
     * @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 {DistributionGroupResponse} - 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.
     *
     *                      {DistributionGroupResponse} [result]   - The deserialized result object if an error did not occur.
     *                      See {@link DistributionGroupResponse} 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.
     */
    createForOrg(orgName: string, name: string, options?: { displayName? : string, customHeaders? : { [headerName: string]: string; } }): Promise<models.DistributionGroupResponse>;
    createForOrg(orgName: string, name: string, callback: ServiceCallback<models.DistributionGroupResponse>): void;
    createForOrg(orgName: string, name: string, options: { displayName? : string, customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<models.DistributionGroupResponse>): void;


    /**
     * Returns a list of distribution groups in the org specified
     *
     * @param {string} orgName The organization's name
     *
     * @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.
     */
    listForOrgWithHttpOperationResponse(orgName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<models.DistributionGroupResponse[]>>;

    /**
     * Returns a list of distribution groups in the org specified
     *
     * @param {string} orgName The organization's name
     *
     * @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.
     */
    listForOrg(orgName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<models.DistributionGroupResponse[]>;
    listForOrg(orgName: string, callback: ServiceCallback<models.DistributionGroupResponse[]>): void;
    listForOrg(orgName: string, options: { customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<models.DistributionGroupResponse[]>): void;


    /**
     * Resend distribution group app invite notification to previously invited
     * testers
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @param {string} distributionGroupName The name of the distribution group
     *
     * @param {object} [options] Optional Parameters.
     *
     * @param {array} [options.userEmails] The list of emails of the users
     *
     * @param {object} [options.customHeaders] Headers that will be added to the
     * request
     *
     * @returns {Promise} A promise is returned
     *
     * @resolve {HttpOperationResponse<null>} - The deserialized result object.
     *
     * @reject {Error|ServiceError} - The error object.
     */
    resendInviteWithHttpOperationResponse(ownerName: string, appName: string, distributionGroupName: string, options?: { userEmails? : string[], customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<void>>;

    /**
     * Resend distribution group app invite notification to previously invited
     * testers
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @param {string} distributionGroupName The name of the distribution group
     *
     * @param {object} [options] Optional Parameters.
     *
     * @param {array} [options.userEmails] The list of emails of the users
     *
     * @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 {null} - 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.
     *
     *                      {null} [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.
     */
    resendInvite(ownerName: string, appName: string, distributionGroupName: string, options?: { userEmails? : string[], customHeaders? : { [headerName: string]: string; } }): Promise<void>;
    resendInvite(ownerName: string, appName: string, distributionGroupName: string, callback: ServiceCallback<void>): void;
    resendInvite(ownerName: string, appName: string, distributionGroupName: string, options: { userEmails? : string[], customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<void>): void;


    /**
     * Remove the users from the distribution group
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @param {string} distributionGroupName The name of the distribution group
     *
     * @param {object} [options] Optional Parameters.
     *
     * @param {array} [options.userEmails] The list of emails of the users
     *
     * @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.
     */
    removeUserWithHttpOperationResponse(ownerName: string, appName: string, distributionGroupName: string, options?: { userEmails? : string[], customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<models.DistributionGroupUserDeleteResponse[]>>;

    /**
     * Remove the users from the distribution group
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @param {string} distributionGroupName The name of the distribution group
     *
     * @param {object} [options] Optional Parameters.
     *
     * @param {array} [options.userEmails] The list of emails of the users
     *
     * @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.
     */
    removeUser(ownerName: string, appName: string, distributionGroupName: string, options?: { userEmails? : string[], customHeaders? : { [headerName: string]: string; } }): Promise<models.DistributionGroupUserDeleteResponse[]>;
    removeUser(ownerName: string, appName: string, distributionGroupName: string, callback: ServiceCallback<models.DistributionGroupUserDeleteResponse[]>): void;
    removeUser(ownerName: string, appName: string, distributionGroupName: string, options: { userEmails? : string[], customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<models.DistributionGroupUserDeleteResponse[]>): void;


    /**
     * Returns a list of member details in the distribution group specified
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @param {string} distributionGroupName The name of the distribution group
     *
     * @param {object} [options] Optional Parameters.
     *
     * @param {boolean} [options.excludePendingInvitations] Whether to exclude
     * pending invitations in the response
     *
     * @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.
     */
    listUsersWithHttpOperationResponse(ownerName: string, appName: string, distributionGroupName: string, options?: { excludePendingInvitations? : boolean, customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<models.DistributionGroupUserGetResponse[]>>;

    /**
     * Returns a list of member details in the distribution group specified
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @param {string} distributionGroupName The name of the distribution group
     *
     * @param {object} [options] Optional Parameters.
     *
     * @param {boolean} [options.excludePendingInvitations] Whether to exclude
     * pending invitations in the response
     *
     * @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.
     */
    listUsers(ownerName: string, appName: string, distributionGroupName: string, options?: { excludePendingInvitations? : boolean, customHeaders? : { [headerName: string]: string; } }): Promise<models.DistributionGroupUserGetResponse[]>;
    listUsers(ownerName: string, appName: string, distributionGroupName: string, callback: ServiceCallback<models.DistributionGroupUserGetResponse[]>): void;
    listUsers(ownerName: string, appName: string, distributionGroupName: string, options: { excludePendingInvitations? : boolean, customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<models.DistributionGroupUserGetResponse[]>): void;


    /**
     * Adds the members to the specified distribution group
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @param {string} distributionGroupName The name of the distribution group
     *
     * @param {object} [options] Optional Parameters.
     *
     * @param {array} [options.userEmails] The list of emails of the users
     *
     * @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.
     */
    addUserWithHttpOperationResponse(ownerName: string, appName: string, distributionGroupName: string, options?: { userEmails? : string[], customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<models.DistributionGroupUserPostResponse[]>>;

    /**
     * Adds the members to the specified distribution group
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @param {string} distributionGroupName The name of the distribution group
     *
     * @param {object} [options] Optional Parameters.
     *
     * @param {array} [options.userEmails] The list of emails of the users
     *
     * @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.
     */
    addUser(ownerName: string, appName: string, distributionGroupName: string, options?: { userEmails? : string[], customHeaders? : { [headerName: string]: string; } }): Promise<models.DistributionGroupUserPostResponse[]>;
    addUser(ownerName: string, appName: string, distributionGroupName: string, callback: ServiceCallback<models.DistributionGroupUserPostResponse[]>): void;
    addUser(ownerName: string, appName: string, distributionGroupName: string, options: { userEmails? : string[], customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<models.DistributionGroupUserPostResponse[]>): void;


    /**
     * Returns a single distribution group for a given distribution group name
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @param {string} distributionGroupName The name of the distribution group
     *
     * @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<DistributionGroupResponse>} - The deserialized result object.
     *
     * @reject {Error|ServiceError} - The error object.
     */
    getWithHttpOperationResponse(ownerName: string, appName: string, distributionGroupName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<models.DistributionGroupResponse>>;

    /**
     * Returns a single distribution group for a given distribution group name
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @param {string} distributionGroupName The name of the distribution group
     *
     * @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 {DistributionGroupResponse} - 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.
     *
     *                      {DistributionGroupResponse} [result]   - The deserialized result object if an error did not occur.
     *                      See {@link DistributionGroupResponse} 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(ownerName: string, appName: string, distributionGroupName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<models.DistributionGroupResponse>;
    get(ownerName: string, appName: string, distributionGroupName: string, callback: ServiceCallback<models.DistributionGroupResponse>): void;
    get(ownerName: string, appName: string, distributionGroupName: string, options: { customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<models.DistributionGroupResponse>): void;


    /**
     * Updates the attributes of distribution group
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @param {string} distributionGroupName The name of the distribution group
     *
     * @param {object} [options] Optional Parameters.
     *
     * @param {string} [options.name] The name of the distribution group
     *
     * @param {boolean} [options.isPublic] Whether the distribution group is public
     *
     * @param {object} [options.customHeaders] Headers that will be added to the
     * request
     *
     * @returns {Promise} A promise is returned
     *
     * @resolve {HttpOperationResponse<DistributionGroupResponse>} - The deserialized result object.
     *
     * @reject {Error|ServiceError} - The error object.
     */
    updateWithHttpOperationResponse(ownerName: string, appName: string, distributionGroupName: string, options?: { name? : string, isPublic? : boolean, customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<models.DistributionGroupResponse>>;

    /**
     * Updates the attributes of distribution group
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @param {string} distributionGroupName The name of the distribution group
     *
     * @param {object} [options] Optional Parameters.
     *
     * @param {string} [options.name] The name of the distribution group
     *
     * @param {boolean} [options.isPublic] Whether the distribution group is public
     *
     * @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 {DistributionGroupResponse} - 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.
     *
     *                      {DistributionGroupResponse} [result]   - The deserialized result object if an error did not occur.
     *                      See {@link DistributionGroupResponse} 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(ownerName: string, appName: string, distributionGroupName: string, options?: { name? : string, isPublic? : boolean, customHeaders? : { [headerName: string]: string; } }): Promise<models.DistributionGroupResponse>;
    update(ownerName: string, appName: string, distributionGroupName: string, callback: ServiceCallback<models.DistributionGroupResponse>): void;
    update(ownerName: string, appName: string, distributionGroupName: string, options: { name? : string, isPublic? : boolean, customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<models.DistributionGroupResponse>): void;


    /**
     * Deletes a distribution group
     *
     * @param {string} appName The name of the application
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} distributionGroupName The name of the distribution group
     *
     * @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<null>} - The deserialized result object.
     *
     * @reject {Error|ServiceError} - The error object.
     */
    deleteMethodWithHttpOperationResponse(appName: string, ownerName: string, distributionGroupName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<void>>;

    /**
     * Deletes a distribution group
     *
     * @param {string} appName The name of the application
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} distributionGroupName The name of the distribution group
     *
     * @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 {null} - 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.
     *
     *                      {null} [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.
     */
    deleteMethod(appName: string, ownerName: string, distributionGroupName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<void>;
    deleteMethod(appName: string, ownerName: string, distributionGroupName: string, callback: ServiceCallback<void>): void;
    deleteMethod(appName: string, ownerName: string, distributionGroupName: string, options: { customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<void>): void;


    /**
     * Returns a list of distribution groups in the app specified
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @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(ownerName: string, appName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<models.DistributionGroupResponse[]>>;

    /**
     * Returns a list of distribution groups in the app specified
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @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(ownerName: string, appName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<models.DistributionGroupResponse[]>;
    list(ownerName: string, appName: string, callback: ServiceCallback<models.DistributionGroupResponse[]>): void;
    list(ownerName: string, appName: string, options: { customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<models.DistributionGroupResponse[]>): void;


    /**
     * Creates a new distribution group and returns it to the caller
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @param {string} name The name of the distribution group
     *
     * @param {object} [options] Optional Parameters.
     *
     * @param {string} [options.displayName] The display name of the distribution
     * group. If not specified, the name will be used.
     *
     * @param {object} [options.customHeaders] Headers that will be added to the
     * request
     *
     * @returns {Promise} A promise is returned
     *
     * @resolve {HttpOperationResponse<DistributionGroupResponse>} - The deserialized result object.
     *
     * @reject {Error|ServiceError} - The error object.
     */
    createWithHttpOperationResponse(ownerName: string, appName: string, name: string, options?: { displayName? : string, customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<models.DistributionGroupResponse>>;

    /**
     * Creates a new distribution group and returns it to the caller
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @param {string} name The name of the distribution group
     *
     * @param {object} [options] Optional Parameters.
     *
     * @param {string} [options.displayName] The display name of the distribution
     * group. If not specified, the name will be used.
     *
     * @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 {DistributionGroupResponse} - 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.
     *
     *                      {DistributionGroupResponse} [result]   - The deserialized result object if an error did not occur.
     *                      See {@link DistributionGroupResponse} 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(ownerName: string, appName: string, name: string, options?: { displayName? : string, customHeaders? : { [headerName: string]: string; } }): Promise<models.DistributionGroupResponse>;
    create(ownerName: string, appName: string, name: string, callback: ServiceCallback<models.DistributionGroupResponse>): void;
    create(ownerName: string, appName: string, name: string, options: { displayName? : string, customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<models.DistributionGroupResponse>): void;
}

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


    /**
     * Removes a user from a team that is owned by an organization
     *
     * @param {string} orgName The organization's name
     *
     * @param {string} teamName The team's name
     *
     * @param {string} userName The slug name of the user
     *
     * @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<null>} - The deserialized result object.
     *
     * @reject {Error|ServiceError} - The error object.
     */
    removeUserWithHttpOperationResponse(orgName: string, teamName: string, userName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<void>>;

    /**
     * Removes a user from a team that is owned by an organization
     *
     * @param {string} orgName The organization's name
     *
     * @param {string} teamName The team's name
     *
     * @param {string} userName The slug name of the user
     *
     * @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 {null} - 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.
     *
     *                      {null} [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.
     */
    removeUser(orgName: string, teamName: string, userName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<void>;
    removeUser(orgName: string, teamName: string, userName: string, callback: ServiceCallback<void>): void;
    removeUser(orgName: string, teamName: string, userName: string, options: { customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<void>): void;


    /**
     * Returns the users of a team which is owned by an organization
     *
     * @param {string} orgName The organization's name
     *
     * @param {string} teamName The team's name
     *
     * @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<TeamUserResponse>} - The deserialized result object.
     *
     * @reject {Error|ServiceError} - The error object.
     */
    getUsersWithHttpOperationResponse(orgName: string, teamName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<models.TeamUserResponse>>;

    /**
     * Returns the users of a team which is owned by an organization
     *
     * @param {string} orgName The organization's name
     *
     * @param {string} teamName The team's name
     *
     * @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 {TeamUserResponse} - 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.
     *
     *                      {TeamUserResponse} [result]   - The deserialized result object if an error did not occur.
     *                      See {@link TeamUserResponse} 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.
     */
    getUsers(orgName: string, teamName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<models.TeamUserResponse>;
    getUsers(orgName: string, teamName: string, callback: ServiceCallback<models.TeamUserResponse>): void;
    getUsers(orgName: string, teamName: string, options: { customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<models.TeamUserResponse>): void;


    /**
     * Adds a new user to a team that is owned by an organization
     *
     * @param {string} orgName The organization's name
     *
     * @param {string} teamName The team's name
     *
     * @param {string} userEmail The user's email address'
     *
     * @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<TeamUserResponse>} - The deserialized result object.
     *
     * @reject {Error|ServiceError} - The error object.
     */
    addUserWithHttpOperationResponse(orgName: string, teamName: string, userEmail: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<models.TeamUserResponse>>;

    /**
     * Adds a new user to a team that is owned by an organization
     *
     * @param {string} orgName The organization's name
     *
     * @param {string} teamName The team's name
     *
     * @param {string} userEmail The user's email address'
     *
     * @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 {TeamUserResponse} - 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.
     *
     *                      {TeamUserResponse} [result]   - The deserialized result object if an error did not occur.
     *                      See {@link TeamUserResponse} 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.
     */
    addUser(orgName: string, teamName: string, userEmail: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<models.TeamUserResponse>;
    addUser(orgName: string, teamName: string, userEmail: string, callback: ServiceCallback<models.TeamUserResponse>): void;
    addUser(orgName: string, teamName: string, userEmail: string, options: { customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<models.TeamUserResponse>): void;


    /**
     * Updates the permissions the team has to the app
     *
     * @param {string} orgName The organization's name
     *
     * @param {string} teamName The team's name
     *
     * @param {string} appName The name of the application
     *
     * @param {array} permissions The permissions all members of the team have on
     * the app
     *
     * @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<AppWithTeamPermissionsResponse>} - The deserialized result object.
     *
     * @reject {Error|ServiceError} - The error object.
     */
    updatePermissionsWithHttpOperationResponse(orgName: string, teamName: string, appName: string, permissions: string[], options?: { customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<models.AppWithTeamPermissionsResponse>>;

    /**
     * Updates the permissions the team has to the app
     *
     * @param {string} orgName The organization's name
     *
     * @param {string} teamName The team's name
     *
     * @param {string} appName The name of the application
     *
     * @param {array} permissions The permissions all members of the team have on
     * the app
     *
     * @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 {AppWithTeamPermissionsResponse} - 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.
     *
     *                      {AppWithTeamPermissionsResponse} [result]   - The deserialized result object if an error did not occur.
     *                      See {@link AppWithTeamPermissionsResponse} 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.
     */
    updatePermissions(orgName: string, teamName: string, appName: string, permissions: string[], options?: { customHeaders? : { [headerName: string]: string; } }): Promise<models.AppWithTeamPermissionsResponse>;
    updatePermissions(orgName: string, teamName: string, appName: string, permissions: string[], callback: ServiceCallback<models.AppWithTeamPermissionsResponse>): void;
    updatePermissions(orgName: string, teamName: string, appName: string, permissions: string[], options: { customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<models.AppWithTeamPermissionsResponse>): void;


    /**
     * Removes an app from a team
     *
     * @param {string} orgName The organization's name
     *
     * @param {string} teamName The team's name
     *
     * @param {string} appName The name of the application
     *
     * @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<null>} - The deserialized result object.
     *
     * @reject {Error|ServiceError} - The error object.
     */
    removeAppWithHttpOperationResponse(orgName: string, teamName: string, appName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<void>>;

    /**
     * Removes an app from a team
     *
     * @param {string} orgName The organization's name
     *
     * @param {string} teamName The team's name
     *
     * @param {string} appName The name of the application
     *
     * @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 {null} - 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.
     *
     *                      {null} [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.
     */
    removeApp(orgName: string, teamName: string, appName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<void>;
    removeApp(orgName: string, teamName: string, appName: string, callback: ServiceCallback<void>): void;
    removeApp(orgName: string, teamName: string, appName: string, options: { customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<void>): void;


    /**
     * Adds an app to a team
     *
     * @param {string} orgName The organization's name
     *
     * @param {string} teamName The team's name
     *
     * @param {string} name The name of the app to be added to the distribution
     * group
     *
     * @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<AppWithTeamPermissionsResponse>} - The deserialized result object.
     *
     * @reject {Error|ServiceError} - The error object.
     */
    addAppWithHttpOperationResponse(orgName: string, teamName: string, name: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<models.AppWithTeamPermissionsResponse>>;

    /**
     * Adds an app to a team
     *
     * @param {string} orgName The organization's name
     *
     * @param {string} teamName The team's name
     *
     * @param {string} name The name of the app to be added to the distribution
     * group
     *
     * @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 {AppWithTeamPermissionsResponse} - 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.
     *
     *                      {AppWithTeamPermissionsResponse} [result]   - The deserialized result object if an error did not occur.
     *                      See {@link AppWithTeamPermissionsResponse} 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.
     */
    addApp(orgName: string, teamName: string, name: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<models.AppWithTeamPermissionsResponse>;
    addApp(orgName: string, teamName: string, name: string, callback: ServiceCallback<models.AppWithTeamPermissionsResponse>): void;
    addApp(orgName: string, teamName: string, name: string, options: { customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<models.AppWithTeamPermissionsResponse>): void;


    /**
     * Returns the apps a team has access to
     *
     * @param {string} orgName The organization's name
     *
     * @param {string} teamName The team's name
     *
     * @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.
     */
    listAppsWithHttpOperationResponse(orgName: string, teamName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<models.AppWithTeamPermissionsResponse[]>>;

    /**
     * Returns the apps a team has access to
     *
     * @param {string} orgName The organization's name
     *
     * @param {string} teamName The team's name
     *
     * @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.
     */
    listApps(orgName: string, teamName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<models.AppWithTeamPermissionsResponse[]>;
    listApps(orgName: string, teamName: string, callback: ServiceCallback<models.AppWithTeamPermissionsResponse[]>): void;
    listApps(orgName: string, teamName: string, options: { customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<models.AppWithTeamPermissionsResponse[]>): void;


    /**
     * Returns the details of a single team
     *
     * @param {string} orgName The organization's name
     *
     * @param {string} teamName The team's name
     *
     * @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<TeamResponse>} - The deserialized result object.
     *
     * @reject {Error|ServiceError} - The error object.
     */
    getTeamWithHttpOperationResponse(orgName: string, teamName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<models.TeamResponse>>;

    /**
     * Returns the details of a single team
     *
     * @param {string} orgName The organization's name
     *
     * @param {string} teamName The team's name
     *
     * @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 {TeamResponse} - 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.
     *
     *                      {TeamResponse} [result]   - The deserialized result object if an error did not occur.
     *                      See {@link TeamResponse} 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.
     */
    getTeam(orgName: string, teamName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<models.TeamResponse>;
    getTeam(orgName: string, teamName: string, callback: ServiceCallback<models.TeamResponse>): void;
    getTeam(orgName: string, teamName: string, options: { customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<models.TeamResponse>): void;


    /**
     * Deletes a single team
     *
     * @param {string} orgName The organization's name
     *
     * @param {string} teamName The team's name
     *
     * @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<null>} - The deserialized result object.
     *
     * @reject {Error|ServiceError} - The error object.
     */
    deleteMethodWithHttpOperationResponse(orgName: string, teamName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<void>>;

    /**
     * Deletes a single team
     *
     * @param {string} orgName The organization's name
     *
     * @param {string} teamName The team's name
     *
     * @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 {null} - 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.
     *
     *                      {null} [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.
     */
    deleteMethod(orgName: string, teamName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<void>;
    deleteMethod(orgName: string, teamName: string, callback: ServiceCallback<void>): void;
    deleteMethod(orgName: string, teamName: string, options: { customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<void>): void;


    /**
     * Updates a single team
     *
     * @param {string} orgName The organization's name
     *
     * @param {string} teamName The team's name
     *
     * @param {string} displayName The display name of the team
     *
     * @param {object} [options] Optional Parameters.
     *
     * @param {string} [options.name] The name of the team
     *
     * @param {string} [options.description] The description of the team
     *
     * @param {object} [options.customHeaders] Headers that will be added to the
     * request
     *
     * @returns {Promise} A promise is returned
     *
     * @resolve {HttpOperationResponse<TeamResponse>} - The deserialized result object.
     *
     * @reject {Error|ServiceError} - The error object.
     */
    updateWithHttpOperationResponse(orgName: string, teamName: string, displayName: string, options?: { name? : string, description? : string, customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<models.TeamResponse>>;

    /**
     * Updates a single team
     *
     * @param {string} orgName The organization's name
     *
     * @param {string} teamName The team's name
     *
     * @param {string} displayName The display name of the team
     *
     * @param {object} [options] Optional Parameters.
     *
     * @param {string} [options.name] The name of the team
     *
     * @param {string} [options.description] The description of the team
     *
     * @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 {TeamResponse} - 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.
     *
     *                      {TeamResponse} [result]   - The deserialized result object if an error did not occur.
     *                      See {@link TeamResponse} 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(orgName: string, teamName: string, displayName: string, options?: { name? : string, description? : string, customHeaders? : { [headerName: string]: string; } }): Promise<models.TeamResponse>;
    update(orgName: string, teamName: string, displayName: string, callback: ServiceCallback<models.TeamResponse>): void;
    update(orgName: string, teamName: string, displayName: string, options: { name? : string, description? : string, customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<models.TeamResponse>): void;


    /**
     * Returns the list of all teams in this org
     *
     * @param {string} orgName The organization's name
     *
     * @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.
     */
    listAllWithHttpOperationResponse(orgName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<models.TeamResponse[]>>;

    /**
     * Returns the list of all teams in this org
     *
     * @param {string} orgName The organization's name
     *
     * @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.
     */
    listAll(orgName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<models.TeamResponse[]>;
    listAll(orgName: string, callback: ServiceCallback<models.TeamResponse[]>): void;
    listAll(orgName: string, options: { customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<models.TeamResponse[]>): void;


    /**
     * Creates a team and returns it
     *
     * @param {string} orgName The organization's name
     *
     * @param {string} displayName The display name of the team
     *
     * @param {object} [options] Optional Parameters.
     *
     * @param {string} [options.name] The name of the team
     *
     * @param {string} [options.description] The description of the team
     *
     * @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.
     */
    createTeamWithHttpOperationResponse(orgName: string, displayName: string, options?: { name? : string, description? : string, customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<models.TeamResponse[]>>;

    /**
     * Creates a team and returns it
     *
     * @param {string} orgName The organization's name
     *
     * @param {string} displayName The display name of the team
     *
     * @param {object} [options] Optional Parameters.
     *
     * @param {string} [options.name] The name of the team
     *
     * @param {string} [options.description] The description of the team
     *
     * @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.
     */
    createTeam(orgName: string, displayName: string, options?: { name? : string, description? : string, customHeaders? : { [headerName: string]: string; } }): Promise<models.TeamResponse[]>;
    createTeam(orgName: string, displayName: string, callback: ServiceCallback<models.TeamResponse[]>): void;
    createTeam(orgName: string, displayName: string, options: { name? : string, description? : string, customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<models.TeamResponse[]>): void;
}

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


    /**
     * Returns a list of azure subscriptions for the organization
     *
     * @param {string} orgName The organization's name
     *
     * @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.
     */
    listForOrgWithHttpOperationResponse(orgName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<models.AzureSubscriptionResponse[]>>;

    /**
     * Returns a list of azure subscriptions for the organization
     *
     * @param {string} orgName The organization's name
     *
     * @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.
     */
    listForOrg(orgName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<models.AzureSubscriptionResponse[]>;
    listForOrg(orgName: string, callback: ServiceCallback<models.AzureSubscriptionResponse[]>): void;
    listForOrg(orgName: string, options: { customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<models.AzureSubscriptionResponse[]>): void;


    /**
     * Returns a list of azure subscriptions for the user
     *
     * @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.
     */
    listForUserWithHttpOperationResponse(options?: { customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<models.AzureSubscriptionResponse[]>>;

    /**
     * Returns a list of azure subscriptions for the user
     *
     * @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.
     */
    listForUser(options?: { customHeaders? : { [headerName: string]: string; } }): Promise<models.AzureSubscriptionResponse[]>;
    listForUser(callback: ServiceCallback<models.AzureSubscriptionResponse[]>): void;
    listForUser(options: { customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<models.AzureSubscriptionResponse[]>): void;


    /**
     * Delete the azure subscriptions for the app
     *
     * @param {uuid} azureSubscriptionId The unique ID (UUID) of the azure
     * subscription
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @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<null>} - The deserialized result object.
     *
     * @reject {Error|ServiceError} - The error object.
     */
    deleteForAppWithHttpOperationResponse(azureSubscriptionId: string, ownerName: string, appName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<void>>;

    /**
     * Delete the azure subscriptions for the app
     *
     * @param {uuid} azureSubscriptionId The unique ID (UUID) of the azure
     * subscription
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @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 {null} - 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.
     *
     *                      {null} [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.
     */
    deleteForApp(azureSubscriptionId: string, ownerName: string, appName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<void>;
    deleteForApp(azureSubscriptionId: string, ownerName: string, appName: string, callback: ServiceCallback<void>): void;
    deleteForApp(azureSubscriptionId: string, ownerName: string, appName: string, options: { customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<void>): void;


    /**
     * Returns a list of azure subscriptions for the app
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @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.
     */
    listForAppWithHttpOperationResponse(ownerName: string, appName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<models.AzureSubscriptionResponse[]>>;

    /**
     * Returns a list of azure subscriptions for the app
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @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.
     */
    listForApp(ownerName: string, appName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<models.AzureSubscriptionResponse[]>;
    listForApp(ownerName: string, appName: string, callback: ServiceCallback<models.AzureSubscriptionResponse[]>): void;
    listForApp(ownerName: string, appName: string, options: { customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<models.AzureSubscriptionResponse[]>): void;


    /**
     * Link azure subscription to an app
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @param {uuid} subscriptionId The azure subscription 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<null>} - The deserialized result object.
     *
     * @reject {Error|ServiceError} - The error object.
     */
    linkForAppWithHttpOperationResponse(ownerName: string, appName: string, subscriptionId: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<void>>;

    /**
     * Link azure subscription to an app
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @param {uuid} subscriptionId The azure subscription 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 {null} - 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.
     *
     *                      {null} [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.
     */
    linkForApp(ownerName: string, appName: string, subscriptionId: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<void>;
    linkForApp(ownerName: string, appName: string, subscriptionId: string, callback: ServiceCallback<void>): void;
    linkForApp(ownerName: string, appName: string, subscriptionId: string, options: { customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<void>): void;
}

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


    /**
     * Sets the organization avatar
     *
     * @param {string} orgName The organization's name
     *
     * @param {object} [options] Optional Parameters.
     *
     * @param {string} [options.avatar] The image for an Organization avatar to
     * upload.
     *
     * @param {object} [options.customHeaders] Headers that will be added to the
     * request
     *
     * @returns {Promise} A promise is returned
     *
     * @resolve {HttpOperationResponse<OrganizationResponse>} - The deserialized result object.
     *
     * @reject {Error|ServiceError} - The error object.
     */
    updateAvatarWithHttpOperationResponse(orgName: string, options?: { avatar? : string, customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<models.OrganizationResponse>>;

    /**
     * Sets the organization avatar
     *
     * @param {string} orgName The organization's name
     *
     * @param {object} [options] Optional Parameters.
     *
     * @param {string} [options.avatar] The image for an Organization avatar to
     * upload.
     *
     * @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 {OrganizationResponse} - 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.
     *
     *                      {OrganizationResponse} [result]   - The deserialized result object if an error did not occur.
     *                      See {@link OrganizationResponse} 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.
     */
    updateAvatar(orgName: string, options?: { avatar? : string, customHeaders? : { [headerName: string]: string; } }): Promise<models.OrganizationResponse>;
    updateAvatar(orgName: string, callback: ServiceCallback<models.OrganizationResponse>): void;
    updateAvatar(orgName: string, options: { avatar? : string, customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<models.OrganizationResponse>): void;


    /**
     * Deletes the uploaded organization avatar
     *
     * @param {string} orgName The organization's name
     *
     * @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<OrganizationResponse>} - The deserialized result object.
     *
     * @reject {Error|ServiceError} - The error object.
     */
    deleteAvatarWithHttpOperationResponse(orgName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<models.OrganizationResponse>>;

    /**
     * Deletes the uploaded organization avatar
     *
     * @param {string} orgName The organization's name
     *
     * @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 {OrganizationResponse} - 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.
     *
     *                      {OrganizationResponse} [result]   - The deserialized result object if an error did not occur.
     *                      See {@link OrganizationResponse} 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.
     */
    deleteAvatar(orgName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<models.OrganizationResponse>;
    deleteAvatar(orgName: string, callback: ServiceCallback<models.OrganizationResponse>): void;
    deleteAvatar(orgName: string, options: { customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<models.OrganizationResponse>): void;
}

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


    /**
     * Creates a new app for the organization and returns it to the caller
     *
     * @param {string} orgName The organization's name
     *
     * @param {object} app The data for the app
     *
     * @param {string} [app.description] A short text describing the app
     *
     * @param {string} [app.releaseType] A one-word descriptive release-type value
     * that starts with a capital letter but is otherwise lowercase
     *
     * @param {string} app.displayName The descriptive name of the app. This can
     * contain any characters
     *
     * @param {string} [app.name] The name of the app used in URLs
     *
     * @param {string} app.os The OS the app will be running on. Possible values
     * include: 'Android', 'iOS', 'macOS', 'Tizen', 'tvOS', 'Windows', 'Linux'
     *
     * @param {string} app.platform The platform of the app. Possible values
     * include: 'Java', 'Objective-C-Swift', 'UWP', 'Cordova', 'React-Native',
     * 'Xamarin', 'Unity', 'Electron'
     *
     * @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<AppResponse>} - The deserialized result object.
     *
     * @reject {Error|ServiceError} - The error object.
     */
    createForOrgWithHttpOperationResponse(orgName: string, app: models.AppRequest, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<models.AppResponse>>;

    /**
     * Creates a new app for the organization and returns it to the caller
     *
     * @param {string} orgName The organization's name
     *
     * @param {object} app The data for the app
     *
     * @param {string} [app.description] A short text describing the app
     *
     * @param {string} [app.releaseType] A one-word descriptive release-type value
     * that starts with a capital letter but is otherwise lowercase
     *
     * @param {string} app.displayName The descriptive name of the app. This can
     * contain any characters
     *
     * @param {string} [app.name] The name of the app used in URLs
     *
     * @param {string} app.os The OS the app will be running on. Possible values
     * include: 'Android', 'iOS', 'macOS', 'Tizen', 'tvOS', 'Windows', 'Linux'
     *
     * @param {string} app.platform The platform of the app. Possible values
     * include: 'Java', 'Objective-C-Swift', 'UWP', 'Cordova', 'React-Native',
     * 'Xamarin', 'Unity', 'Electron'
     *
     * @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 {AppResponse} - 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.
     *
     *                      {AppResponse} [result]   - The deserialized result object if an error did not occur.
     *                      See {@link AppResponse} 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.
     */
    createForOrg(orgName: string, app: models.AppRequest, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<models.AppResponse>;
    createForOrg(orgName: string, app: models.AppRequest, callback: ServiceCallback<models.AppResponse>): void;
    createForOrg(orgName: string, app: models.AppRequest, options: { customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<models.AppResponse>): void;


    /**
     * Returns a list of apps for the organization
     *
     * @param {string} orgName The organization's name
     *
     * @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.
     */
    listForOrgWithHttpOperationResponse(orgName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<models.AppResponse[]>>;

    /**
     * Returns a list of apps for the organization
     *
     * @param {string} orgName The organization's name
     *
     * @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.
     */
    listForOrg(orgName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<models.AppResponse[]>;
    listForOrg(orgName: string, callback: ServiceCallback<models.AppResponse[]>): void;
    listForOrg(orgName: string, options: { customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<models.AppResponse[]>): void;


    /**
     * Removes the user from the app
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @param {string} userEmail The user email of the user to delete
     *
     * @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<null>} - The deserialized result object.
     *
     * @reject {Error|ServiceError} - The error object.
     */
    removeUserWithHttpOperationResponse(ownerName: string, appName: string, userEmail: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<void>>;

    /**
     * Removes the user from the app
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @param {string} userEmail The user email of the user to delete
     *
     * @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 {null} - 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.
     *
     *                      {null} [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.
     */
    removeUser(ownerName: string, appName: string, userEmail: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<void>;
    removeUser(ownerName: string, appName: string, userEmail: string, callback: ServiceCallback<void>): void;
    removeUser(ownerName: string, appName: string, userEmail: string, options: { customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<void>): void;


    /**
     * Update user permission for the app
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @param {string} userEmail The user email of the user to patch
     *
     * @param {array} permissions The permissions the user has for the app
     *
     * @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<null>} - The deserialized result object.
     *
     * @reject {Error|ServiceError} - The error object.
     */
    updateUserPermissionsWithHttpOperationResponse(ownerName: string, appName: string, userEmail: string, permissions: string[], options?: { customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<void>>;

    /**
     * Update user permission for the app
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @param {string} userEmail The user email of the user to patch
     *
     * @param {array} permissions The permissions the user has for the app
     *
     * @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 {null} - 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.
     *
     *                      {null} [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.
     */
    updateUserPermissions(ownerName: string, appName: string, userEmail: string, permissions: string[], options?: { customHeaders? : { [headerName: string]: string; } }): Promise<void>;
    updateUserPermissions(ownerName: string, appName: string, userEmail: string, permissions: string[], callback: ServiceCallback<void>): void;
    updateUserPermissions(ownerName: string, appName: string, userEmail: string, permissions: string[], options: { customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<void>): void;


    /**
     * Transfers ownership of an app to a new organization
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @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<OrganizationResponse>} - The deserialized result object.
     *
     * @reject {Error|ServiceError} - The error object.
     */
    transferToOrgWithHttpOperationResponse(ownerName: string, appName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<models.OrganizationResponse>>;

    /**
     * Transfers ownership of an app to a new organization
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @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 {OrganizationResponse} - 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.
     *
     *                      {OrganizationResponse} [result]   - The deserialized result object if an error did not occur.
     *                      See {@link OrganizationResponse} 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.
     */
    transferToOrg(ownerName: string, appName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<models.OrganizationResponse>;
    transferToOrg(ownerName: string, appName: string, callback: ServiceCallback<models.OrganizationResponse>): void;
    transferToOrg(ownerName: string, appName: string, options: { customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<models.OrganizationResponse>): void;


    /**
     * Transfers ownership of an app to a different user or organization
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @param {string} destinationOwnerName The name of the owner (user or
     * organization) to which the app is being transferred
     *
     * @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<AppResponse>} - The deserialized result object.
     *
     * @reject {Error|ServiceError} - The error object.
     */
    transferOwnershipWithHttpOperationResponse(ownerName: string, appName: string, destinationOwnerName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<models.AppResponse>>;

    /**
     * Transfers ownership of an app to a different user or organization
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @param {string} destinationOwnerName The name of the owner (user or
     * organization) to which the app is being transferred
     *
     * @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 {AppResponse} - 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.
     *
     *                      {AppResponse} [result]   - The deserialized result object if an error did not occur.
     *                      See {@link AppResponse} 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.
     */
    transferOwnership(ownerName: string, appName: string, destinationOwnerName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<models.AppResponse>;
    transferOwnership(ownerName: string, appName: string, destinationOwnerName: string, callback: ServiceCallback<models.AppResponse>): void;
    transferOwnership(ownerName: string, appName: string, destinationOwnerName: string, options: { customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<models.AppResponse>): void;


    /**
     * Returns the testers associated with the app specified with the given app
     * name which belongs to the given owner.
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @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.
     */
    listTestersWithHttpOperationResponse(ownerName: string, appName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<models.UserProfileResponse[]>>;

    /**
     * Returns the testers associated with the app specified with the given app
     * name which belongs to the given owner.
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @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.
     */
    listTesters(ownerName: string, appName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<models.UserProfileResponse[]>;
    listTesters(ownerName: string, appName: string, callback: ServiceCallback<models.UserProfileResponse[]>): void;
    listTesters(ownerName: string, appName: string, options: { customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<models.UserProfileResponse[]>): void;


    /**
     * Returns the details of all teams that have access to the app.
     *
     * @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.
     */
    getTeamsWithHttpOperationResponse(appName: string, ownerName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<models.TeamAppResponse[]>>;

    /**
     * Returns the details of all teams that have access to the app.
     *
     * @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.
     */
    getTeams(appName: string, ownerName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<models.TeamAppResponse[]>;
    getTeams(appName: string, ownerName: string, callback: ServiceCallback<models.TeamAppResponse[]>): void;
    getTeams(appName: string, ownerName: string, options: { customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<models.TeamAppResponse[]>): void;


    /**
     * Sets the app avatar
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @param {object} [options] Optional Parameters.
     *
     * @param {string} [options.avatar] The image for an app avatar to upload.
     *
     * @param {object} [options.customHeaders] Headers that will be added to the
     * request
     *
     * @returns {Promise} A promise is returned
     *
     * @resolve {HttpOperationResponse<AppResponse>} - The deserialized result object.
     *
     * @reject {Error|ServiceError} - The error object.
     */
    updateAvatarWithHttpOperationResponse(ownerName: string, appName: string, options?: { avatar? : string, customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<models.AppResponse>>;

    /**
     * Sets the app avatar
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @param {object} [options] Optional Parameters.
     *
     * @param {string} [options.avatar] The image for an app avatar to upload.
     *
     * @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 {AppResponse} - 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.
     *
     *                      {AppResponse} [result]   - The deserialized result object if an error did not occur.
     *                      See {@link AppResponse} 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.
     */
    updateAvatar(ownerName: string, appName: string, options?: { avatar? : string, customHeaders? : { [headerName: string]: string; } }): Promise<models.AppResponse>;
    updateAvatar(ownerName: string, appName: string, callback: ServiceCallback<models.AppResponse>): void;
    updateAvatar(ownerName: string, appName: string, options: { avatar? : string, customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<models.AppResponse>): void;


    /**
     * Deletes the uploaded app avatar
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @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<AppResponse>} - The deserialized result object.
     *
     * @reject {Error|ServiceError} - The error object.
     */
    deleteAvatarWithHttpOperationResponse(ownerName: string, appName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<models.AppResponse>>;

    /**
     * Deletes the uploaded app avatar
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @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 {AppResponse} - 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.
     *
     *                      {AppResponse} [result]   - The deserialized result object if an error did not occur.
     *                      See {@link AppResponse} 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.
     */
    deleteAvatar(ownerName: string, appName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<models.AppResponse>;
    deleteAvatar(ownerName: string, appName: string, callback: ServiceCallback<models.AppResponse>): void;
    deleteAvatar(ownerName: string, appName: string, options: { customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<models.AppResponse>): void;


    /**
     * Return a specific app with the given app name which belongs to the given
     * owner.
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @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<AppResponse>} - The deserialized result object.
     *
     * @reject {Error|ServiceError} - The error object.
     */
    getWithHttpOperationResponse(ownerName: string, appName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<models.AppResponse>>;

    /**
     * Return a specific app with the given app name which belongs to the given
     * owner.
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @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 {AppResponse} - 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.
     *
     *                      {AppResponse} [result]   - The deserialized result object if an error did not occur.
     *                      See {@link AppResponse} 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(ownerName: string, appName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<models.AppResponse>;
    get(ownerName: string, appName: string, callback: ServiceCallback<models.AppResponse>): void;
    get(ownerName: string, appName: string, options: { customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<models.AppResponse>): void;


    /**
     * Partially updates a single app
     *
     * @param {string} appName The name of the application
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {object} [options] Optional Parameters.
     *
     * @param {object} [options.app] The partial data for the app
     *
     * @param {string} [options.app.description] A short text describing the app
     *
     * @param {string} [options.app.displayName] The display name of the app
     *
     * @param {string} [options.app.releaseType] A one-word descriptive release
     * type value that starts with a capital letter but is otherwise lowercase
     *
     * @param {string} [options.app.name] The name of the app used in URLs
     *
     * @param {string} [options.app.iconUrl] The string representation of the URL
     * pointing to the app's icon
     *
     * @param {object} [options.customHeaders] Headers that will be added to the
     * request
     *
     * @returns {Promise} A promise is returned
     *
     * @resolve {HttpOperationResponse<AppResponse>} - The deserialized result object.
     *
     * @reject {Error|ServiceError} - The error object.
     */
    updateWithHttpOperationResponse(appName: string, ownerName: string, options?: { app? : models.AppPatchRequest, customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<models.AppResponse>>;

    /**
     * Partially updates a single app
     *
     * @param {string} appName The name of the application
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {object} [options] Optional Parameters.
     *
     * @param {object} [options.app] The partial data for the app
     *
     * @param {string} [options.app.description] A short text describing the app
     *
     * @param {string} [options.app.displayName] The display name of the app
     *
     * @param {string} [options.app.releaseType] A one-word descriptive release
     * type value that starts with a capital letter but is otherwise lowercase
     *
     * @param {string} [options.app.name] The name of the app used in URLs
     *
     * @param {string} [options.app.iconUrl] The string representation of the URL
     * pointing to the app's icon
     *
     * @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 {AppResponse} - 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.
     *
     *                      {AppResponse} [result]   - The deserialized result object if an error did not occur.
     *                      See {@link AppResponse} 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, ownerName: string, options?: { app? : models.AppPatchRequest, customHeaders? : { [headerName: string]: string; } }): Promise<models.AppResponse>;
    update(appName: string, ownerName: string, callback: ServiceCallback<models.AppResponse>): void;
    update(appName: string, ownerName: string, options: { app? : models.AppPatchRequest, customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<models.AppResponse>): void;


    /**
     * Delete an app
     *
     * @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<null>} - The deserialized result object.
     *
     * @reject {Error|ServiceError} - The error object.
     */
    deleteMethodWithHttpOperationResponse(appName: string, ownerName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<void>>;

    /**
     * Delete an app
     *
     * @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 {null} - 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.
     *
     *                      {null} [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.
     */
    deleteMethod(appName: string, ownerName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<void>;
    deleteMethod(appName: string, ownerName: string, callback: ServiceCallback<void>): void;
    deleteMethod(appName: string, ownerName: string, options: { customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<void>): void;


    /**
     * Creates a new app and returns it to the caller
     *
     * @param {object} app The data for the app
     *
     * @param {string} [app.description] A short text describing the app
     *
     * @param {string} [app.releaseType] A one-word descriptive release-type value
     * that starts with a capital letter but is otherwise lowercase
     *
     * @param {string} app.displayName The descriptive name of the app. This can
     * contain any characters
     *
     * @param {string} [app.name] The name of the app used in URLs
     *
     * @param {string} app.os The OS the app will be running on. Possible values
     * include: 'Android', 'iOS', 'macOS', 'Tizen', 'tvOS', 'Windows', 'Linux'
     *
     * @param {string} app.platform The platform of the app. Possible values
     * include: 'Java', 'Objective-C-Swift', 'UWP', 'Cordova', 'React-Native',
     * 'Xamarin', 'Unity', 'Electron'
     *
     * @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<AppResponse>} - The deserialized result object.
     *
     * @reject {Error|ServiceError} - The error object.
     */
    createWithHttpOperationResponse(app: models.AppRequest, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<models.AppResponse>>;

    /**
     * Creates a new app and returns it to the caller
     *
     * @param {object} app The data for the app
     *
     * @param {string} [app.description] A short text describing the app
     *
     * @param {string} [app.releaseType] A one-word descriptive release-type value
     * that starts with a capital letter but is otherwise lowercase
     *
     * @param {string} app.displayName The descriptive name of the app. This can
     * contain any characters
     *
     * @param {string} [app.name] The name of the app used in URLs
     *
     * @param {string} app.os The OS the app will be running on. Possible values
     * include: 'Android', 'iOS', 'macOS', 'Tizen', 'tvOS', 'Windows', 'Linux'
     *
     * @param {string} app.platform The platform of the app. Possible values
     * include: 'Java', 'Objective-C-Swift', 'UWP', 'Cordova', 'React-Native',
     * 'Xamarin', 'Unity', 'Electron'
     *
     * @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 {AppResponse} - 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.
     *
     *                      {AppResponse} [result]   - The deserialized result object if an error did not occur.
     *                      See {@link AppResponse} 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(app: models.AppRequest, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<models.AppResponse>;
    create(app: models.AppRequest, callback: ServiceCallback<models.AppResponse>): void;
    create(app: models.AppRequest, options: { customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<models.AppResponse>): void;


    /**
     * Returns a list of apps
     *
     * @param {object} [options] Optional Parameters.
     *
     * @param {string} [options.orderBy] The name of the attribute by which to
     * order the response by. By default, apps are in order of creation. All
     * results are ordered in ascending order. Possible values include:
     * 'display_name', 'name'
     *
     * @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(options?: { orderBy? : string, customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<models.AppResponse[]>>;

    /**
     * Returns a list of apps
     *
     * @param {object} [options] Optional Parameters.
     *
     * @param {string} [options.orderBy] The name of the attribute by which to
     * order the response by. By default, apps are in order of creation. All
     * results are ordered in ascending order. Possible values include:
     * 'display_name', 'name'
     *
     * @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(options?: { orderBy? : string, customHeaders? : { [headerName: string]: string; } }): Promise<models.AppResponse[]>;
    list(callback: ServiceCallback<models.AppResponse[]>): void;
    list(options: { orderBy? : string, customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<models.AppResponse[]>): void;
}

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


    /**
     * Returns the details of a single organization
     *
     * @param {string} orgName The organization's name
     *
     * @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<OrganizationResponse>} - The deserialized result object.
     *
     * @reject {Error|ServiceError} - The error object.
     */
    getWithHttpOperationResponse(orgName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<models.OrganizationResponse>>;

    /**
     * Returns the details of a single organization
     *
     * @param {string} orgName The organization's name
     *
     * @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 {OrganizationResponse} - 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.
     *
     *                      {OrganizationResponse} [result]   - The deserialized result object if an error did not occur.
     *                      See {@link OrganizationResponse} 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(orgName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<models.OrganizationResponse>;
    get(orgName: string, callback: ServiceCallback<models.OrganizationResponse>): void;
    get(orgName: string, options: { customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<models.OrganizationResponse>): void;


    /**
     * Returns a list of organizations the requesting user has access to
     *
     * @param {string} orgName The organization's name
     *
     * @param {object} [options] Optional Parameters.
     *
     * @param {string} [options.displayName] The full (friendly) name of the
     * organization.
     *
     * @param {string} [options.name] The name of the organization used in URLs
     *
     * @param {object} [options.customHeaders] Headers that will be added to the
     * request
     *
     * @returns {Promise} A promise is returned
     *
     * @resolve {HttpOperationResponse<OrganizationResponse>} - The deserialized result object.
     *
     * @reject {Error|ServiceError} - The error object.
     */
    updateWithHttpOperationResponse(orgName: string, options?: { displayName? : string, name? : string, customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<models.OrganizationResponse>>;

    /**
     * Returns a list of organizations the requesting user has access to
     *
     * @param {string} orgName The organization's name
     *
     * @param {object} [options] Optional Parameters.
     *
     * @param {string} [options.displayName] The full (friendly) name of the
     * organization.
     *
     * @param {string} [options.name] The name of the organization used in URLs
     *
     * @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 {OrganizationResponse} - 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.
     *
     *                      {OrganizationResponse} [result]   - The deserialized result object if an error did not occur.
     *                      See {@link OrganizationResponse} 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(orgName: string, options?: { displayName? : string, name? : string, customHeaders? : { [headerName: string]: string; } }): Promise<models.OrganizationResponse>;
    update(orgName: string, callback: ServiceCallback<models.OrganizationResponse>): void;
    update(orgName: string, options: { displayName? : string, name? : string, customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<models.OrganizationResponse>): void;


    /**
     * Deletes a single organization
     *
     * @param {string} orgName The organization's name
     *
     * @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<null>} - The deserialized result object.
     *
     * @reject {Error|ServiceError} - The error object.
     */
    deleteMethodWithHttpOperationResponse(orgName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<void>>;

    /**
     * Deletes a single organization
     *
     * @param {string} orgName The organization's name
     *
     * @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 {null} - 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.
     *
     *                      {null} [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.
     */
    deleteMethod(orgName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<void>;
    deleteMethod(orgName: string, callback: ServiceCallback<void>): void;
    deleteMethod(orgName: string, options: { customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<void>): void;


    /**
     * Creates a new organization and returns it to the caller
     *
     * @param {object} [options] Optional Parameters.
     *
     * @param {string} [options.displayName] The display name of the organization
     *
     * @param {string} [options.name] The name of the organization used in URLs
     *
     * @param {object} [options.customHeaders] Headers that will be added to the
     * request
     *
     * @returns {Promise} A promise is returned
     *
     * @resolve {HttpOperationResponse<OrganizationResponse>} - The deserialized result object.
     *
     * @reject {Error|ServiceError} - The error object.
     */
    createOrUpdateWithHttpOperationResponse(options?: { displayName? : string, name? : string, customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<models.OrganizationResponse>>;

    /**
     * Creates a new organization and returns it to the caller
     *
     * @param {object} [options] Optional Parameters.
     *
     * @param {string} [options.displayName] The display name of the organization
     *
     * @param {string} [options.name] The name of the organization used in URLs
     *
     * @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 {OrganizationResponse} - 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.
     *
     *                      {OrganizationResponse} [result]   - The deserialized result object if an error did not occur.
     *                      See {@link OrganizationResponse} 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.
     */
    createOrUpdate(options?: { displayName? : string, name? : string, customHeaders? : { [headerName: string]: string; } }): Promise<models.OrganizationResponse>;
    createOrUpdate(callback: ServiceCallback<models.OrganizationResponse>): void;
    createOrUpdate(options: { displayName? : string, name? : string, customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<models.OrganizationResponse>): void;


    /**
     * Returns a list of organizations the requesting user has access to
     *
     * @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(options?: { customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<models.ListOKResponseItem[]>>;

    /**
     * Returns a list of organizations the requesting user has access to
     *
     * @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(options?: { customHeaders? : { [headerName: string]: string; } }): Promise<models.ListOKResponseItem[]>;
    list(callback: ServiceCallback<models.ListOKResponseItem[]>): void;
    list(options: { customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<models.ListOKResponseItem[]>): void;
}

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


    /**
     * Aggregated Billing Information for a given Organization.
     *
     * @param {string} orgName The name of the Organization
     *
     * @param {object} [options] Optional Parameters.
     *
     * @param {string} [options.service] Type of service that should be included in
     * the Billing Information. Possible values include: 'Test', 'Build'
     *
     * @param {string} [options.period] Type of period that should be included in
     * the Billing Information. Possible values include: 'Previous', 'Current',
     * 'Next'
     *
     * @param {boolean} [options.showOriginalPlans] Controls whether the API should
     * show the original plan when Azure Subscription is not enabled
     *
     * @param {object} [options.customHeaders] Headers that will be added to the
     * request
     *
     * @returns {Promise} A promise is returned
     *
     * @resolve {HttpOperationResponse<AggregatedBillingInformation>} - The deserialized result object.
     *
     * @reject {Error|ServiceError} - The error object.
     */
    getForOrgWithHttpOperationResponse(orgName: string, options?: { service? : string, period? : string, showOriginalPlans? : boolean, customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<models.AggregatedBillingInformation>>;

    /**
     * Aggregated Billing Information for a given Organization.
     *
     * @param {string} orgName The name of the Organization
     *
     * @param {object} [options] Optional Parameters.
     *
     * @param {string} [options.service] Type of service that should be included in
     * the Billing Information. Possible values include: 'Test', 'Build'
     *
     * @param {string} [options.period] Type of period that should be included in
     * the Billing Information. Possible values include: 'Previous', 'Current',
     * 'Next'
     *
     * @param {boolean} [options.showOriginalPlans] Controls whether the API should
     * show the original plan when Azure Subscription is not enabled
     *
     * @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 {AggregatedBillingInformation} - 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.
     *
     *                      {AggregatedBillingInformation} [result]   - The deserialized result object if an error did not occur.
     *                      See {@link AggregatedBillingInformation} 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.
     */
    getForOrg(orgName: string, options?: { service? : string, period? : string, showOriginalPlans? : boolean, customHeaders? : { [headerName: string]: string; } }): Promise<models.AggregatedBillingInformation>;
    getForOrg(orgName: string, callback: ServiceCallback<models.AggregatedBillingInformation>): void;
    getForOrg(orgName: string, options: { service? : string, period? : string, showOriginalPlans? : boolean, customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<models.AggregatedBillingInformation>): void;


    /**
     * Aggregated Billing Information for owner of a given app.
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @param {object} [options] Optional Parameters.
     *
     * @param {string} [options.service] Type of service that should be included in
     * the Billing Information. Possible values include: 'Test', 'Build'
     *
     * @param {string} [options.period] Type of period that should be included in
     * the Billing Information. Possible values include: 'Previous', 'Current',
     * 'Next'
     *
     * @param {boolean} [options.showOriginalPlans] Controls whether the API should
     * show the original plan when Azure Subscription is not enabled
     *
     * @param {object} [options.customHeaders] Headers that will be added to the
     * request
     *
     * @returns {Promise} A promise is returned
     *
     * @resolve {HttpOperationResponse<AggregatedBillingInformation>} - The deserialized result object.
     *
     * @reject {Error|ServiceError} - The error object.
     */
    getByAppWithHttpOperationResponse(ownerName: string, appName: string, options?: { service? : string, period? : string, showOriginalPlans? : boolean, customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<models.AggregatedBillingInformation>>;

    /**
     * Aggregated Billing Information for owner of a given app.
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @param {object} [options] Optional Parameters.
     *
     * @param {string} [options.service] Type of service that should be included in
     * the Billing Information. Possible values include: 'Test', 'Build'
     *
     * @param {string} [options.period] Type of period that should be included in
     * the Billing Information. Possible values include: 'Previous', 'Current',
     * 'Next'
     *
     * @param {boolean} [options.showOriginalPlans] Controls whether the API should
     * show the original plan when Azure Subscription is not enabled
     *
     * @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 {AggregatedBillingInformation} - 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.
     *
     *                      {AggregatedBillingInformation} [result]   - The deserialized result object if an error did not occur.
     *                      See {@link AggregatedBillingInformation} 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.
     */
    getByApp(ownerName: string, appName: string, options?: { service? : string, period? : string, showOriginalPlans? : boolean, customHeaders? : { [headerName: string]: string; } }): Promise<models.AggregatedBillingInformation>;
    getByApp(ownerName: string, appName: string, callback: ServiceCallback<models.AggregatedBillingInformation>): void;
    getByApp(ownerName: string, appName: string, options: { service? : string, period? : string, showOriginalPlans? : boolean, customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<models.AggregatedBillingInformation>): void;
}

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


    /**
     * Returns all invitations sent by the caller
     *
     * @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.
     */
    sentWithHttpOperationResponse(options?: { customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<models.GDPRInvitationDetailResponse[]>>;

    /**
     * Returns all invitations sent by the caller
     *
     * @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.
     */
    sent(options?: { customHeaders? : { [headerName: string]: string; } }): Promise<models.GDPRInvitationDetailResponse[]>;
    sent(callback: ServiceCallback<models.GDPRInvitationDetailResponse[]>): void;
    sent(options: { customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<models.GDPRInvitationDetailResponse[]>): void;
}

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


    /**
     * Gets the Xcode versions available to this app
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @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.
     */
    listXcodeVersionsWithHttpOperationResponse(ownerName: string, appName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<models.XcodeVersion[]>>;

    /**
     * Gets the Xcode versions available to this app
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @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.
     */
    listXcodeVersions(ownerName: string, appName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<models.XcodeVersion[]>;
    listXcodeVersions(ownerName: string, appName: string, callback: ServiceCallback<models.XcodeVersion[]>): void;
    listXcodeVersions(ownerName: string, appName: string, options: { customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<models.XcodeVersion[]>): void;


    /**
     * Gets the Xamarin SDK bundles available to this app
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @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.
     */
    listXamarinSDKBundlesWithHttpOperationResponse(ownerName: string, appName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<models.XamarinSDKBundle[]>>;

    /**
     * Gets the Xamarin SDK bundles available to this app
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @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.
     */
    listXamarinSDKBundles(ownerName: string, appName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<models.XamarinSDKBundle[]>;
    listXamarinSDKBundles(ownerName: string, appName: string, callback: ServiceCallback<models.XamarinSDKBundle[]>): void;
    listXamarinSDKBundles(ownerName: string, appName: string, options: { customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<models.XamarinSDKBundle[]>): void;


    /**
     * Gets the Mono versions available to this app
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @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.
     */
    listMonoVersionsWithHttpOperationResponse(ownerName: string, appName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<models.MonoVersion[]>>;

    /**
     * Gets the Mono versions available to this app
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @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.
     */
    listMonoVersions(ownerName: string, appName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<models.MonoVersion[]>;
    listMonoVersions(ownerName: string, appName: string, callback: ServiceCallback<models.MonoVersion[]>): void;
    listMonoVersions(ownerName: string, appName: string, options: { customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<models.MonoVersion[]>): void;


    /**
     * Get the build log
     *
     * @param {number} buildId The build ID
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @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<BuildLog>} - The deserialized result object.
     *
     * @reject {Error|ServiceError} - The error object.
     */
    getLogWithHttpOperationResponse(buildId: number, ownerName: string, appName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<models.BuildLog>>;

    /**
     * Get the build log
     *
     * @param {number} buildId The build ID
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @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 {BuildLog} - 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.
     *
     *                      {BuildLog} [result]   - The deserialized result object if an error did not occur.
     *                      See {@link BuildLog} 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.
     */
    getLog(buildId: number, ownerName: string, appName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<models.BuildLog>;
    getLog(buildId: number, ownerName: string, appName: string, callback: ServiceCallback<models.BuildLog>): void;
    getLog(buildId: number, ownerName: string, appName: string, options: { customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<models.BuildLog>): void;


    /**
     * Gets the download URI
     *
     * @param {number} buildId The build ID
     *
     * @param {string} downloadType The download type. Possible values include:
     * 'build', 'symbols', 'logs'
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @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<DownloadContainer>} - The deserialized result object.
     *
     * @reject {Error|ServiceError} - The error object.
     */
    getDownloadUriWithHttpOperationResponse(buildId: number, downloadType: string, ownerName: string, appName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<models.DownloadContainer>>;

    /**
     * Gets the download URI
     *
     * @param {number} buildId The build ID
     *
     * @param {string} downloadType The download type. Possible values include:
     * 'build', 'symbols', 'logs'
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @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 {DownloadContainer} - 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.
     *
     *                      {DownloadContainer} [result]   - The deserialized result object if an error did not occur.
     *                      See {@link DownloadContainer} 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.
     */
    getDownloadUri(buildId: number, downloadType: string, ownerName: string, appName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<models.DownloadContainer>;
    getDownloadUri(buildId: number, downloadType: string, ownerName: string, appName: string, callback: ServiceCallback<models.DownloadContainer>): void;
    getDownloadUri(buildId: number, downloadType: string, ownerName: string, appName: string, options: { customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<models.DownloadContainer>): void;


    /**
     * Distribute a build
     *
     * @param {number} buildId The build ID
     *
     * @param {object} distributeInfo The distribution details
     *
     * @param {array} [distributeInfo.destinations] Array of objects {id:string,
     * type:string} with "id" being the distribution group ID, store ID, or tester
     * email, and "type" being "group", "store", or "tester"
     *
     * @param {string} [distributeInfo.releaseNotes] The release notes
     *
     * @param {boolean} [distributeInfo.mandatoryUpdate]
     *
     * @param {boolean} [distributeInfo.notifyTesters]
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @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<DistributionResponse>} - The deserialized result object.
     *
     * @reject {Error|ServiceError} - The error object.
     */
    distributeWithHttpOperationResponse(buildId: number, distributeInfo: models.DistributionRequest, ownerName: string, appName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<models.DistributionResponse>>;

    /**
     * Distribute a build
     *
     * @param {number} buildId The build ID
     *
     * @param {object} distributeInfo The distribution details
     *
     * @param {array} [distributeInfo.destinations] Array of objects {id:string,
     * type:string} with "id" being the distribution group ID, store ID, or tester
     * email, and "type" being "group", "store", or "tester"
     *
     * @param {string} [distributeInfo.releaseNotes] The release notes
     *
     * @param {boolean} [distributeInfo.mandatoryUpdate]
     *
     * @param {boolean} [distributeInfo.notifyTesters]
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @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 {DistributionResponse} - 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.
     *
     *                      {DistributionResponse} [result]   - The deserialized result object if an error did not occur.
     *                      See {@link DistributionResponse} 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.
     */
    distribute(buildId: number, distributeInfo: models.DistributionRequest, ownerName: string, appName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<models.DistributionResponse>;
    distribute(buildId: number, distributeInfo: models.DistributionRequest, ownerName: string, appName: string, callback: ServiceCallback<models.DistributionResponse>): void;
    distribute(buildId: number, distributeInfo: models.DistributionRequest, ownerName: string, appName: string, options: { customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<models.DistributionResponse>): void;


    /**
     * Returns the build detail for the given build ID
     *
     * @param {number} buildId The build ID
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @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<Build>} - The deserialized result object.
     *
     * @reject {Error|ServiceError} - The error object.
     */
    getWithHttpOperationResponse(buildId: number, ownerName: string, appName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<models.Build>>;

    /**
     * Returns the build detail for the given build ID
     *
     * @param {number} buildId The build ID
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @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 {Build} - 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.
     *
     *                      {Build} [result]   - The deserialized result object if an error did not occur.
     *                      See {@link Build} 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(buildId: number, ownerName: string, appName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<models.Build>;
    get(buildId: number, ownerName: string, appName: string, callback: ServiceCallback<models.Build>): void;
    get(buildId: number, ownerName: string, appName: string, options: { customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<models.Build>): void;


    /**
     * Cancels a build
     *
     * @param {number} buildId The build ID
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @param {object} [options] Optional Parameters.
     *
     * @param {string} [options.status] The build status; used to cancel builds.
     * Possible values include: 'cancelling'
     *
     * @param {object} [options.customHeaders] Headers that will be added to the
     * request
     *
     * @returns {Promise} A promise is returned
     *
     * @resolve {HttpOperationResponse<Build>} - The deserialized result object.
     *
     * @reject {Error|ServiceError} - The error object.
     */
    updateWithHttpOperationResponse(buildId: number, ownerName: string, appName: string, options?: { status? : string, customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<models.Build>>;

    /**
     * Cancels a build
     *
     * @param {number} buildId The build ID
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @param {object} [options] Optional Parameters.
     *
     * @param {string} [options.status] The build status; used to cancel builds.
     * Possible values include: 'cancelling'
     *
     * @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 {Build} - 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.
     *
     *                      {Build} [result]   - The deserialized result object if an error did not occur.
     *                      See {@link Build} 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(buildId: number, ownerName: string, appName: string, options?: { status? : string, customHeaders? : { [headerName: string]: string; } }): Promise<models.Build>;
    update(buildId: number, ownerName: string, appName: string, callback: ServiceCallback<models.Build>): void;
    update(buildId: number, ownerName: string, appName: string, options: { status? : string, customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<models.Build>): void;


    /**
     * Application specific build service status
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @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<BuildServiceStatus>} - The deserialized result object.
     *
     * @reject {Error|ServiceError} - The error object.
     */
    getStatusByAppIdWithHttpOperationResponse(ownerName: string, appName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<models.BuildServiceStatus>>;

    /**
     * Application specific build service status
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @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 {BuildServiceStatus} - 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.
     *
     *                      {BuildServiceStatus} [result]   - The deserialized result object if an error did not occur.
     *                      See {@link BuildServiceStatus} 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.
     */
    getStatusByAppId(ownerName: string, appName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<models.BuildServiceStatus>;
    getStatusByAppId(ownerName: string, appName: string, callback: ServiceCallback<models.BuildServiceStatus>): void;
    getStatusByAppId(ownerName: string, appName: string, options: { customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<models.BuildServiceStatus>): void;


    /**
     * Returns the projects in the repository for the branch, for all toolsets
     *
     * @param {string} branch The branch name
     *
     * @param {string} os The desired OS for the project scan; normally the same as
     * the app OS. Possible values include: 'iOS', 'Android', 'Windows', 'macOS'
     *
     * @param {string} platform The desired platform for the project scan. Possible
     * values include: 'Objective-C-Swift', 'React-Native', 'Xamarin', 'Java',
     * 'UWP'
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @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<ToolsetProjects>} - The deserialized result object.
     *
     * @reject {Error|ServiceError} - The error object.
     */
    listToolsetProjectsWithHttpOperationResponse(branch: string, os: string, platform: string, ownerName: string, appName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<models.ToolsetProjects>>;

    /**
     * Returns the projects in the repository for the branch, for all toolsets
     *
     * @param {string} branch The branch name
     *
     * @param {string} os The desired OS for the project scan; normally the same as
     * the app OS. Possible values include: 'iOS', 'Android', 'Windows', 'macOS'
     *
     * @param {string} platform The desired platform for the project scan. Possible
     * values include: 'Objective-C-Swift', 'React-Native', 'Xamarin', 'Java',
     * 'UWP'
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @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 {ToolsetProjects} - 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.
     *
     *                      {ToolsetProjects} [result]   - The deserialized result object if an error did not occur.
     *                      See {@link ToolsetProjects} 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.
     */
    listToolsetProjects(branch: string, os: string, platform: string, ownerName: string, appName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<models.ToolsetProjects>;
    listToolsetProjects(branch: string, os: string, platform: string, ownerName: string, appName: string, callback: ServiceCallback<models.ToolsetProjects>): void;
    listToolsetProjects(branch: string, os: string, platform: string, ownerName: string, appName: string, options: { customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<models.ToolsetProjects>): void;


    /**
     * Returns the list of builds for the branch
     *
     * @param {string} branch The branch name
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @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.
     */
    listByBranchWithHttpOperationResponse(branch: string, ownerName: string, appName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<models.Build[]>>;

    /**
     * Returns the list of builds for the branch
     *
     * @param {string} branch The branch name
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @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.
     */
    listByBranch(branch: string, ownerName: string, appName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<models.Build[]>;
    listByBranch(branch: string, ownerName: string, appName: string, callback: ServiceCallback<models.Build[]>): void;
    listByBranch(branch: string, ownerName: string, appName: string, options: { customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<models.Build[]>): void;


    /**
     * Create a build
     *
     * @param {string} branch The branch name
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @param {object} [options] Optional Parameters.
     *
     * @param {string} [options.sourceVersion] Version to build which represents
     * the full Git commit reference
     *
     * @param {boolean} [options.debug] Run build in debug mode
     *
     * @param {object} [options.customHeaders] Headers that will be added to the
     * request
     *
     * @returns {Promise} A promise is returned
     *
     * @resolve {HttpOperationResponse<Build>} - The deserialized result object.
     *
     * @reject {Error|ServiceError} - The error object.
     */
    createWithHttpOperationResponse(branch: string, ownerName: string, appName: string, options?: { sourceVersion? : string, debug? : boolean, customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<models.Build>>;

    /**
     * Create a build
     *
     * @param {string} branch The branch name
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @param {object} [options] Optional Parameters.
     *
     * @param {string} [options.sourceVersion] Version to build which represents
     * the full Git commit reference
     *
     * @param {boolean} [options.debug] Run build in debug mode
     *
     * @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 {Build} - 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.
     *
     *                      {Build} [result]   - The deserialized result object if an error did not occur.
     *                      See {@link Build} 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(branch: string, ownerName: string, appName: string, options?: { sourceVersion? : string, debug? : boolean, customHeaders? : { [headerName: string]: string; } }): Promise<models.Build>;
    create(branch: string, ownerName: string, appName: string, callback: ServiceCallback<models.Build>): void;
    create(branch: string, ownerName: string, appName: string, options: { sourceVersion? : string, debug? : boolean, customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<models.Build>): void;


    /**
     * Returns the list of Git branches for this application
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @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.
     */
    listBranchesWithHttpOperationResponse(ownerName: string, appName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<models.BranchStatus[]>>;

    /**
     * Returns the list of Git branches for this application
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @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.
     */
    listBranches(ownerName: string, appName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<models.BranchStatus[]>;
    listBranches(ownerName: string, appName: string, callback: ServiceCallback<models.BranchStatus[]>): void;
    listBranches(ownerName: string, appName: string, options: { customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<models.BranchStatus[]>): void;
}

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


    /**
     * Get web hooks configured for a particular app
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @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<AlertWebhookListResult>} - The deserialized result object.
     *
     * @reject {Error|ServiceError} - The error object.
     */
    listWithHttpOperationResponse(ownerName: string, appName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<models.AlertWebhookListResult>>;

    /**
     * Get web hooks configured for a particular app
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @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 {AlertWebhookListResult} - 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.
     *
     *                      {AlertWebhookListResult} [result]   - The deserialized result object if an error did not occur.
     *                      See {@link AlertWebhookListResult} 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(ownerName: string, appName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<models.AlertWebhookListResult>;
    list(ownerName: string, appName: string, callback: ServiceCallback<models.AlertWebhookListResult>): void;
    list(ownerName: string, appName: string, options: { customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<models.AlertWebhookListResult>): void;
}

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


    /**
     * @summary Available for UWP apps only.
     *
     * Gets a list of application versions. Available for UWP apps only.
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @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(ownerName: string, appName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<models.AppVersion[]>>;

    /**
     * @summary Available for UWP apps only.
     *
     * Gets a list of application versions. Available for UWP apps only.
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @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(ownerName: string, appName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<models.AppVersion[]>;
    getAppVersions(ownerName: string, appName: string, callback: ServiceCallback<models.AppVersion[]>): void;
    getAppVersions(ownerName: string, appName: string, options: { customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<models.AppVersion[]>): void;


    /**
     * @summary Gets the state of HockeyApp Crash forwarding for SxS apps
     *
     * Gets the state of HockeyApp Crash forwarding for SxS apps
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @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(ownerName: string, appName: 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} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @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(ownerName: string, appName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<models.HockeyAppCrashForwardingInfo>;
    getHockeyAppCrashForwardingStatus(ownerName: string, appName: string, callback: ServiceCallback<models.HockeyAppCrashForwardingInfo>): void;
    getHockeyAppCrashForwardingStatus(ownerName: string, appName: 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} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @param {object} [options] Optional Parameters.
     *
     * @param {boolean} [options.enableForwarding]
     *
     * @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(ownerName: string, appName: string, options?: { enableForwarding? : boolean, 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} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @param {object} [options] Optional Parameters.
     *
     * @param {boolean} [options.enableForwarding]
     *
     * @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(ownerName: string, appName: string, options?: { enableForwarding? : boolean, customHeaders? : { [headerName: string]: string; } }): Promise<models.HockeyAppCrashForwardingInfo>;
    updateHockeyAppCrashForwarding(ownerName: string, appName: string, callback: ServiceCallback<models.HockeyAppCrashForwardingInfo>): void;
    updateHockeyAppCrashForwarding(ownerName: string, appName: string, options: { enableForwarding? : boolean, customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<models.HockeyAppCrashForwardingInfo>): void;


    /**
     * @summary Available for UWP apps only.
     *
     * Gets whether the application has any crashes. Available for UWP apps only.
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @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(ownerName: string, appName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<models.AppCrashesInfo>>;

    /**
     * @summary Available for UWP apps only.
     *
     * Gets whether the application has any crashes. Available for UWP apps only.
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @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(ownerName: string, appName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<models.AppCrashesInfo>;
    getAppCrashesInfo(ownerName: string, appName: string, callback: ServiceCallback<models.AppCrashesInfo>): void;
    getAppCrashesInfo(ownerName: string, appName: string, options: { customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<models.AppCrashesInfo>): void;


    /**
     * Get session logs by crash ID
     *
     * @param {string} crashId The id of the a crash
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @param {object} [options] Optional Parameters.
     *
     * @param {date} [options.date] Date of data requested
     *
     * @param {object} [options.customHeaders] Headers that will be added to the
     * request
     *
     * @returns {Promise} A promise is returned
     *
     * @resolve {HttpOperationResponse<GenericLogContainer>} - The deserialized result object.
     *
     * @reject {Error|ServiceError} - The error object.
     */
    listSessionLogsWithHttpOperationResponse(crashId: string, ownerName: string, appName: string, options?: { date? : Date, customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<models.GenericLogContainer>>;

    /**
     * Get session logs by crash ID
     *
     * @param {string} crashId The id of the a crash
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @param {object} [options] Optional Parameters.
     *
     * @param {date} [options.date] Date of data requested
     *
     * @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 {GenericLogContainer} - 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.
     *
     *                      {GenericLogContainer} [result]   - The deserialized result object if an error did not occur.
     *                      See {@link GenericLogContainer} 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.
     */
    listSessionLogs(crashId: string, ownerName: string, appName: string, options?: { date? : Date, customHeaders? : { [headerName: string]: string; } }): Promise<models.GenericLogContainer>;
    listSessionLogs(crashId: string, ownerName: string, appName: string, callback: ServiceCallback<models.GenericLogContainer>): void;
    listSessionLogs(crashId: string, ownerName: string, appName: string, options: { date? : Date, customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<models.GenericLogContainer>): void;


    /**
     * @summary Available for UWP apps only.
     *
     * Gets content of the text attachment. Available for UWP apps only.
     *
     * @param {string} crashId id of a specific crash
     *
     * @param {string} attachmentId attachment id
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @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(crashId: string, attachmentId: string, ownerName: string, appName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<string>>;

    /**
     * @summary Available for UWP apps only.
     *
     * Gets content of the text attachment. Available for UWP apps only.
     *
     * @param {string} crashId id of a specific crash
     *
     * @param {string} attachmentId attachment id
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @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(crashId: string, attachmentId: string, ownerName: string, appName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<string>;
    getCrashTextAttachmentContent(crashId: string, attachmentId: string, ownerName: string, appName: string, callback: ServiceCallback<string>): void;
    getCrashTextAttachmentContent(crashId: string, attachmentId: string, ownerName: string, appName: string, options: { customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<string>): void;


    /**
     * @summary Available for UWP apps only.
     *
     * Gets the URI location to download crash attachment. Available for UWP apps
     * only.
     *
     * @param {string} crashId id of a specific crash
     *
     * @param {string} attachmentId attachment id
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @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(crashId: string, attachmentId: string, ownerName: string, appName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<models.CrashAttachmentLocation>>;

    /**
     * @summary Available for UWP apps only.
     *
     * Gets the URI location to download crash attachment. Available for UWP apps
     * only.
     *
     * @param {string} crashId id of a specific crash
     *
     * @param {string} attachmentId attachment id
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @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(crashId: string, attachmentId: string, ownerName: string, appName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<models.CrashAttachmentLocation>;
    getCrashAttachmentLocation(crashId: string, attachmentId: string, ownerName: string, appName: string, callback: ServiceCallback<models.CrashAttachmentLocation>): void;
    getCrashAttachmentLocation(crashId: string, attachmentId: string, ownerName: string, appName: string, options: { customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<models.CrashAttachmentLocation>): void;


    /**
     * @summary Available for UWP apps only.
     *
     * Gets all attachments for a specific crash. Available for UWP apps only.
     *
     * @param {string} crashId id of a specific crash
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @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(crashId: string, ownerName: string, appName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<models.CrashAttachment[]>>;

    /**
     * @summary Available for UWP apps only.
     *
     * Gets all attachments for a specific crash. Available for UWP apps only.
     *
     * @param {string} crashId id of a specific crash
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @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(crashId: string, ownerName: string, appName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<models.CrashAttachment[]>;
    listAttachments(crashId: string, ownerName: string, appName: string, callback: ServiceCallback<models.CrashAttachment[]>): void;
    listAttachments(crashId: string, ownerName: string, appName: string, options: { customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<models.CrashAttachment[]>): void;


    /**
     * @summary Available for UWP apps only.
     *
     * Gets a stacktrace for a specific crash. Available for UWP apps only.
     *
     * @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 {string} appName The name of the application
     *
     * @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(crashGroupId: string, crashId: string, ownerName: string, appName: string, options?: { groupingOnly? : boolean, customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<models.Stacktrace>>;

    /**
     * @summary Available for UWP apps only.
     *
     * Gets a stacktrace for a specific crash. Available for UWP apps only.
     *
     * @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 {string} appName The name of the application
     *
     * @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(crashGroupId: string, crashId: string, ownerName: string, appName: string, options?: { groupingOnly? : boolean, customHeaders? : { [headerName: string]: string; } }): Promise<models.Stacktrace>;
    getStacktrace(crashGroupId: string, crashId: string, ownerName: string, appName: string, callback: ServiceCallback<models.Stacktrace>): void;
    getStacktrace(crashGroupId: string, crashId: string, ownerName: string, appName: string, options: { groupingOnly? : boolean, customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<models.Stacktrace>): void;


    /**
     * @summary Available for UWP apps only.
     *
     * Gets the URI location to download json of a specific crash. Available for
     * UWP apps only.
     *
     * @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 {string} appName The name of the application
     *
     * @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(crashGroupId: string, crashId: string, ownerName: string, appName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<models.CrashRawLocation>>;

    /**
     * @summary Available for UWP apps only.
     *
     * Gets the URI location to download json of a specific crash. Available for
     * UWP apps only.
     *
     * @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 {string} appName The name of the application
     *
     * @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(crashGroupId: string, crashId: string, ownerName: string, appName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<models.CrashRawLocation>;
    getRawCrashLocation(crashGroupId: string, crashId: string, ownerName: string, appName: string, callback: ServiceCallback<models.CrashRawLocation>): void;
    getRawCrashLocation(crashGroupId: string, crashId: string, ownerName: string, appName: string, options: { customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<models.CrashRawLocation>): void;


    /**
     * @summary Available for UWP apps only.
     *
     * Gets the native log of a specific crash as a text attachment. Available for
     * UWP apps only.
     *
     * @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 {string} appName The name of the application
     *
     * @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(crashGroupId: string, crashId: string, ownerName: string, appName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<string>>;

    /**
     * @summary Available for UWP apps only.
     *
     * Gets the native log of a specific crash as a text attachment. Available for
     * UWP apps only.
     *
     * @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 {string} appName The name of the application
     *
     * @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(crashGroupId: string, crashId: string, ownerName: string, appName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<string>;
    getNativeCrashDownload(crashGroupId: string, crashId: string, ownerName: string, appName: string, callback: ServiceCallback<string>): void;
    getNativeCrashDownload(crashGroupId: string, crashId: string, ownerName: string, appName: string, options: { customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<string>): void;


    /**
     * @summary Available for UWP apps only.
     *
     * Gets the native log of a specific crash. Available for UWP apps only.
     *
     * @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 {string} appName The name of the application
     *
     * @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(crashGroupId: string, crashId: string, ownerName: string, appName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<string>>;

    /**
     * @summary Available for UWP apps only.
     *
     * Gets the native log of a specific crash. Available for UWP apps only.
     *
     * @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 {string} appName The name of the application
     *
     * @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(crashGroupId: string, crashId: string, ownerName: string, appName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<string>;
    getNativeCrash(crashGroupId: string, crashId: string, ownerName: string, appName: string, callback: ServiceCallback<string>): void;
    getNativeCrash(crashGroupId: string, crashId: string, ownerName: string, appName: string, options: { customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<string>): void;


    /**
     * @summary Available for UWP apps only.
     *
     * Gets a specific crash for an app. Available for UWP apps only.
     *
     * @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 {string} appName The name of the application
     *
     * @param {object} [options] Optional Parameters.
     *
     * @param {boolean} [options.includeReport] true if the crash should include
     * the raw crash report. Default is false
     *
     * @param {boolean} [options.includeLog] true if the crash should include the
     * custom log report. Default is false
     *
     * @param {boolean} [options.includeDetails] true if the crash should include
     * in depth crash details
     *
     * @param {boolean} [options.includeStacktrace] true if the crash should
     * include the stacktrace information
     *
     * @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<Crash>} - The deserialized result object.
     *
     * @reject {Error|ServiceError} - The error object.
     */
    getWithHttpOperationResponse(crashGroupId: string, crashId: string, ownerName: string, appName: string, options?: { includeReport? : boolean, includeLog? : boolean, includeDetails? : boolean, includeStacktrace? : boolean, groupingOnly? : boolean, customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<models.Crash>>;

    /**
     * @summary Available for UWP apps only.
     *
     * Gets a specific crash for an app. Available for UWP apps only.
     *
     * @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 {string} appName The name of the application
     *
     * @param {object} [options] Optional Parameters.
     *
     * @param {boolean} [options.includeReport] true if the crash should include
     * the raw crash report. Default is false
     *
     * @param {boolean} [options.includeLog] true if the crash should include the
     * custom log report. Default is false
     *
     * @param {boolean} [options.includeDetails] true if the crash should include
     * in depth crash details
     *
     * @param {boolean} [options.includeStacktrace] true if the crash should
     * include the stacktrace information
     *
     * @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 {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(crashGroupId: string, crashId: string, ownerName: string, appName: string, options?: { includeReport? : boolean, includeLog? : boolean, includeDetails? : boolean, includeStacktrace? : boolean, groupingOnly? : boolean, customHeaders? : { [headerName: string]: string; } }): Promise<models.Crash>;
    get(crashGroupId: string, crashId: string, ownerName: string, appName: string, callback: ServiceCallback<models.Crash>): void;
    get(crashGroupId: string, crashId: string, ownerName: string, appName: string, options: { includeReport? : boolean, includeLog? : boolean, includeDetails? : boolean, includeStacktrace? : boolean, groupingOnly? : boolean, customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<models.Crash>): void;


    /**
     * @summary Available for UWP apps only.
     *
     * Delete a specific crash and related attachments and blobs for an app.
     * Available for UWP apps only.
     *
     * @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 {string} appName The name of the application
     *
     * @param {object} [options] Optional Parameters.
     *
     * @param {boolean} [options.retentionDelete] true in that case if the method
     * should skip update counts
     *
     * @param {object} [options.customHeaders] Headers that will be added to the
     * request
     *
     * @returns {Promise} A promise is returned
     *
     * @resolve {HttpOperationResponse<CrashDeleteCounter>} - The deserialized result object.
     *
     * @reject {Error|ServiceError} - The error object.
     */
    deleteMethodWithHttpOperationResponse(crashGroupId: string, crashId: string, ownerName: string, appName: string, options?: { retentionDelete? : boolean, customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<models.CrashDeleteCounter>>;

    /**
     * @summary Available for UWP apps only.
     *
     * Delete a specific crash and related attachments and blobs for an app.
     * Available for UWP apps only.
     *
     * @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 {string} appName The name of the application
     *
     * @param {object} [options] Optional Parameters.
     *
     * @param {boolean} [options.retentionDelete] true in that case if the method
     * should skip update counts
     *
     * @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 {CrashDeleteCounter} - 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.
     *
     *                      {CrashDeleteCounter} [result]   - The deserialized result object if an error did not occur.
     *                      See {@link CrashDeleteCounter} 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(crashGroupId: string, crashId: string, ownerName: string, appName: string, options?: { retentionDelete? : boolean, customHeaders? : { [headerName: string]: string; } }): Promise<models.CrashDeleteCounter>;
    deleteMethod(crashGroupId: string, crashId: string, ownerName: string, appName: string, callback: ServiceCallback<models.CrashDeleteCounter>): void;
    deleteMethod(crashGroupId: string, crashId: string, ownerName: string, appName: string, options: { retentionDelete? : boolean, customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<models.CrashDeleteCounter>): void;


    /**
     * @summary Available for UWP apps only.
     *
     * Gets all crashes of a group. Available for UWP apps only.
     *
     * @param {string} crashGroupId id of a specific group
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @param {object} [options] Optional Parameters.
     *
     * @param {boolean} [options.includeReport] true if the crash should include
     * the raw crash report. Default is false
     *
     * @param {boolean} [options.includeLog] true if the crash should include the
     * custom log report. Default is false
     *
     * @param {date} [options.dateFrom]
     *
     * @param {date} [options.dateTo]
     *
     * @param {string} [options.appVersion] version
     *
     * @param {string} [options.errorType] Possible values include:
     * 'CrashingErrors', 'HandledErrors'
     *
     * @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(crashGroupId: string, ownerName: string, appName: string, options?: { includeReport? : boolean, includeLog? : boolean, dateFrom? : Date, dateTo? : Date, appVersion? : string, errorType? : string, customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<models.Crash[]>>;

    /**
     * @summary Available for UWP apps only.
     *
     * Gets all crashes of a group. Available for UWP apps only.
     *
     * @param {string} crashGroupId id of a specific group
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @param {object} [options] Optional Parameters.
     *
     * @param {boolean} [options.includeReport] true if the crash should include
     * the raw crash report. Default is false
     *
     * @param {boolean} [options.includeLog] true if the crash should include the
     * custom log report. Default is false
     *
     * @param {date} [options.dateFrom]
     *
     * @param {date} [options.dateTo]
     *
     * @param {string} [options.appVersion] version
     *
     * @param {string} [options.errorType] Possible values include:
     * 'CrashingErrors', 'HandledErrors'
     *
     * @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(crashGroupId: string, ownerName: string, appName: string, options?: { includeReport? : boolean, includeLog? : boolean, dateFrom? : Date, dateTo? : Date, appVersion? : string, errorType? : string, customHeaders? : { [headerName: string]: string; } }): Promise<models.Crash[]>;
    list(crashGroupId: string, ownerName: string, appName: string, callback: ServiceCallback<models.Crash[]>): void;
    list(crashGroupId: string, ownerName: string, appName: string, options: { includeReport? : boolean, includeLog? : boolean, dateFrom? : Date, dateTo? : Date, appVersion? : string, errorType? : string, customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<models.Crash[]>): void;
}

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


    /**
     * Gets a device set belonging to the user
     *
     * @param {uuid} id The UUID of the device set
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @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<DeviceSet>} - The deserialized result object.
     *
     * @reject {Error|ServiceError} - The error object.
     */
    getDeviceSetOfUserWithHttpOperationResponse(id: string, ownerName: string, appName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<models.DeviceSet>>;

    /**
     * Gets a device set belonging to the user
     *
     * @param {uuid} id The UUID of the device set
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @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 {DeviceSet} - 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.
     *
     *                      {DeviceSet} [result]   - The deserialized result object if an error did not occur.
     *                      See {@link DeviceSet} 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.
     */
    getDeviceSetOfUser(id: string, ownerName: string, appName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<models.DeviceSet>;
    getDeviceSetOfUser(id: string, ownerName: string, appName: string, callback: ServiceCallback<models.DeviceSet>): void;
    getDeviceSetOfUser(id: string, ownerName: string, appName: string, options: { customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<models.DeviceSet>): void;


    /**
     * Updates a device set belonging to the user
     *
     * @param {uuid} id The UUID of the device set
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @param {array} devices List of device IDs
     *
     * @param {string} name The name of the device set
     *
     * @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<Object>} - The deserialized result object.
     *
     * @reject {Error|ServiceError} - The error object.
     */
    updateDeviceSetOfUserWithHttpOperationResponse(id: string, ownerName: string, appName: string, devices: string[], name: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<any>>;

    /**
     * Updates a device set belonging to the user
     *
     * @param {uuid} id The UUID of the device set
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @param {array} devices List of device IDs
     *
     * @param {string} name The name of the device set
     *
     * @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 {Object} - 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.
     *
     *                      {Object} [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.
     */
    updateDeviceSetOfUser(id: string, ownerName: string, appName: string, devices: string[], name: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<any>;
    updateDeviceSetOfUser(id: string, ownerName: string, appName: string, devices: string[], name: string, callback: ServiceCallback<any>): void;
    updateDeviceSetOfUser(id: string, ownerName: string, appName: string, devices: string[], name: string, options: { customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<any>): void;


    /**
     * Deletes a device set belonging to the user
     *
     * @param {uuid} id The UUID of the device set
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @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<null>} - The deserialized result object.
     *
     * @reject {Error|ServiceError} - The error object.
     */
    deleteDeviceSetOfUserWithHttpOperationResponse(id: string, ownerName: string, appName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<void>>;

    /**
     * Deletes a device set belonging to the user
     *
     * @param {uuid} id The UUID of the device set
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @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 {null} - 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.
     *
     *                      {null} [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.
     */
    deleteDeviceSetOfUser(id: string, ownerName: string, appName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<void>;
    deleteDeviceSetOfUser(id: string, ownerName: string, appName: string, callback: ServiceCallback<void>): void;
    deleteDeviceSetOfUser(id: string, ownerName: string, appName: string, options: { customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<void>): void;


    /**
     * Lists device sets belonging to the user
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @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.
     */
    listDeviceSetsOfUserWithHttpOperationResponse(ownerName: string, appName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<models.DeviceSet[]>>;

    /**
     * Lists device sets belonging to the user
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @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.
     */
    listDeviceSetsOfUser(ownerName: string, appName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<models.DeviceSet[]>;
    listDeviceSetsOfUser(ownerName: string, appName: string, callback: ServiceCallback<models.DeviceSet[]>): void;
    listDeviceSetsOfUser(ownerName: string, appName: string, options: { customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<models.DeviceSet[]>): void;


    /**
     * Creates a device set belonging to the user
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @param {array} devices List of device IDs
     *
     * @param {string} name The name of the device set
     *
     * @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<Object>} - The deserialized result object.
     *
     * @reject {Error|ServiceError} - The error object.
     */
    createDeviceSetOfUserWithHttpOperationResponse(ownerName: string, appName: string, devices: string[], name: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<any>>;

    /**
     * Creates a device set belonging to the user
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @param {array} devices List of device IDs
     *
     * @param {string} name The name of the device set
     *
     * @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 {Object} - 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.
     *
     *                      {Object} [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.
     */
    createDeviceSetOfUser(ownerName: string, appName: string, devices: string[], name: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<any>;
    createDeviceSetOfUser(ownerName: string, appName: string, devices: string[], name: string, callback: ServiceCallback<any>): void;
    createDeviceSetOfUser(ownerName: string, appName: string, devices: string[], name: string, options: { customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<any>): void;


    /**
     * Returns list of all test runs for a given test series
     *
     * @param {string} testSeriesSlug The slug of the test series
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @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.
     */
    getAllTestRunsForSeriesWithHttpOperationResponse(testSeriesSlug: string, ownerName: string, appName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<models.TestRun[]>>;

    /**
     * Returns list of all test runs for a given test series
     *
     * @param {string} testSeriesSlug The slug of the test series
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @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.
     */
    getAllTestRunsForSeries(testSeriesSlug: string, ownerName: string, appName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<models.TestRun[]>;
    getAllTestRunsForSeries(testSeriesSlug: string, ownerName: string, appName: string, callback: ServiceCallback<models.TestRun[]>): void;
    getAllTestRunsForSeries(testSeriesSlug: string, ownerName: string, appName: string, options: { customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<models.TestRun[]>): void;


    /**
     * Deletes a single test series
     *
     * @param {string} testSeriesSlug The slug of the test series
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @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<null>} - The deserialized result object.
     *
     * @reject {Error|ServiceError} - The error object.
     */
    deleteTestSeriesWithHttpOperationResponse(testSeriesSlug: string, ownerName: string, appName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<void>>;

    /**
     * Deletes a single test series
     *
     * @param {string} testSeriesSlug The slug of the test series
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @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 {null} - 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.
     *
     *                      {null} [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.
     */
    deleteTestSeries(testSeriesSlug: string, ownerName: string, appName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<void>;
    deleteTestSeries(testSeriesSlug: string, ownerName: string, appName: string, callback: ServiceCallback<void>): void;
    deleteTestSeries(testSeriesSlug: string, ownerName: string, appName: string, options: { customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<void>): void;


    /**
     * Updates name and slug of a test series
     *
     * @param {string} testSeriesSlug The slug of the test series
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @param {string} name Name of the new test series
     *
     * @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<TestSeries>} - The deserialized result object.
     *
     * @reject {Error|ServiceError} - The error object.
     */
    patchTestSeriesWithHttpOperationResponse(testSeriesSlug: string, ownerName: string, appName: string, name: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<models.TestSeries>>;

    /**
     * Updates name and slug of a test series
     *
     * @param {string} testSeriesSlug The slug of the test series
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @param {string} name Name of the new test series
     *
     * @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 {TestSeries} - 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.
     *
     *                      {TestSeries} [result]   - The deserialized result object if an error did not occur.
     *                      See {@link TestSeries} 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.
     */
    patchTestSeries(testSeriesSlug: string, ownerName: string, appName: string, name: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<models.TestSeries>;
    patchTestSeries(testSeriesSlug: string, ownerName: string, appName: string, name: string, callback: ServiceCallback<models.TestSeries>): void;
    patchTestSeries(testSeriesSlug: string, ownerName: string, appName: string, name: string, options: { customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<models.TestSeries>): void;


    /**
     * Returns list of all test series for an application
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @param {object} [options] Optional Parameters.
     *
     * @param {string} [options.query] A query string to filter test series
     *
     * @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.
     */
    getAllTestSeriesWithHttpOperationResponse(ownerName: string, appName: string, options?: { query? : string, customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<models.TestSeries[]>>;

    /**
     * Returns list of all test series for an application
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @param {object} [options] Optional Parameters.
     *
     * @param {string} [options.query] A query string to filter test series
     *
     * @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.
     */
    getAllTestSeries(ownerName: string, appName: string, options?: { query? : string, customHeaders? : { [headerName: string]: string; } }): Promise<models.TestSeries[]>;
    getAllTestSeries(ownerName: string, appName: string, callback: ServiceCallback<models.TestSeries[]>): void;
    getAllTestSeries(ownerName: string, appName: string, options: { query? : string, customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<models.TestSeries[]>): void;


    /**
     * Creates new test series for an application
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @param {string} name Name of the new test series
     *
     * @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<Object>} - The deserialized result object.
     *
     * @reject {Error|ServiceError} - The error object.
     */
    createTestSeriesWithHttpOperationResponse(ownerName: string, appName: string, name: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<any>>;

    /**
     * Creates new test series for an application
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @param {string} name Name of the new test series
     *
     * @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 {Object} - 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.
     *
     *                      {Object} [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.
     */
    createTestSeries(ownerName: string, appName: string, name: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<any>;
    createTestSeries(ownerName: string, appName: string, name: string, callback: ServiceCallback<any>): void;
    createTestSeries(ownerName: string, appName: string, name: string, options: { customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<any>): void;


    /**
     * Stop a test run execution
     *
     * @param {string} testRunId The ID of the test run to be stopped
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @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<TestRun>} - The deserialized result object.
     *
     * @reject {Error|ServiceError} - The error object.
     */
    stopTestRunWithHttpOperationResponse(testRunId: string, ownerName: string, appName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<models.TestRun>>;

    /**
     * Stop a test run execution
     *
     * @param {string} testRunId The ID of the test run to be stopped
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @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 {TestRun} - 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.
     *
     *                      {TestRun} [result]   - The deserialized result object if an error did not occur.
     *                      See {@link TestRun} 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.
     */
    stopTestRun(testRunId: string, ownerName: string, appName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<models.TestRun>;
    stopTestRun(testRunId: string, ownerName: string, appName: string, callback: ServiceCallback<models.TestRun>): void;
    stopTestRun(testRunId: string, ownerName: string, appName: string, options: { customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<models.TestRun>): void;


    /**
     * Gets state of the test run
     *
     * @param {string} testRunId The ID of the test run
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @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<TestRunState>} - The deserialized result object.
     *
     * @reject {Error|ServiceError} - The error object.
     */
    getTestRunStateWithHttpOperationResponse(testRunId: string, ownerName: string, appName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<models.TestRunState>>;

    /**
     * Gets state of the test run
     *
     * @param {string} testRunId The ID of the test run
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @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 {TestRunState} - 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.
     *
     *                      {TestRunState} [result]   - The deserialized result object if an error did not occur.
     *                      See {@link TestRunState} 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.
     */
    getTestRunState(testRunId: string, ownerName: string, appName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<models.TestRunState>;
    getTestRunState(testRunId: string, ownerName: string, appName: string, callback: ServiceCallback<models.TestRunState>): void;
    getTestRunState(testRunId: string, ownerName: string, appName: string, options: { customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<models.TestRunState>): void;


    /**
     * Starts test run
     *
     * @param {string} testRunId The ID of the test run
     *
     * @param {object} startOptions Option required to start the test run
     *
     * @param {string} startOptions.testFramework Test framework used by tests.
     *
     * @param {string} startOptions.deviceSelection Device selection string.
     *
     * @param {string} [startOptions.language] Language that should be used to run
     * tests.
     *
     * @param {string} [startOptions.locale] Locale that should be used to run
     * tests.
     *
     * @param {string} [startOptions.testSeries] Name of the test series.
     *
     * @param {object} [startOptions.testParameters] A JSON dictionary with
     * additional test parameters
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @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<TestCloudStartTestRunResult>} - The deserialized result object.
     *
     * @reject {Error|ServiceError} - The error object.
     */
    startTestRunWithHttpOperationResponse(testRunId: string, startOptions: models.TestCloudStartTestRunOptions, ownerName: string, appName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<models.TestCloudStartTestRunResult>>;

    /**
     * Starts test run
     *
     * @param {string} testRunId The ID of the test run
     *
     * @param {object} startOptions Option required to start the test run
     *
     * @param {string} startOptions.testFramework Test framework used by tests.
     *
     * @param {string} startOptions.deviceSelection Device selection string.
     *
     * @param {string} [startOptions.language] Language that should be used to run
     * tests.
     *
     * @param {string} [startOptions.locale] Locale that should be used to run
     * tests.
     *
     * @param {string} [startOptions.testSeries] Name of the test series.
     *
     * @param {object} [startOptions.testParameters] A JSON dictionary with
     * additional test parameters
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @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 {TestCloudStartTestRunResult} - 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.
     *
     *                      {TestCloudStartTestRunResult} [result]   - The deserialized result object if an error did not occur.
     *                      See {@link TestCloudStartTestRunResult} 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.
     */
    startTestRun(testRunId: string, startOptions: models.TestCloudStartTestRunOptions, ownerName: string, appName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<models.TestCloudStartTestRunResult>;
    startTestRun(testRunId: string, startOptions: models.TestCloudStartTestRunOptions, ownerName: string, appName: string, callback: ServiceCallback<models.TestCloudStartTestRunResult>): void;
    startTestRun(testRunId: string, startOptions: models.TestCloudStartTestRunOptions, ownerName: string, appName: string, options: { customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<models.TestCloudStartTestRunResult>): void;


    /**
     * Returns a single test report
     *
     * @param {uuid} testRunId The ID of the test run
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @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<TestReport>} - The deserialized result object.
     *
     * @reject {Error|ServiceError} - The error object.
     */
    getTestReportWithHttpOperationResponse(testRunId: string, ownerName: string, appName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<models.TestReport>>;

    /**
     * Returns a single test report
     *
     * @param {uuid} testRunId The ID of the test run
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @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 {TestReport} - 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.
     *
     *                      {TestReport} [result]   - The deserialized result object if an error did not occur.
     *                      See {@link TestReport} 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.
     */
    getTestReport(testRunId: string, ownerName: string, appName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<models.TestReport>;
    getTestReport(testRunId: string, ownerName: string, appName: string, callback: ServiceCallback<models.TestReport>): void;
    getTestReport(testRunId: string, ownerName: string, appName: string, options: { customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<models.TestReport>): void;


    /**
     * Adds file with the given hash to a test run
     *
     * @param {string} testRunId The ID of the test run
     *
     * @param {array} fileInfo File hash information
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @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.
     */
    uploadHashesBatchWithHttpOperationResponse(testRunId: string, fileInfo: models.TestCloudFileHash[], ownerName: string, appName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<models.TestCloudFileHashResponse[]>>;

    /**
     * Adds file with the given hash to a test run
     *
     * @param {string} testRunId The ID of the test run
     *
     * @param {array} fileInfo File hash information
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @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.
     */
    uploadHashesBatch(testRunId: string, fileInfo: models.TestCloudFileHash[], ownerName: string, appName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<models.TestCloudFileHashResponse[]>;
    uploadHashesBatch(testRunId: string, fileInfo: models.TestCloudFileHash[], ownerName: string, appName: string, callback: ServiceCallback<models.TestCloudFileHashResponse[]>): void;
    uploadHashesBatch(testRunId: string, fileInfo: models.TestCloudFileHash[], ownerName: string, appName: string, options: { customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<models.TestCloudFileHashResponse[]>): void;


    /**
     * Adds file with the given hash to a test run
     *
     * @param {string} testRunId The ID of the test run
     *
     * @param {object} fileInfo File hash information
     *
     * @param {string} fileInfo.fileType Type of the file. Possible values include:
     * 'dsym-file', 'app-file', 'test-file'
     *
     * @param {string} fileInfo.checksum SHA256 hash of the file
     *
     * @param {string} fileInfo.relativePath Relative path of the file
     *
     * @param {string} [fileInfo.byteRange] Range of bytes required to verify
     * ownership of the file
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @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<null>} - The deserialized result object.
     *
     * @reject {Error|ServiceError} - The error object.
     */
    uploadHashWithHttpOperationResponse(testRunId: string, fileInfo: models.TestCloudFileHashDeprecated, ownerName: string, appName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<void>>;

    /**
     * Adds file with the given hash to a test run
     *
     * @param {string} testRunId The ID of the test run
     *
     * @param {object} fileInfo File hash information
     *
     * @param {string} fileInfo.fileType Type of the file. Possible values include:
     * 'dsym-file', 'app-file', 'test-file'
     *
     * @param {string} fileInfo.checksum SHA256 hash of the file
     *
     * @param {string} fileInfo.relativePath Relative path of the file
     *
     * @param {string} [fileInfo.byteRange] Range of bytes required to verify
     * ownership of the file
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @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 {null} - 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.
     *
     *                      {null} [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.
     */
    uploadHash(testRunId: string, fileInfo: models.TestCloudFileHashDeprecated, ownerName: string, appName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<void>;
    uploadHash(testRunId: string, fileInfo: models.TestCloudFileHashDeprecated, ownerName: string, appName: string, callback: ServiceCallback<void>): void;
    uploadHash(testRunId: string, fileInfo: models.TestCloudFileHashDeprecated, ownerName: string, appName: string, options: { customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<void>): void;


    /**
     * Uploads file for a test run
     *
     * @param {string} testRunId The ID of the test run
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @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<null>} - The deserialized result object.
     *
     * @reject {Error|ServiceError} - The error object.
     */
    startUploadingFileWithHttpOperationResponse(testRunId: string, ownerName: string, appName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<void>>;

    /**
     * Uploads file for a test run
     *
     * @param {string} testRunId The ID of the test run
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @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 {null} - 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.
     *
     *                      {null} [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.
     */
    startUploadingFile(testRunId: string, ownerName: string, appName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<void>;
    startUploadingFile(testRunId: string, ownerName: string, appName: string, callback: ServiceCallback<void>): void;
    startUploadingFile(testRunId: string, ownerName: string, appName: string, options: { customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<void>): void;


    /**
     * Returns a single test runs
     *
     * @param {uuid} testRunId The ID of the test run
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @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<TestRun>} - The deserialized result object.
     *
     * @reject {Error|ServiceError} - The error object.
     */
    getTestRunWithHttpOperationResponse(testRunId: string, ownerName: string, appName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<models.TestRun>>;

    /**
     * Returns a single test runs
     *
     * @param {uuid} testRunId The ID of the test run
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @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 {TestRun} - 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.
     *
     *                      {TestRun} [result]   - The deserialized result object if an error did not occur.
     *                      See {@link TestRun} 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.
     */
    getTestRun(testRunId: string, ownerName: string, appName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<models.TestRun>;
    getTestRun(testRunId: string, ownerName: string, appName: string, callback: ServiceCallback<models.TestRun>): void;
    getTestRun(testRunId: string, ownerName: string, appName: string, options: { customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<models.TestRun>): void;


    /**
     * Logically deletes a test run
     *
     * @param {uuid} testRunId The ID of the test run
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @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<TestRun>} - The deserialized result object.
     *
     * @reject {Error|ServiceError} - The error object.
     */
    archiveTestRunWithHttpOperationResponse(testRunId: string, ownerName: string, appName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<models.TestRun>>;

    /**
     * Logically deletes a test run
     *
     * @param {uuid} testRunId The ID of the test run
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @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 {TestRun} - 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.
     *
     *                      {TestRun} [result]   - The deserialized result object if an error did not occur.
     *                      See {@link TestRun} 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.
     */
    archiveTestRun(testRunId: string, ownerName: string, appName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<models.TestRun>;
    archiveTestRun(testRunId: string, ownerName: string, appName: string, callback: ServiceCallback<models.TestRun>): void;
    archiveTestRun(testRunId: string, ownerName: string, appName: string, options: { customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<models.TestRun>): void;


    /**
     * Returns a list of test runs
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @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.
     */
    getTestRunsWithHttpOperationResponse(ownerName: string, appName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<models.TestRun[]>>;

    /**
     * Returns a list of test runs
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @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.
     */
    getTestRuns(ownerName: string, appName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<models.TestRun[]>;
    getTestRuns(ownerName: string, appName: string, callback: ServiceCallback<models.TestRun[]>): void;
    getTestRuns(ownerName: string, appName: string, options: { customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<models.TestRun[]>): void;


    /**
     * Creates a new test run
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @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<null>} - The deserialized result object.
     *
     * @reject {Error|ServiceError} - The error object.
     */
    createTestRunWithHttpOperationResponse(ownerName: string, appName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<void>>;

    /**
     * Creates a new test run
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @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 {null} - 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.
     *
     *                      {null} [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.
     */
    createTestRun(ownerName: string, appName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<void>;
    createTestRun(ownerName: string, appName: string, callback: ServiceCallback<void>): void;
    createTestRun(ownerName: string, appName: string, options: { customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<void>): void;


    /**
     * Lists test run data
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @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<TestGDPRTestRun>} - The deserialized result object.
     *
     * @reject {Error|ServiceError} - The error object.
     */
    gdprExportTestRunWithHttpOperationResponse(ownerName: string, appName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<models.TestGDPRTestRun>>;

    /**
     * Lists test run data
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @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 {TestGDPRTestRun} - 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.
     *
     *                      {TestGDPRTestRun} [result]   - The deserialized result object if an error did not occur.
     *                      See {@link TestGDPRTestRun} 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.
     */
    gdprExportTestRun(ownerName: string, appName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<models.TestGDPRTestRun>;
    gdprExportTestRun(ownerName: string, appName: string, callback: ServiceCallback<models.TestGDPRTestRun>): void;
    gdprExportTestRun(ownerName: string, appName: string, options: { customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<models.TestGDPRTestRun>): void;


    /**
     * Lists pipeline test data
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @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<TestGDPRPipelineTest>} - The deserialized result object.
     *
     * @reject {Error|ServiceError} - The error object.
     */
    gdprExportPipelineTestWithHttpOperationResponse(ownerName: string, appName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<models.TestGDPRPipelineTest>>;

    /**
     * Lists pipeline test data
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @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 {TestGDPRPipelineTest} - 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.
     *
     *                      {TestGDPRPipelineTest} [result]   - The deserialized result object if an error did not occur.
     *                      See {@link TestGDPRPipelineTest} 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.
     */
    gdprExportPipelineTest(ownerName: string, appName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<models.TestGDPRPipelineTest>;
    gdprExportPipelineTest(ownerName: string, appName: string, callback: ServiceCallback<models.TestGDPRPipelineTest>): void;
    gdprExportPipelineTest(ownerName: string, appName: string, options: { customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<models.TestGDPRPipelineTest>): void;


    /**
     * Lists hash file data
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @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<TestGDPRHashFile>} - The deserialized result object.
     *
     * @reject {Error|ServiceError} - The error object.
     */
    gdprExportHashFileWithHttpOperationResponse(ownerName: string, appName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<models.TestGDPRHashFile>>;

    /**
     * Lists hash file data
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @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 {TestGDPRHashFile} - 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.
     *
     *                      {TestGDPRHashFile} [result]   - The deserialized result object if an error did not occur.
     *                      See {@link TestGDPRHashFile} 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.
     */
    gdprExportHashFile(ownerName: string, appName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<models.TestGDPRHashFile>;
    gdprExportHashFile(ownerName: string, appName: string, callback: ServiceCallback<models.TestGDPRHashFile>): void;
    gdprExportHashFile(ownerName: string, appName: string, options: { customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<models.TestGDPRHashFile>): void;


    /**
     * Lists file set file data
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @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<TestGDPRFileSetFile>} - The deserialized result object.
     *
     * @reject {Error|ServiceError} - The error object.
     */
    gdprExportFileSetFileWithHttpOperationResponse(ownerName: string, appName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<models.TestGDPRFileSetFile>>;

    /**
     * Lists file set file data
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @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 {TestGDPRFileSetFile} - 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.
     *
     *                      {TestGDPRFileSetFile} [result]   - The deserialized result object if an error did not occur.
     *                      See {@link TestGDPRFileSetFile} 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.
     */
    gdprExportFileSetFile(ownerName: string, appName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<models.TestGDPRFileSetFile>;
    gdprExportFileSetFile(ownerName: string, appName: string, callback: ServiceCallback<models.TestGDPRFileSetFile>): void;
    gdprExportFileSetFile(ownerName: string, appName: string, options: { customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<models.TestGDPRFileSetFile>): void;


    /**
     * Lists all the endpoints available for Test app data
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @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<TestGDPRResourceList>} - The deserialized result object.
     *
     * @reject {Error|ServiceError} - The error object.
     */
    gdprExportAppWithHttpOperationResponse(ownerName: string, appName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<models.TestGDPRResourceList>>;

    /**
     * Lists all the endpoints available for Test app data
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @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 {TestGDPRResourceList} - 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.
     *
     *                      {TestGDPRResourceList} [result]   - The deserialized result object if an error did not occur.
     *                      See {@link TestGDPRResourceList} 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.
     */
    gdprExportApp(ownerName: string, appName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<models.TestGDPRResourceList>;
    gdprExportApp(ownerName: string, appName: string, callback: ServiceCallback<models.TestGDPRResourceList>): void;
    gdprExportApp(ownerName: string, appName: string, options: { customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<models.TestGDPRResourceList>): void;


    /**
     * Get information about the currently active subscriptions, if any
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @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<Subscription>} - The deserialized result object.
     *
     * @reject {Error|ServiceError} - The error object.
     */
    getSubscriptionsWithHttpOperationResponse(ownerName: string, appName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<models.Subscription>>;

    /**
     * Get information about the currently active subscriptions, if any
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @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 {Subscription} - 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.
     *
     *                      {Subscription} [result]   - The deserialized result object if an error did not occur.
     *                      See {@link Subscription} 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.
     */
    getSubscriptions(ownerName: string, appName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<models.Subscription>;
    getSubscriptions(ownerName: string, appName: string, callback: ServiceCallback<models.Subscription>): void;
    getSubscriptions(ownerName: string, appName: string, options: { customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<models.Subscription>): void;


    /**
     * Accept a free trial subscription
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @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<Subscription>} - The deserialized result object.
     *
     * @reject {Error|ServiceError} - The error object.
     */
    createSubscriptionWithHttpOperationResponse(ownerName: string, appName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<models.Subscription>>;

    /**
     * Accept a free trial subscription
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @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 {Subscription} - 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.
     *
     *                      {Subscription} [result]   - The deserialized result object if an error did not occur.
     *                      See {@link Subscription} 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.
     */
    createSubscription(ownerName: string, appName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<models.Subscription>;
    createSubscription(ownerName: string, appName: string, callback: ServiceCallback<models.Subscription>): void;
    createSubscription(ownerName: string, appName: string, options: { customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<models.Subscription>): void;


    /**
     * Gets a device set belonging to the owner
     *
     * @param {uuid} id The UUID of the device set
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @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<DeviceSet>} - The deserialized result object.
     *
     * @reject {Error|ServiceError} - The error object.
     */
    getDeviceSetOfOwnerWithHttpOperationResponse(id: string, ownerName: string, appName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<models.DeviceSet>>;

    /**
     * Gets a device set belonging to the owner
     *
     * @param {uuid} id The UUID of the device set
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @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 {DeviceSet} - 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.
     *
     *                      {DeviceSet} [result]   - The deserialized result object if an error did not occur.
     *                      See {@link DeviceSet} 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.
     */
    getDeviceSetOfOwner(id: string, ownerName: string, appName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<models.DeviceSet>;
    getDeviceSetOfOwner(id: string, ownerName: string, appName: string, callback: ServiceCallback<models.DeviceSet>): void;
    getDeviceSetOfOwner(id: string, ownerName: string, appName: string, options: { customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<models.DeviceSet>): void;


    /**
     * Updates a device set belonging to the owner
     *
     * @param {uuid} id The UUID of the device set
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @param {array} devices List of device IDs
     *
     * @param {string} name The name of the device set
     *
     * @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<Object>} - The deserialized result object.
     *
     * @reject {Error|ServiceError} - The error object.
     */
    updateDeviceSetOfOwnerWithHttpOperationResponse(id: string, ownerName: string, appName: string, devices: string[], name: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<any>>;

    /**
     * Updates a device set belonging to the owner
     *
     * @param {uuid} id The UUID of the device set
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @param {array} devices List of device IDs
     *
     * @param {string} name The name of the device set
     *
     * @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 {Object} - 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.
     *
     *                      {Object} [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.
     */
    updateDeviceSetOfOwner(id: string, ownerName: string, appName: string, devices: string[], name: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<any>;
    updateDeviceSetOfOwner(id: string, ownerName: string, appName: string, devices: string[], name: string, callback: ServiceCallback<any>): void;
    updateDeviceSetOfOwner(id: string, ownerName: string, appName: string, devices: string[], name: string, options: { customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<any>): void;


    /**
     * Deletes a device set belonging to the owner
     *
     * @param {uuid} id The UUID of the device set
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @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<null>} - The deserialized result object.
     *
     * @reject {Error|ServiceError} - The error object.
     */
    deleteDeviceSetOfOwnerWithHttpOperationResponse(id: string, ownerName: string, appName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<void>>;

    /**
     * Deletes a device set belonging to the owner
     *
     * @param {uuid} id The UUID of the device set
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @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 {null} - 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.
     *
     *                      {null} [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.
     */
    deleteDeviceSetOfOwner(id: string, ownerName: string, appName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<void>;
    deleteDeviceSetOfOwner(id: string, ownerName: string, appName: string, callback: ServiceCallback<void>): void;
    deleteDeviceSetOfOwner(id: string, ownerName: string, appName: string, options: { customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<void>): void;


    /**
     * Lists device sets belonging to the owner
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @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.
     */
    listDeviceSetsOfOwnerWithHttpOperationResponse(ownerName: string, appName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<models.DeviceSet[]>>;

    /**
     * Lists device sets belonging to the owner
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @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.
     */
    listDeviceSetsOfOwner(ownerName: string, appName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<models.DeviceSet[]>;
    listDeviceSetsOfOwner(ownerName: string, appName: string, callback: ServiceCallback<models.DeviceSet[]>): void;
    listDeviceSetsOfOwner(ownerName: string, appName: string, options: { customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<models.DeviceSet[]>): void;


    /**
     * Creates a device set belonging to the owner
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @param {array} devices List of device IDs
     *
     * @param {string} name The name of the device set
     *
     * @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<Object>} - The deserialized result object.
     *
     * @reject {Error|ServiceError} - The error object.
     */
    createDeviceSetOfOwnerWithHttpOperationResponse(ownerName: string, appName: string, devices: string[], name: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<any>>;

    /**
     * Creates a device set belonging to the owner
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @param {array} devices List of device IDs
     *
     * @param {string} name The name of the device set
     *
     * @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 {Object} - 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.
     *
     *                      {Object} [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.
     */
    createDeviceSetOfOwner(ownerName: string, appName: string, devices: string[], name: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<any>;
    createDeviceSetOfOwner(ownerName: string, appName: string, devices: string[], name: string, callback: ServiceCallback<any>): void;
    createDeviceSetOfOwner(ownerName: string, appName: string, devices: string[], name: string, options: { customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<any>): void;


    /**
     * Creates a short ID for a list of devices
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @param {array} devices
     *
     * @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<Object>} - The deserialized result object.
     *
     * @reject {Error|ServiceError} - The error object.
     */
    createDeviceSelectionWithHttpOperationResponse(ownerName: string, appName: string, devices: string[], options?: { customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<any>>;

    /**
     * Creates a short ID for a list of devices
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @param {array} devices
     *
     * @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 {Object} - 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.
     *
     *                      {Object} [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.
     */
    createDeviceSelection(ownerName: string, appName: string, devices: string[], options?: { customHeaders? : { [headerName: string]: string; } }): Promise<any>;
    createDeviceSelection(ownerName: string, appName: string, devices: string[], callback: ServiceCallback<any>): void;
    createDeviceSelection(ownerName: string, appName: string, devices: string[], options: { customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<any>): void;


    /**
     * Returns a list of available devices
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @param {object} [options] Optional Parameters.
     *
     * @param {uuid} [options.appUploadId] The ID of the test run
     *
     * @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.
     */
    getDeviceConfigurationsWithHttpOperationResponse(ownerName: string, appName: string, options?: { appUploadId? : string, customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<models.DeviceConfiguration[]>>;

    /**
     * Returns a list of available devices
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @param {object} [options] Optional Parameters.
     *
     * @param {uuid} [options.appUploadId] The ID of the test run
     *
     * @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.
     */
    getDeviceConfigurations(ownerName: string, appName: string, options?: { appUploadId? : string, customHeaders? : { [headerName: string]: string; } }): Promise<models.DeviceConfiguration[]>;
    getDeviceConfigurations(ownerName: string, appName: string, callback: ServiceCallback<models.DeviceConfiguration[]>): void;
    getDeviceConfigurations(ownerName: string, appName: string, options: { appUploadId? : string, customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<models.DeviceConfiguration[]>): void;


    /**
     * Lists user data
     *
     * @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<TestGDPRUser>} - The deserialized result object.
     *
     * @reject {Error|ServiceError} - The error object.
     */
    gdprExportUserWithHttpOperationResponse(options?: { customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<models.TestGDPRUser>>;

    /**
     * Lists user data
     *
     * @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 {TestGDPRUser} - 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.
     *
     *                      {TestGDPRUser} [result]   - The deserialized result object if an error did not occur.
     *                      See {@link TestGDPRUser} 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.
     */
    gdprExportUser(options?: { customHeaders? : { [headerName: string]: string; } }): Promise<models.TestGDPRUser>;
    gdprExportUser(callback: ServiceCallback<models.TestGDPRUser>): void;
    gdprExportUser(options: { customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<models.TestGDPRUser>): void;


    /**
     * Lists feature flag data
     *
     * @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<TestGDPRFeatureFlag>} - The deserialized result object.
     *
     * @reject {Error|ServiceError} - The error object.
     */
    gdprExportFeatureFlagWithHttpOperationResponse(options?: { customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<models.TestGDPRFeatureFlag>>;

    /**
     * Lists feature flag data
     *
     * @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 {TestGDPRFeatureFlag} - 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.
     *
     *                      {TestGDPRFeatureFlag} [result]   - The deserialized result object if an error did not occur.
     *                      See {@link TestGDPRFeatureFlag} 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.
     */
    gdprExportFeatureFlag(options?: { customHeaders? : { [headerName: string]: string; } }): Promise<models.TestGDPRFeatureFlag>;
    gdprExportFeatureFlag(callback: ServiceCallback<models.TestGDPRFeatureFlag>): void;
    gdprExportFeatureFlag(options: { customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<models.TestGDPRFeatureFlag>): void;


    /**
     * Lists account data
     *
     * @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<TestGDPRAccount>} - The deserialized result object.
     *
     * @reject {Error|ServiceError} - The error object.
     */
    gdprExportAccountWithHttpOperationResponse(options?: { customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<models.TestGDPRAccount>>;

    /**
     * Lists account data
     *
     * @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 {TestGDPRAccount} - 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.
     *
     *                      {TestGDPRAccount} [result]   - The deserialized result object if an error did not occur.
     *                      See {@link TestGDPRAccount} 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.
     */
    gdprExportAccount(options?: { customHeaders? : { [headerName: string]: string; } }): Promise<models.TestGDPRAccount>;
    gdprExportAccount(callback: ServiceCallback<models.TestGDPRAccount>): void;
    gdprExportAccount(options: { customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<models.TestGDPRAccount>): void;


    /**
     * Lists all the endpoints available for Test account data
     *
     * @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<TestGDPRResourceList>} - The deserialized result object.
     *
     * @reject {Error|ServiceError} - The error object.
     */
    gdprExportWithHttpOperationResponse(options?: { customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<models.TestGDPRResourceList>>;

    /**
     * Lists all the endpoints available for Test account data
     *
     * @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 {TestGDPRResourceList} - 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.
     *
     *                      {TestGDPRResourceList} [result]   - The deserialized result object if an error did not occur.
     *                      See {@link TestGDPRResourceList} 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.
     */
    gdprExport(options?: { customHeaders? : { [headerName: string]: string; } }): Promise<models.TestGDPRResourceList>;
    gdprExport(callback: ServiceCallback<models.TestGDPRResourceList>): void;
    gdprExport(options: { customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<models.TestGDPRResourceList>): void;
}

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


    /**
     * Returns a particular symbol by id (uuid) for the provided application
     *
     * @param {string} symbolId The ID of the symbol (uuid of the symbol)
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @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<Object>} - The deserialized result object.
     *
     * @reject {Error|ServiceError} - The error object.
     */
    getStatusWithHttpOperationResponse(symbolId: string, ownerName: string, appName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<any>>;

    /**
     * Returns a particular symbol by id (uuid) for the provided application
     *
     * @param {string} symbolId The ID of the symbol (uuid of the symbol)
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @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 {Object} - 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.
     *
     *                      {Object} [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.
     */
    getStatus(symbolId: string, ownerName: string, appName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<any>;
    getStatus(symbolId: string, ownerName: string, appName: string, callback: ServiceCallback<any>): void;
    getStatus(symbolId: string, ownerName: string, appName: string, options: { customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<any>): void;


    /**
     * Gets the URL to download the symbol
     *
     * @param {string} symbolId The ID of the symbol (uuid of the symbol)
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @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<Object>} - The deserialized result object.
     *
     * @reject {Error|ServiceError} - The error object.
     */
    getLocationWithHttpOperationResponse(symbolId: string, ownerName: string, appName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<any>>;

    /**
     * Gets the URL to download the symbol
     *
     * @param {string} symbolId The ID of the symbol (uuid of the symbol)
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @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 {Object} - 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.
     *
     *                      {Object} [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.
     */
    getLocation(symbolId: string, ownerName: string, appName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<any>;
    getLocation(symbolId: string, ownerName: string, appName: string, callback: ServiceCallback<any>): void;
    getLocation(symbolId: string, ownerName: string, appName: string, options: { customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<any>): void;


    /**
     * Marks a symbol by id (uuid) as ignored
     *
     * @param {string} symbolId The ID of the symbol (uuid of the symbol)
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @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<Object>} - The deserialized result object.
     *
     * @reject {Error|ServiceError} - The error object.
     */
    ignoreWithHttpOperationResponse(symbolId: string, ownerName: string, appName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<any>>;

    /**
     * Marks a symbol by id (uuid) as ignored
     *
     * @param {string} symbolId The ID of the symbol (uuid of the symbol)
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @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 {Object} - 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.
     *
     *                      {Object} [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.
     */
    ignore(symbolId: string, ownerName: string, appName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<any>;
    ignore(symbolId: string, ownerName: string, appName: string, callback: ServiceCallback<any>): void;
    ignore(symbolId: string, ownerName: string, appName: string, options: { customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<any>): void;


    /**
     * Returns a particular symbol by id (uuid) for the provided application
     *
     * @param {string} symbolId The ID of the symbol (uuid of the symbol)
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @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<Object>} - The deserialized result object.
     *
     * @reject {Error|ServiceError} - The error object.
     */
    getWithHttpOperationResponse(symbolId: string, ownerName: string, appName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<any>>;

    /**
     * Returns a particular symbol by id (uuid) for the provided application
     *
     * @param {string} symbolId The ID of the symbol (uuid of the symbol)
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @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 {Object} - 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.
     *
     *                      {Object} [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.
     */
    get(symbolId: string, ownerName: string, appName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<any>;
    get(symbolId: string, ownerName: string, appName: string, callback: ServiceCallback<any>): void;
    get(symbolId: string, ownerName: string, appName: string, options: { customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<any>): void;


    /**
     * Returns the list of all symbols for the provided application
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @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<Object>} - The deserialized result object.
     *
     * @reject {Error|ServiceError} - The error object.
     */
    listWithHttpOperationResponse(ownerName: string, appName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<any>>;

    /**
     * Returns the list of all symbols for the provided application
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @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 {Object} - 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.
     *
     *                      {Object} [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(ownerName: string, appName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<any>;
    list(ownerName: string, appName: string, callback: ServiceCallback<any>): void;
    list(ownerName: string, appName: string, options: { customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<any>): void;
}

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


    /**
     * Gets the URL to download the symbol upload
     *
     * @param {string} symbolUploadId The ID of the symbol upload
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @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<Object>} - The deserialized result object.
     *
     * @reject {Error|ServiceError} - The error object.
     */
    getLocationWithHttpOperationResponse(symbolUploadId: string, ownerName: string, appName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<any>>;

    /**
     * Gets the URL to download the symbol upload
     *
     * @param {string} symbolUploadId The ID of the symbol upload
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @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 {Object} - 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.
     *
     *                      {Object} [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.
     */
    getLocation(symbolUploadId: string, ownerName: string, appName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<any>;
    getLocation(symbolUploadId: string, ownerName: string, appName: string, callback: ServiceCallback<any>): void;
    getLocation(symbolUploadId: string, ownerName: string, appName: string, options: { customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<any>): void;


    /**
     * Gets a symbol upload by id for the specified application
     *
     * @param {string} symbolUploadId The ID of the symbol upload
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @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<Object>} - The deserialized result object.
     *
     * @reject {Error|ServiceError} - The error object.
     */
    getWithHttpOperationResponse(symbolUploadId: string, ownerName: string, appName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<any>>;

    /**
     * Gets a symbol upload by id for the specified application
     *
     * @param {string} symbolUploadId The ID of the symbol upload
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @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 {Object} - 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.
     *
     *                      {Object} [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.
     */
    get(symbolUploadId: string, ownerName: string, appName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<any>;
    get(symbolUploadId: string, ownerName: string, appName: string, callback: ServiceCallback<any>): void;
    get(symbolUploadId: string, ownerName: string, appName: string, options: { customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<any>): void;


    /**
     * Commits or aborts the symbol upload process for a new set of symbols for the
     * specified application
     *
     * @param {string} symbolUploadId The ID of the symbol upload
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @param {string} status The desired operation for the symbol upload. Possible
     * values include: 'committed', 'aborted'
     *
     * @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<Object>} - The deserialized result object.
     *
     * @reject {Error|ServiceError} - The error object.
     */
    completeWithHttpOperationResponse(symbolUploadId: string, ownerName: string, appName: string, status: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<any>>;

    /**
     * Commits or aborts the symbol upload process for a new set of symbols for the
     * specified application
     *
     * @param {string} symbolUploadId The ID of the symbol upload
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @param {string} status The desired operation for the symbol upload. Possible
     * values include: 'committed', 'aborted'
     *
     * @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 {Object} - 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.
     *
     *                      {Object} [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.
     */
    complete(symbolUploadId: string, ownerName: string, appName: string, status: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<any>;
    complete(symbolUploadId: string, ownerName: string, appName: string, status: string, callback: ServiceCallback<any>): void;
    complete(symbolUploadId: string, ownerName: string, appName: string, status: string, options: { customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<any>): void;


    /**
     * Deletes a symbol upload by id for the specified application
     *
     * @param {string} symbolUploadId The ID of the symbol upload
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @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<Object>} - The deserialized result object.
     *
     * @reject {Error|ServiceError} - The error object.
     */
    deleteMethodWithHttpOperationResponse(symbolUploadId: string, ownerName: string, appName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<any>>;

    /**
     * Deletes a symbol upload by id for the specified application
     *
     * @param {string} symbolUploadId The ID of the symbol upload
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @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 {Object} - 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.
     *
     *                      {Object} [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.
     */
    deleteMethod(symbolUploadId: string, ownerName: string, appName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<any>;
    deleteMethod(symbolUploadId: string, ownerName: string, appName: string, callback: ServiceCallback<any>): void;
    deleteMethod(symbolUploadId: string, ownerName: string, appName: string, options: { customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<any>): void;


    /**
     * Gets a list of all uploads for the specified application
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @param {object} [options] Optional Parameters.
     *
     * @param {number} [options.top] The maximum number of results to return.
     *
     * @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 {object} [options.customHeaders] Headers that will be added to the
     * request
     *
     * @returns {Promise} A promise is returned
     *
     * @resolve {HttpOperationResponse<Object>} - The deserialized result object.
     *
     * @reject {Error|ServiceError} - The error object.
     */
    listWithHttpOperationResponse(ownerName: string, appName: string, options?: { top? : number, status? : string, customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<any>>;

    /**
     * Gets a list of all uploads for the specified application
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @param {object} [options] Optional Parameters.
     *
     * @param {number} [options.top] The maximum number of results to return.
     *
     * @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 {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 {Object} - 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.
     *
     *                      {Object} [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(ownerName: string, appName: string, options?: { top? : number, status? : string, customHeaders? : { [headerName: string]: string; } }): Promise<any>;
    list(ownerName: string, appName: string, callback: ServiceCallback<any>): void;
    list(ownerName: string, appName: string, options: { top? : number, status? : string, customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<any>): void;


    /**
     * Begins the symbol upload process for a new set of symbols for the specified
     * 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', 'UWP'
     *
     * @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. Required
     * for Android.
     *
     * @param {string} [body.version] The version number. Optional for Apple.
     * Required for Android.
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @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<Object>} - The deserialized result object.
     *
     * @reject {Error|ServiceError} - The error object.
     */
    createWithHttpOperationResponse(body: models.SymbolUploadBeginRequest, ownerName: string, appName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<any>>;

    /**
     * Begins the symbol upload process for a new set of symbols for the specified
     * 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', 'UWP'
     *
     * @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. Required
     * for Android.
     *
     * @param {string} [body.version] The version number. Optional for Apple.
     * Required for Android.
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @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 {Object} - 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.
     *
     *                      {Object} [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.
     */
    create(body: models.SymbolUploadBeginRequest, ownerName: string, appName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<any>;
    create(body: models.SymbolUploadBeginRequest, ownerName: string, appName: string, callback: ServiceCallback<any>): void;
    create(body: models.SymbolUploadBeginRequest, ownerName: string, appName: string, options: { customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<any>): void;
}

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


    /**
     * Application specific store service status
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @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<StoreNotification>} - The deserialized result object.
     *
     * @reject {Error|ServiceError} - The error object.
     */
    getNotificationByAppIdWithHttpOperationResponse(ownerName: string, appName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<models.StoreNotification>>;

    /**
     * Application specific store service status
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @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 {StoreNotification} - 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.
     *
     *                      {StoreNotification} [result]   - The deserialized result object if an error did not occur.
     *                      See {@link StoreNotification} 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.
     */
    getNotificationByAppId(ownerName: string, appName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<models.StoreNotification>;
    getNotificationByAppId(ownerName: string, appName: string, callback: ServiceCallback<models.StoreNotification>): void;
    getNotificationByAppId(ownerName: string, appName: string, options: { customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<models.StoreNotification>): void;
}

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


    /**
     * Gets the repositories available from the source code host
     *
     * @param {string} sourceHost The source host. Possible values include:
     * 'github', 'bitbucket', 'vsts'
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @param {object} [options] Optional Parameters.
     *
     * @param {string} [options.vstsAccountName] Filter repositories only for
     * specified account and project, "vstsProjectId" is required
     *
     * @param {string} [options.vstsProjectId] Filter repositories only for
     * specified account and project, "vstsAccountName" is required
     *
     * @param {string} [options.form] The selected form of the object. Possible
     * values include: 'lite', 'full'
     *
     * @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(sourceHost: string, ownerName: string, appName: string, options?: { vstsAccountName? : string, vstsProjectId? : string, form? : string, customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<models.SourceRepository[]>>;

    /**
     * Gets the repositories available from the source code host
     *
     * @param {string} sourceHost The source host. Possible values include:
     * 'github', 'bitbucket', 'vsts'
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @param {object} [options] Optional Parameters.
     *
     * @param {string} [options.vstsAccountName] Filter repositories only for
     * specified account and project, "vstsProjectId" is required
     *
     * @param {string} [options.vstsProjectId] Filter repositories only for
     * specified account and project, "vstsAccountName" is required
     *
     * @param {string} [options.form] The selected form of the object. Possible
     * values include: 'lite', 'full'
     *
     * @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(sourceHost: string, ownerName: string, appName: string, options?: { vstsAccountName? : string, vstsProjectId? : string, form? : string, customHeaders? : { [headerName: string]: string; } }): Promise<models.SourceRepository[]>;
    list(sourceHost: string, ownerName: string, appName: string, callback: ServiceCallback<models.SourceRepository[]>): void;
    list(sourceHost: string, ownerName: string, appName: string, options: { vstsAccountName? : string, vstsProjectId? : string, form? : string, customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<models.SourceRepository[]>): void;
}

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


    /**
     * Returns the repository build configuration status of the app
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @param {object} [options] Optional Parameters.
     *
     * @param {boolean} [options.includeInactive] Include inactive configurations
     * if none are active
     *
     * @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(ownerName: string, appName: string, options?: { includeInactive? : boolean, customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<models.RepoConfig[]>>;

    /**
     * Returns the repository build configuration status of the app
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @param {object} [options] Optional Parameters.
     *
     * @param {boolean} [options.includeInactive] Include inactive configurations
     * if none are active
     *
     * @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(ownerName: string, appName: string, options?: { includeInactive? : boolean, customHeaders? : { [headerName: string]: string; } }): Promise<models.RepoConfig[]>;
    list(ownerName: string, appName: string, callback: ServiceCallback<models.RepoConfig[]>): void;
    list(ownerName: string, appName: string, options: { includeInactive? : boolean, customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<models.RepoConfig[]>): void;


    /**
     * Configures the repository for build
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @param {string} repoUrl The repository url
     *
     * @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<SuccessResponse>} - The deserialized result object.
     *
     * @reject {Error|ServiceError} - The error object.
     */
    createOrUpdateWithHttpOperationResponse(ownerName: string, appName: string, repoUrl: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<models.SuccessResponse>>;

    /**
     * Configures the repository for build
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @param {string} repoUrl The repository url
     *
     * @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 {SuccessResponse} - 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.
     *
     *                      {SuccessResponse} [result]   - The deserialized result object if an error did not occur.
     *                      See {@link SuccessResponse} 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.
     */
    createOrUpdate(ownerName: string, appName: string, repoUrl: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<models.SuccessResponse>;
    createOrUpdate(ownerName: string, appName: string, repoUrl: string, callback: ServiceCallback<models.SuccessResponse>): void;
    createOrUpdate(ownerName: string, appName: string, repoUrl: string, options: { customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<models.SuccessResponse>): void;


    /**
     * Removes the configuration for the respository
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @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<SuccessResponse>} - The deserialized result object.
     *
     * @reject {Error|ServiceError} - The error object.
     */
    deleteMethodWithHttpOperationResponse(ownerName: string, appName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<models.SuccessResponse>>;

    /**
     * Removes the configuration for the respository
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @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 {SuccessResponse} - 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.
     *
     *                      {SuccessResponse} [result]   - The deserialized result object if an error did not occur.
     *                      See {@link SuccessResponse} 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(ownerName: string, appName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<models.SuccessResponse>;
    deleteMethod(ownerName: string, appName: string, callback: ServiceCallback<models.SuccessResponse>): void;
    deleteMethod(ownerName: string, appName: string, options: { customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<models.SuccessResponse>): void;
}

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


    /**
     * Return information about the provisioning profile. Only available for iOS.
     *
     * @param {number} releaseId The release_id
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @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<Object>} - The deserialized result object.
     *
     * @reject {Error|ServiceError} - The error object.
     */
    profileWithHttpOperationResponse(releaseId: number, ownerName: string, appName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<any>>;

    /**
     * Return information about the provisioning profile. Only available for iOS.
     *
     * @param {number} releaseId The release_id
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @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 {Object} - 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.
     *
     *                      {Object} [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.
     */
    profile(releaseId: number, ownerName: string, appName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<any>;
    profile(releaseId: number, ownerName: string, appName: string, callback: ServiceCallback<any>): void;
    profile(releaseId: number, ownerName: string, appName: string, options: { customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<any>): void;
}

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


    /**
     * Commits or aborts the upload process for a release for the specified
     * application
     *
     * @param {string} uploadId The ID of the upload
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @param {string} status The desired operation for the upload. Possible values
     * include: 'committed', 'aborted'
     *
     * @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<ReleaseUploadEndResponse>} - The deserialized result object.
     *
     * @reject {Error|ServiceError} - The error object.
     */
    completeWithHttpOperationResponse(uploadId: string, ownerName: string, appName: string, status: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<models.ReleaseUploadEndResponse>>;

    /**
     * Commits or aborts the upload process for a release for the specified
     * application
     *
     * @param {string} uploadId The ID of the upload
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @param {string} status The desired operation for the upload. Possible values
     * include: 'committed', 'aborted'
     *
     * @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 {ReleaseUploadEndResponse} - 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.
     *
     *                      {ReleaseUploadEndResponse} [result]   - The deserialized result object if an error did not occur.
     *                      See {@link ReleaseUploadEndResponse} 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(uploadId: string, ownerName: string, appName: string, status: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<models.ReleaseUploadEndResponse>;
    complete(uploadId: string, ownerName: string, appName: string, status: string, callback: ServiceCallback<models.ReleaseUploadEndResponse>): void;
    complete(uploadId: string, ownerName: string, appName: string, status: string, options: { customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<models.ReleaseUploadEndResponse>): void;


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

    /**
     * Begins the upload process for a new release for the specified application.
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @param {object} [options] Optional Parameters.
     *
     * @param {number} [options.releaseId] The ID of the release.
     *
     * @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 {ReleaseUploadBeginResponse} - 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.
     *
     *                      {ReleaseUploadBeginResponse} [result]   - The deserialized result object if an error did not occur.
     *                      See {@link ReleaseUploadBeginResponse} 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(ownerName: string, appName: string, options?: { releaseId? : number, customHeaders? : { [headerName: string]: string; } }): Promise<models.ReleaseUploadBeginResponse>;
    create(ownerName: string, appName: string, callback: ServiceCallback<models.ReleaseUploadBeginResponse>): void;
    create(ownerName: string, appName: string, options: { releaseId? : number, customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<models.ReleaseUploadBeginResponse>): void;
}

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


    /**
     * Returns whether a push configuration exists for the selected app.
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @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<null>} - The deserialized result object.
     *
     * @reject {Error|ServiceError} - The error object.
     */
    configExistsWithHttpOperationResponse(ownerName: string, appName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<void>>;

    /**
     * Returns whether a push configuration exists for the selected app.
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @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 {null} - 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.
     *
     *                      {null} [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.
     */
    configExists(ownerName: string, appName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<void>;
    configExists(ownerName: string, appName: string, callback: ServiceCallback<void>): void;
    configExists(ownerName: string, appName: string, options: { customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<void>): void;


    /**
     * Get the push configuration for the selected app.
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @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<NotificationConfigResult>} - The deserialized result object.
     *
     * @reject {Error|ServiceError} - The error object.
     */
    getConfigWithHttpOperationResponse(ownerName: string, appName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<models.NotificationConfigResult>>;

    /**
     * Get the push configuration for the selected app.
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @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 {NotificationConfigResult} - 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.
     *
     *                      {NotificationConfigResult} [result]   - The deserialized result object if an error did not occur.
     *                      See {@link NotificationConfigResult} 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.
     */
    getConfig(ownerName: string, appName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<models.NotificationConfigResult>;
    getConfig(ownerName: string, appName: string, callback: ServiceCallback<models.NotificationConfigResult>): void;
    getConfig(ownerName: string, appName: string, options: { customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<models.NotificationConfigResult>): void;


    /**
     * Set the push configuration for the selected app.
     *
     * @param {object} properties Notification configurations.
     *
     * @param {string} properties.type Polymorphic Discriminator
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @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<NotificationConfigResult>} - The deserialized result object.
     *
     * @reject {Error|ServiceError} - The error object.
     */
    setConfigWithHttpOperationResponse(properties: models.NotificationConfig, ownerName: string, appName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<models.NotificationConfigResult>>;

    /**
     * Set the push configuration for the selected app.
     *
     * @param {object} properties Notification configurations.
     *
     * @param {string} properties.type Polymorphic Discriminator
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @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 {NotificationConfigResult} - 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.
     *
     *                      {NotificationConfigResult} [result]   - The deserialized result object if an error did not occur.
     *                      See {@link NotificationConfigResult} 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.
     */
    setConfig(properties: models.NotificationConfig, ownerName: string, appName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<models.NotificationConfigResult>;
    setConfig(properties: models.NotificationConfig, ownerName: string, appName: string, callback: ServiceCallback<models.NotificationConfigResult>): void;
    setConfig(properties: models.NotificationConfig, ownerName: string, appName: string, options: { customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<models.NotificationConfigResult>): void;


    /**
     * Delete the push configuration for the selected app.
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @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<null>} - The deserialized result object.
     *
     * @reject {Error|ServiceError} - The error object.
     */
    deleteConfigWithHttpOperationResponse(ownerName: string, appName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<void>>;

    /**
     * Delete the push configuration for the selected app.
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @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 {null} - 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.
     *
     *                      {null} [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.
     */
    deleteConfig(ownerName: string, appName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<void>;
    deleteConfig(ownerName: string, appName: string, callback: ServiceCallback<void>): void;
    deleteConfig(ownerName: string, appName: string, options: { customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<void>): void;


    /**
     * Get details about a specific notification.
     *
     * @param {string} notificationId The id of the notification.
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @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<NotificationDetailsResult>} - The deserialized result object.
     *
     * @reject {Error|ServiceError} - The error object.
     */
    getWithHttpOperationResponse(notificationId: string, ownerName: string, appName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<models.NotificationDetailsResult>>;

    /**
     * Get details about a specific notification.
     *
     * @param {string} notificationId The id of the notification.
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @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 {NotificationDetailsResult} - 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.
     *
     *                      {NotificationDetailsResult} [result]   - The deserialized result object if an error did not occur.
     *                      See {@link NotificationDetailsResult} 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(notificationId: string, ownerName: string, appName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<models.NotificationDetailsResult>;
    get(notificationId: string, ownerName: string, appName: string, callback: ServiceCallback<models.NotificationDetailsResult>): void;
    get(notificationId: string, ownerName: string, appName: string, options: { customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<models.NotificationDetailsResult>): void;


    /**
     * Get a list of notifications from the service.
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @param {object} [options] Optional Parameters.
     *
     * @param {number} [options.top] The maximum number of results to return. (0
     * will fetch all results)
     *
     * @param {string} [options.skiptoken] The value identifies a starting point in
     * the collection of entities. This parameter along with limit is used to
     * perform pagination.
     *
     * @param {string} [options.orderby] controls the sorting order and sorting
     * based on which column
     *
     * @param {string} [options.inlinecount] Controls whether or not to include a
     * count of all the items across all pages. Possible values include:
     * 'allpages', 'none'
     *
     * @param {boolean} [options.includeArchived] Include arhived push
     * notifications
     *
     * @param {object} [options.customHeaders] Headers that will be added to the
     * request
     *
     * @returns {Promise} A promise is returned
     *
     * @resolve {HttpOperationResponse<NotificationsListResult>} - The deserialized result object.
     *
     * @reject {Error|ServiceError} - The error object.
     */
    listWithHttpOperationResponse(ownerName: string, appName: string, options?: { top? : number, skiptoken? : string, orderby? : string, inlinecount? : string, includeArchived? : boolean, customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<models.NotificationsListResult>>;

    /**
     * Get a list of notifications from the service.
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @param {object} [options] Optional Parameters.
     *
     * @param {number} [options.top] The maximum number of results to return. (0
     * will fetch all results)
     *
     * @param {string} [options.skiptoken] The value identifies a starting point in
     * the collection of entities. This parameter along with limit is used to
     * perform pagination.
     *
     * @param {string} [options.orderby] controls the sorting order and sorting
     * based on which column
     *
     * @param {string} [options.inlinecount] Controls whether or not to include a
     * count of all the items across all pages. Possible values include:
     * 'allpages', 'none'
     *
     * @param {boolean} [options.includeArchived] Include arhived push
     * notifications
     *
     * @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 {NotificationsListResult} - 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.
     *
     *                      {NotificationsListResult} [result]   - The deserialized result object if an error did not occur.
     *                      See {@link NotificationsListResult} 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(ownerName: string, appName: string, options?: { top? : number, skiptoken? : string, orderby? : string, inlinecount? : string, includeArchived? : boolean, customHeaders? : { [headerName: string]: string; } }): Promise<models.NotificationsListResult>;
    list(ownerName: string, appName: string, callback: ServiceCallback<models.NotificationsListResult>): void;
    list(ownerName: string, appName: string, options: { top? : number, skiptoken? : string, orderby? : string, inlinecount? : string, includeArchived? : boolean, customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<models.NotificationsListResult>): void;


    /**
     * Send a notification to one or more devices.
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @param {object} notificationContent
     *
     * @param {string} notificationContent.name Notification name
     *
     * @param {string} [notificationContent.title] Notification title
     *
     * @param {string} notificationContent.body Notification body
     *
     * @param {object} [notificationContent.customData] Notification custom data
     * (such as badge, color, sound, etc.)
     *
     * @param {object} [options] Optional Parameters.
     *
     * @param {object} [options.notificationTarget]
     *
     * @param {string} options.notificationTarget.type Polymorphic Discriminator
     *
     * @param {object} [options.customHeaders] Headers that will be added to the
     * request
     *
     * @returns {Promise} A promise is returned
     *
     * @resolve {HttpOperationResponse<NotificationSendSucceededResult>} - The deserialized result object.
     *
     * @reject {Error|ServiceError} - The error object.
     */
    sendWithHttpOperationResponse(ownerName: string, appName: string, notificationContent: models.NotificationContent, options?: { notificationTarget? : models.NotificationTarget, customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<models.NotificationSendSucceededResult>>;

    /**
     * Send a notification to one or more devices.
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @param {object} notificationContent
     *
     * @param {string} notificationContent.name Notification name
     *
     * @param {string} [notificationContent.title] Notification title
     *
     * @param {string} notificationContent.body Notification body
     *
     * @param {object} [notificationContent.customData] Notification custom data
     * (such as badge, color, sound, etc.)
     *
     * @param {object} [options] Optional Parameters.
     *
     * @param {object} [options.notificationTarget]
     *
     * @param {string} options.notificationTarget.type Polymorphic Discriminator
     *
     * @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 {NotificationSendSucceededResult} - 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.
     *
     *                      {NotificationSendSucceededResult} [result]   - The deserialized result object if an error did not occur.
     *                      See {@link NotificationSendSucceededResult} 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.
     */
    send(ownerName: string, appName: string, notificationContent: models.NotificationContent, options?: { notificationTarget? : models.NotificationTarget, customHeaders? : { [headerName: string]: string; } }): Promise<models.NotificationSendSucceededResult>;
    send(ownerName: string, appName: string, notificationContent: models.NotificationContent, callback: ServiceCallback<models.NotificationSendSucceededResult>): void;
    send(ownerName: string, appName: string, notificationContent: models.NotificationContent, options: { notificationTarget? : models.NotificationTarget, customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<models.NotificationSendSucceededResult>): void;


    /**
     * Delete a notification.
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @param {array} values List of notification Ids.
     *
     * @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<null>} - The deserialized result object.
     *
     * @reject {Error|ServiceError} - The error object.
     */
    deleteMethodWithHttpOperationResponse(ownerName: string, appName: string, values: string[], options?: { customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<void>>;

    /**
     * Delete a notification.
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @param {array} values List of notification Ids.
     *
     * @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 {null} - 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.
     *
     *                      {null} [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.
     */
    deleteMethod(ownerName: string, appName: string, values: string[], options?: { customHeaders? : { [headerName: string]: string; } }): Promise<void>;
    deleteMethod(ownerName: string, appName: string, values: string[], callback: ServiceCallback<void>): void;
    deleteMethod(ownerName: string, appName: string, values: string[], options: { customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<void>): void;


    /**
     * Delete a device with the selected installId.
     *
     * @param {string} installId device install id
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @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<null>} - The deserialized result object.
     *
     * @reject {Error|ServiceError} - The error object.
     */
    deleteInstallIdWithHttpOperationResponse(installId: string, ownerName: string, appName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<void>>;

    /**
     * Delete a device with the selected installId.
     *
     * @param {string} installId device install id
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @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 {null} - 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.
     *
     *                      {null} [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.
     */
    deleteInstallId(installId: string, ownerName: string, appName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<void>;
    deleteInstallId(installId: string, ownerName: string, appName: string, callback: ServiceCallback<void>): void;
    deleteInstallId(installId: string, ownerName: string, appName: string, options: { customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<void>): void;


    /**
     * Get the status of an export operation.
     *
     * @param {string} exportId The id of the export.
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @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<ExportStatusResult>} - The deserialized result object.
     *
     * @reject {Error|ServiceError} - The error object.
     */
    exportDevicesStatusWithHttpOperationResponse(exportId: string, ownerName: string, appName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<models.ExportStatusResult>>;

    /**
     * Get the status of an export operation.
     *
     * @param {string} exportId The id of the export.
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @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 {ExportStatusResult} - 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.
     *
     *                      {ExportStatusResult} [result]   - The deserialized result object if an error did not occur.
     *                      See {@link ExportStatusResult} 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.
     */
    exportDevicesStatus(exportId: string, ownerName: string, appName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<models.ExportStatusResult>;
    exportDevicesStatus(exportId: string, ownerName: string, appName: string, callback: ServiceCallback<models.ExportStatusResult>): void;
    exportDevicesStatus(exportId: string, ownerName: string, appName: string, options: { customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<models.ExportStatusResult>): void;


    /**
     * Exports information for all devices using Push to Azure Blob Storage
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @param {string} blobContainerSasUri A shared access signature (SAS) URI with
     * Read, Write and Delete permissions on a container.
     *
     * @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<ExportStartedResult>} - The deserialized result object.
     *
     * @reject {Error|ServiceError} - The error object.
     */
    exportDevicesWithHttpOperationResponse(ownerName: string, appName: string, blobContainerSasUri: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<models.ExportStartedResult>>;

    /**
     * Exports information for all devices using Push to Azure Blob Storage
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @param {string} blobContainerSasUri A shared access signature (SAS) URI with
     * Read, Write and Delete permissions on a container.
     *
     * @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 {ExportStartedResult} - 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.
     *
     *                      {ExportStartedResult} [result]   - The deserialized result object if an error did not occur.
     *                      See {@link ExportStartedResult} 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.
     */
    exportDevices(ownerName: string, appName: string, blobContainerSasUri: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<models.ExportStartedResult>;
    exportDevices(ownerName: string, appName: string, blobContainerSasUri: string, callback: ServiceCallback<models.ExportStartedResult>): void;
    exportDevices(ownerName: string, appName: string, blobContainerSasUri: string, options: { customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<models.ExportStartedResult>): void;
}

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


    /**
     * Create a new asset to upload a file
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @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<FileAsset>} - The deserialized result object.
     *
     * @reject {Error|ServiceError} - The error object.
     */
    createWithHttpOperationResponse(ownerName: string, appName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<models.FileAsset>>;

    /**
     * Create a new asset to upload a file
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @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 {FileAsset} - 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.
     *
     *                      {FileAsset} [result]   - The deserialized result object if an error did not occur.
     *                      See {@link FileAsset} 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(ownerName: string, appName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<models.FileAsset>;
    create(ownerName: string, appName: string, callback: ServiceCallback<models.FileAsset>): void;
    create(ownerName: string, appName: string, options: { customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<models.FileAsset>): void;
}

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


    /**
     * Enable export configuration.
     *
     * @param {string} exportConfigurationId The id of the export configuration.
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @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<null>} - The deserialized result object.
     *
     * @reject {Error|ServiceError} - The error object.
     */
    enableWithHttpOperationResponse(exportConfigurationId: string, ownerName: string, appName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<void>>;

    /**
     * Enable export configuration.
     *
     * @param {string} exportConfigurationId The id of the export configuration.
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @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 {null} - 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.
     *
     *                      {null} [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.
     */
    enable(exportConfigurationId: string, ownerName: string, appName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<void>;
    enable(exportConfigurationId: string, ownerName: string, appName: string, callback: ServiceCallback<void>): void;
    enable(exportConfigurationId: string, ownerName: string, appName: string, options: { customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<void>): void;


    /**
     * Disable export configuration.
     *
     * @param {string} exportConfigurationId The id of the export configuration.
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @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<null>} - The deserialized result object.
     *
     * @reject {Error|ServiceError} - The error object.
     */
    disableWithHttpOperationResponse(exportConfigurationId: string, ownerName: string, appName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<void>>;

    /**
     * Disable export configuration.
     *
     * @param {string} exportConfigurationId The id of the export configuration.
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @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 {null} - 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.
     *
     *                      {null} [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.
     */
    disable(exportConfigurationId: string, ownerName: string, appName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<void>;
    disable(exportConfigurationId: string, ownerName: string, appName: string, callback: ServiceCallback<void>): void;
    disable(exportConfigurationId: string, ownerName: string, appName: string, options: { customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<void>): void;


    /**
     * Get export configuration.
     *
     * @param {string} exportConfigurationId The id of the export configuration.
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @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<ExportConfigurationResult>} - The deserialized result object.
     *
     * @reject {Error|ServiceError} - The error object.
     */
    getWithHttpOperationResponse(exportConfigurationId: string, ownerName: string, appName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<models.ExportConfigurationResult>>;

    /**
     * Get export configuration.
     *
     * @param {string} exportConfigurationId The id of the export configuration.
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @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 {ExportConfigurationResult} - 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.
     *
     *                      {ExportConfigurationResult} [result]   - The deserialized result object if an error did not occur.
     *                      See {@link ExportConfigurationResult} 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(exportConfigurationId: string, ownerName: string, appName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<models.ExportConfigurationResult>;
    get(exportConfigurationId: string, ownerName: string, appName: string, callback: ServiceCallback<models.ExportConfigurationResult>): void;
    get(exportConfigurationId: string, ownerName: string, appName: string, options: { customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<models.ExportConfigurationResult>): void;


    /**
     * Partially update export configuration.
     *
     * @param {string} exportConfigurationId The id of the export configuration.
     *
     * @param {object} properties Export configurations.
     *
     * @param {array} [properties.exportEntities]
     *
     * @param {string} [properties.resourceName] The resource name on azure
     *
     * @param {string} [properties.resourceGroup] The resource group name on azure
     *
     * @param {string} properties.type Polymorphic Discriminator
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @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<ExportConfigurationResult>} - The deserialized result object.
     *
     * @reject {Error|ServiceError} - The error object.
     */
    partialUpdateWithHttpOperationResponse(exportConfigurationId: string, properties: models.ExportConfiguration, ownerName: string, appName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<models.ExportConfigurationResult>>;

    /**
     * Partially update export configuration.
     *
     * @param {string} exportConfigurationId The id of the export configuration.
     *
     * @param {object} properties Export configurations.
     *
     * @param {array} [properties.exportEntities]
     *
     * @param {string} [properties.resourceName] The resource name on azure
     *
     * @param {string} [properties.resourceGroup] The resource group name on azure
     *
     * @param {string} properties.type Polymorphic Discriminator
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @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 {ExportConfigurationResult} - 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.
     *
     *                      {ExportConfigurationResult} [result]   - The deserialized result object if an error did not occur.
     *                      See {@link ExportConfigurationResult} 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.
     */
    partialUpdate(exportConfigurationId: string, properties: models.ExportConfiguration, ownerName: string, appName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<models.ExportConfigurationResult>;
    partialUpdate(exportConfigurationId: string, properties: models.ExportConfiguration, ownerName: string, appName: string, callback: ServiceCallback<models.ExportConfigurationResult>): void;
    partialUpdate(exportConfigurationId: string, properties: models.ExportConfiguration, ownerName: string, appName: string, options: { customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<models.ExportConfigurationResult>): void;


    /**
     * Delete export configuration.
     *
     * @param {string} exportConfigurationId The id of the export configuration.
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @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<null>} - The deserialized result object.
     *
     * @reject {Error|ServiceError} - The error object.
     */
    deleteMethodWithHttpOperationResponse(exportConfigurationId: string, ownerName: string, appName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<void>>;

    /**
     * Delete export configuration.
     *
     * @param {string} exportConfigurationId The id of the export configuration.
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @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 {null} - 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.
     *
     *                      {null} [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.
     */
    deleteMethod(exportConfigurationId: string, ownerName: string, appName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<void>;
    deleteMethod(exportConfigurationId: string, ownerName: string, appName: string, callback: ServiceCallback<void>): void;
    deleteMethod(exportConfigurationId: string, ownerName: string, appName: string, options: { customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<void>): void;


    /**
     * List export configurations.
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @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<ExportConfigurationListResult>} - The deserialized result object.
     *
     * @reject {Error|ServiceError} - The error object.
     */
    listWithHttpOperationResponse(ownerName: string, appName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<models.ExportConfigurationListResult>>;

    /**
     * List export configurations.
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @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 {ExportConfigurationListResult} - 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.
     *
     *                      {ExportConfigurationListResult} [result]   - The deserialized result object if an error did not occur.
     *                      See {@link ExportConfigurationListResult} 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(ownerName: string, appName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<models.ExportConfigurationListResult>;
    list(ownerName: string, appName: string, callback: ServiceCallback<models.ExportConfigurationListResult>): void;
    list(ownerName: string, appName: string, options: { customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<models.ExportConfigurationListResult>): void;


    /**
     * Create new export configuration
     *
     * @param {object} properties Export configurations.
     *
     * @param {array} [properties.exportEntities]
     *
     * @param {string} [properties.resourceName] The resource name on azure
     *
     * @param {string} [properties.resourceGroup] The resource group name on azure
     *
     * @param {string} properties.type Polymorphic Discriminator
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @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<ExportConfigurationResult>} - The deserialized result object.
     *
     * @reject {Error|ServiceError} - The error object.
     */
    createWithHttpOperationResponse(properties: models.ExportConfiguration, ownerName: string, appName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<models.ExportConfigurationResult>>;

    /**
     * Create new export configuration
     *
     * @param {object} properties Export configurations.
     *
     * @param {array} [properties.exportEntities]
     *
     * @param {string} [properties.resourceName] The resource name on azure
     *
     * @param {string} [properties.resourceGroup] The resource group name on azure
     *
     * @param {string} properties.type Polymorphic Discriminator
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @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 {ExportConfigurationResult} - 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.
     *
     *                      {ExportConfigurationResult} [result]   - The deserialized result object if an error did not occur.
     *                      See {@link ExportConfigurationResult} 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(properties: models.ExportConfiguration, ownerName: string, appName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<models.ExportConfigurationResult>;
    create(properties: models.ExportConfiguration, ownerName: string, appName: string, callback: ServiceCallback<models.ExportConfigurationResult>): void;
    create(properties: models.ExportConfiguration, ownerName: string, appName: string, options: { customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<models.ExportConfigurationResult>): void;
}

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


    /**
     * Get session logs by error ID
     *
     * @param {string} errorId The id of the error
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @param {object} [options] Optional Parameters.
     *
     * @param {date} [options.date] Date of data requested
     *
     * @param {object} [options.customHeaders] Headers that will be added to the
     * request
     *
     * @returns {Promise} A promise is returned
     *
     * @resolve {HttpOperationResponse<GenericLogContainerDiagnostics>} - The deserialized result object.
     *
     * @reject {Error|ServiceError} - The error object.
     */
    listSessionLogsWithHttpOperationResponse(errorId: string, ownerName: string, appName: string, options?: { date? : Date, customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<models.GenericLogContainerDiagnostics>>;

    /**
     * Get session logs by error ID
     *
     * @param {string} errorId The id of the error
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @param {object} [options] Optional Parameters.
     *
     * @param {date} [options.date] Date of data requested
     *
     * @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 {GenericLogContainerDiagnostics} - 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.
     *
     *                      {GenericLogContainerDiagnostics} [result]   - The deserialized result object if an error did not occur.
     *                      See {@link GenericLogContainerDiagnostics} 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.
     */
    listSessionLogs(errorId: string, ownerName: string, appName: string, options?: { date? : Date, customHeaders? : { [headerName: string]: string; } }): Promise<models.GenericLogContainerDiagnostics>;
    listSessionLogs(errorId: string, ownerName: string, appName: string, callback: ServiceCallback<models.GenericLogContainerDiagnostics>): void;
    listSessionLogs(errorId: string, ownerName: string, appName: string, options: { date? : Date, customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<models.GenericLogContainerDiagnostics>): void;


    /**
     * Error attachment text.
     *
     * @param {string} errorId The id of the error
     *
     * @param {string} attachmentId Error attachment id.
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @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<ErrorAttachmentText>} - The deserialized result object.
     *
     * @reject {Error|ServiceError} - The error object.
     */
    errorAttachmentTextMethodWithHttpOperationResponse(errorId: string, attachmentId: string, ownerName: string, appName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<models.ErrorAttachmentText>>;

    /**
     * Error attachment text.
     *
     * @param {string} errorId The id of the error
     *
     * @param {string} attachmentId Error attachment id.
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @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 {ErrorAttachmentText} - 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.
     *
     *                      {ErrorAttachmentText} [result]   - The deserialized result object if an error did not occur.
     *                      See {@link ErrorAttachmentText} 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.
     */
    errorAttachmentTextMethod(errorId: string, attachmentId: string, ownerName: string, appName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<models.ErrorAttachmentText>;
    errorAttachmentTextMethod(errorId: string, attachmentId: string, ownerName: string, appName: string, callback: ServiceCallback<models.ErrorAttachmentText>): void;
    errorAttachmentTextMethod(errorId: string, attachmentId: string, ownerName: string, appName: string, options: { customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<models.ErrorAttachmentText>): void;


    /**
     * Error attachment location.
     *
     * @param {string} errorId The id of the error
     *
     * @param {string} attachmentId Error attachment id.
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @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<ErrorAttachmentLocation>} - The deserialized result object.
     *
     * @reject {Error|ServiceError} - The error object.
     */
    errorAttachmentLocationMethodWithHttpOperationResponse(errorId: string, attachmentId: string, ownerName: string, appName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<models.ErrorAttachmentLocation>>;

    /**
     * Error attachment location.
     *
     * @param {string} errorId The id of the error
     *
     * @param {string} attachmentId Error attachment id.
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @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 {ErrorAttachmentLocation} - 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.
     *
     *                      {ErrorAttachmentLocation} [result]   - The deserialized result object if an error did not occur.
     *                      See {@link ErrorAttachmentLocation} 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.
     */
    errorAttachmentLocationMethod(errorId: string, attachmentId: string, ownerName: string, appName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<models.ErrorAttachmentLocation>;
    errorAttachmentLocationMethod(errorId: string, attachmentId: string, ownerName: string, appName: string, callback: ServiceCallback<models.ErrorAttachmentLocation>): void;
    errorAttachmentLocationMethod(errorId: string, attachmentId: string, ownerName: string, appName: string, options: { customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<models.ErrorAttachmentLocation>): void;


    /**
     * List error attachments.
     *
     * @param {string} errorId The id of the error
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @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.
     */
    errorAttachmentsWithHttpOperationResponse(errorId: string, ownerName: string, appName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<models.ErrorAttachment[]>>;

    /**
     * List error attachments.
     *
     * @param {string} errorId The id of the error
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @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.
     */
    errorAttachments(errorId: string, ownerName: string, appName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<models.ErrorAttachment[]>;
    errorAttachments(errorId: string, ownerName: string, appName: string, callback: ServiceCallback<models.ErrorAttachment[]>): void;
    errorAttachments(errorId: string, ownerName: string, appName: string, options: { customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<models.ErrorAttachment[]>): void;


    /**
     * Errors list based on search parameters
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @param {object} [options] Optional Parameters.
     *
     * @param {string} [options.filter] A filter as specified in OData notation
     *
     * @param {string} [options.q] A query string
     *
     * @param {string} [options.order] It controls the order of sorting. Possible
     * values include: 'desc', 'asc'
     *
     * @param {string} [options.sort] It controls the sort based on specified
     * field. Possible values include: 'timestamp', 'errorGroupId',
     * 'exceptionClassName', 'exceptionFile', 'exceptionLine', 'exceptionMessage',
     * 'exceptionMethod', 'deviceName', 'osVersion', 'userId'
     *
     * @param {number} [options.top] The maximum number of results to return
     *
     * @param {number} [options.skip] The offset (starting at 0) of the first
     * result to return. This parameter along with limit is used to perform
     * pagination.
     *
     * @param {object} [options.customHeaders] Headers that will be added to the
     * request
     *
     * @returns {Promise} A promise is returned
     *
     * @resolve {HttpOperationResponse<ErrorsSearchResult>} - The deserialized result object.
     *
     * @reject {Error|ServiceError} - The error object.
     */
    errorSearchWithHttpOperationResponse(ownerName: string, appName: string, options?: { filter? : string, q? : string, order? : string, sort? : string, top? : number, skip? : number, customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<models.ErrorsSearchResult>>;

    /**
     * Errors list based on search parameters
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @param {object} [options] Optional Parameters.
     *
     * @param {string} [options.filter] A filter as specified in OData notation
     *
     * @param {string} [options.q] A query string
     *
     * @param {string} [options.order] It controls the order of sorting. Possible
     * values include: 'desc', 'asc'
     *
     * @param {string} [options.sort] It controls the sort based on specified
     * field. Possible values include: 'timestamp', 'errorGroupId',
     * 'exceptionClassName', 'exceptionFile', 'exceptionLine', 'exceptionMessage',
     * 'exceptionMethod', 'deviceName', 'osVersion', 'userId'
     *
     * @param {number} [options.top] The maximum number of results to return
     *
     * @param {number} [options.skip] The offset (starting at 0) of the first
     * result to return. This parameter along with limit is used to perform
     * pagination.
     *
     * @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 {ErrorsSearchResult} - 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.
     *
     *                      {ErrorsSearchResult} [result]   - The deserialized result object if an error did not occur.
     *                      See {@link ErrorsSearchResult} 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.
     */
    errorSearch(ownerName: string, appName: string, options?: { filter? : string, q? : string, order? : string, sort? : string, top? : number, skip? : number, customHeaders? : { [headerName: string]: string; } }): Promise<models.ErrorsSearchResult>;
    errorSearch(ownerName: string, appName: string, callback: ServiceCallback<models.ErrorsSearchResult>): void;
    errorSearch(ownerName: string, appName: string, options: { filter? : string, q? : string, order? : string, sort? : string, top? : number, skip? : number, customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<models.ErrorsSearchResult>): void;


    /**
     * @summary Creates and updates the retention settings in days
     *
     * Creates and updates the retention settings in days
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @param {number} retentionInDays
     *
     * @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<ErrorRetentionSettings>} - The deserialized result object.
     *
     * @reject {Error|ServiceError} - The error object.
     */
    putRetentionSettingsWithHttpOperationResponse(ownerName: string, appName: string, retentionInDays: number, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<models.ErrorRetentionSettings>>;

    /**
     * @summary Creates and updates the retention settings in days
     *
     * Creates and updates the retention settings in days
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @param {number} retentionInDays
     *
     * @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 {ErrorRetentionSettings} - 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.
     *
     *                      {ErrorRetentionSettings} [result]   - The deserialized result object if an error did not occur.
     *                      See {@link ErrorRetentionSettings} 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.
     */
    putRetentionSettings(ownerName: string, appName: string, retentionInDays: number, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<models.ErrorRetentionSettings>;
    putRetentionSettings(ownerName: string, appName: string, retentionInDays: number, callback: ServiceCallback<models.ErrorRetentionSettings>): void;
    putRetentionSettings(ownerName: string, appName: string, retentionInDays: number, options: { customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<models.ErrorRetentionSettings>): void;


    /**
     * @summary gets the retention settings in days
     *
     * gets the retention settings in days
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @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<ErrorRetentionSettings>} - The deserialized result object.
     *
     * @reject {Error|ServiceError} - The error object.
     */
    getRetentionSettingsWithHttpOperationResponse(ownerName: string, appName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<models.ErrorRetentionSettings>>;

    /**
     * @summary gets the retention settings in days
     *
     * gets the retention settings in days
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @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 {ErrorRetentionSettings} - 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.
     *
     *                      {ErrorRetentionSettings} [result]   - The deserialized result object if an error did not occur.
     *                      See {@link ErrorRetentionSettings} 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.
     */
    getRetentionSettings(ownerName: string, appName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<models.ErrorRetentionSettings>;
    getRetentionSettings(ownerName: string, appName: string, callback: ServiceCallback<models.ErrorRetentionSettings>): void;
    getRetentionSettings(ownerName: string, appName: string, options: { customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<models.ErrorRetentionSettings>): void;


    /**
     * Percentage of error-free devices by day in the time range based on the
     * selected versions. If SingleErrorTypeParameter is not provided, defaults to
     * handlederror. API will return -1 if crash devices is greater than active
     * devices
     *
     * @param {date} start Start date time in data in ISO 8601 date time format
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @param {object} [options] Optional Parameters.
     *
     * @param {date} [options.end] Last date time in data in ISO 8601 date time
     * format
     *
     * @param {array} [options.versions]
     *
     * @param {string} [options.errorType] Type of error (handled vs unhandled),
     * excluding All. Possible values include: 'unhandledError', 'handledError'
     *
     * @param {object} [options.customHeaders] Headers that will be added to the
     * request
     *
     * @returns {Promise} A promise is returned
     *
     * @resolve {HttpOperationResponse<ErrorFreeDevicePercentages>} - The deserialized result object.
     *
     * @reject {Error|ServiceError} - The error object.
     */
    errorFreeDevicePercentagesMethodWithHttpOperationResponse(start: Date|string, ownerName: string, appName: string, options?: { end? : Date, versions? : string[], errorType? : string, customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<models.ErrorFreeDevicePercentages>>;

    /**
     * Percentage of error-free devices by day in the time range based on the
     * selected versions. If SingleErrorTypeParameter is not provided, defaults to
     * handlederror. API will return -1 if crash devices is greater than active
     * devices
     *
     * @param {date} start Start date time in data in ISO 8601 date time format
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @param {object} [options] Optional Parameters.
     *
     * @param {date} [options.end] Last date time in data in ISO 8601 date time
     * format
     *
     * @param {array} [options.versions]
     *
     * @param {string} [options.errorType] Type of error (handled vs unhandled),
     * excluding All. Possible values include: 'unhandledError', 'handledError'
     *
     * @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 {ErrorFreeDevicePercentages} - 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.
     *
     *                      {ErrorFreeDevicePercentages} [result]   - The deserialized result object if an error did not occur.
     *                      See {@link ErrorFreeDevicePercentages} 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.
     */
    errorFreeDevicePercentagesMethod(start: Date|string, ownerName: string, appName: string, options?: { end? : Date, versions? : string[], errorType? : string, customHeaders? : { [headerName: string]: string; } }): Promise<models.ErrorFreeDevicePercentages>;
    errorFreeDevicePercentagesMethod(start: Date|string, ownerName: string, appName: string, callback: ServiceCallback<models.ErrorFreeDevicePercentages>): void;
    errorFreeDevicePercentagesMethod(start: Date|string, ownerName: string, appName: string, options: { end? : Date, versions? : string[], errorType? : string, customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<models.ErrorFreeDevicePercentages>): void;


    /**
     * Gets the stack trace for the error group.
     *
     * @param {string} errorGroupId The id of the error group
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @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<DiagnosticsStackTrace>} - The deserialized result object.
     *
     * @reject {Error|ServiceError} - The error object.
     */
    groupErrorStackTraceWithHttpOperationResponse(errorGroupId: string, ownerName: string, appName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<models.DiagnosticsStackTrace>>;

    /**
     * Gets the stack trace for the error group.
     *
     * @param {string} errorGroupId The id of the error group
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @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 {DiagnosticsStackTrace} - 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.
     *
     *                      {DiagnosticsStackTrace} [result]   - The deserialized result object if an error did not occur.
     *                      See {@link DiagnosticsStackTrace} 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.
     */
    groupErrorStackTrace(errorGroupId: string, ownerName: string, appName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<models.DiagnosticsStackTrace>;
    groupErrorStackTrace(errorGroupId: string, ownerName: string, appName: string, callback: ServiceCallback<models.DiagnosticsStackTrace>): void;
    groupErrorStackTrace(errorGroupId: string, ownerName: string, appName: string, options: { customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<models.DiagnosticsStackTrace>): void;


    /**
     * Top OSes of the selected error group.
     *
     * @param {string} errorGroupId The id of the error group
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @param {object} [options] Optional Parameters.
     *
     * @param {number} [options.top] The maximum number of results to return. (0
     * will fetch all results till the max number.)
     *
     * @param {object} [options.customHeaders] Headers that will be added to the
     * request
     *
     * @returns {Promise} A promise is returned
     *
     * @resolve {HttpOperationResponse<ErrorGroupOperatingSystems>} - The deserialized result object.
     *
     * @reject {Error|ServiceError} - The error object.
     */
    groupOperatingSystemCountsWithHttpOperationResponse(errorGroupId: string, ownerName: string, appName: string, options?: { top? : number, customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<models.ErrorGroupOperatingSystems>>;

    /**
     * Top OSes of the selected error group.
     *
     * @param {string} errorGroupId The id of the error group
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @param {object} [options] Optional Parameters.
     *
     * @param {number} [options.top] The maximum number of results to return. (0
     * will fetch all results till the max number.)
     *
     * @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 {ErrorGroupOperatingSystems} - 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.
     *
     *                      {ErrorGroupOperatingSystems} [result]   - The deserialized result object if an error did not occur.
     *                      See {@link ErrorGroupOperatingSystems} 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.
     */
    groupOperatingSystemCounts(errorGroupId: string, ownerName: string, appName: string, options?: { top? : number, customHeaders? : { [headerName: string]: string; } }): Promise<models.ErrorGroupOperatingSystems>;
    groupOperatingSystemCounts(errorGroupId: string, ownerName: string, appName: string, callback: ServiceCallback<models.ErrorGroupOperatingSystems>): void;
    groupOperatingSystemCounts(errorGroupId: string, ownerName: string, appName: string, options: { top? : number, customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<models.ErrorGroupOperatingSystems>): void;


    /**
     * Top models of the selected error group.
     *
     * @param {string} errorGroupId The id of the error group
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @param {object} [options] Optional Parameters.
     *
     * @param {number} [options.top] The maximum number of results to return. (0
     * will fetch all results till the max number.)
     *
     * @param {object} [options.customHeaders] Headers that will be added to the
     * request
     *
     * @returns {Promise} A promise is returned
     *
     * @resolve {HttpOperationResponse<ErrorGroupModels>} - The deserialized result object.
     *
     * @reject {Error|ServiceError} - The error object.
     */
    groupModelCountsWithHttpOperationResponse(errorGroupId: string, ownerName: string, appName: string, options?: { top? : number, customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<models.ErrorGroupModels>>;

    /**
     * Top models of the selected error group.
     *
     * @param {string} errorGroupId The id of the error group
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @param {object} [options] Optional Parameters.
     *
     * @param {number} [options.top] The maximum number of results to return. (0
     * will fetch all results till the max number.)
     *
     * @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 {ErrorGroupModels} - 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.
     *
     *                      {ErrorGroupModels} [result]   - The deserialized result object if an error did not occur.
     *                      See {@link ErrorGroupModels} 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.
     */
    groupModelCounts(errorGroupId: string, ownerName: string, appName: string, options?: { top? : number, customHeaders? : { [headerName: string]: string; } }): Promise<models.ErrorGroupModels>;
    groupModelCounts(errorGroupId: string, ownerName: string, appName: string, callback: ServiceCallback<models.ErrorGroupModels>): void;
    groupModelCounts(errorGroupId: string, ownerName: string, appName: string, options: { top? : number, customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<models.ErrorGroupModels>): void;


    /**
     * Error Stacktrace details.
     *
     * @param {string} errorGroupId The id of the error group
     *
     * @param {string} errorId The id of the error
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @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<DiagnosticsStackTrace>} - The deserialized result object.
     *
     * @reject {Error|ServiceError} - The error object.
     */
    errorStackTraceWithHttpOperationResponse(errorGroupId: string, errorId: string, ownerName: string, appName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<models.DiagnosticsStackTrace>>;

    /**
     * Error Stacktrace details.
     *
     * @param {string} errorGroupId The id of the error group
     *
     * @param {string} errorId The id of the error
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @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 {DiagnosticsStackTrace} - 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.
     *
     *                      {DiagnosticsStackTrace} [result]   - The deserialized result object if an error did not occur.
     *                      See {@link DiagnosticsStackTrace} 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.
     */
    errorStackTrace(errorGroupId: string, errorId: string, ownerName: string, appName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<models.DiagnosticsStackTrace>;
    errorStackTrace(errorGroupId: string, errorId: string, ownerName: string, appName: string, callback: ServiceCallback<models.DiagnosticsStackTrace>): void;
    errorStackTrace(errorGroupId: string, errorId: string, ownerName: string, appName: string, options: { customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<models.DiagnosticsStackTrace>): void;


    /**
     * Error location.
     *
     * @param {string} errorGroupId The id of the error group
     *
     * @param {string} errorId The id of the error
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @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<ErrorLocation>} - The deserialized result object.
     *
     * @reject {Error|ServiceError} - The error object.
     */
    errorLocationMethodWithHttpOperationResponse(errorGroupId: string, errorId: string, ownerName: string, appName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<models.ErrorLocation>>;

    /**
     * Error location.
     *
     * @param {string} errorGroupId The id of the error group
     *
     * @param {string} errorId The id of the error
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @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 {ErrorLocation} - 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.
     *
     *                      {ErrorLocation} [result]   - The deserialized result object if an error did not occur.
     *                      See {@link ErrorLocation} 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.
     */
    errorLocationMethod(errorGroupId: string, errorId: string, ownerName: string, appName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<models.ErrorLocation>;
    errorLocationMethod(errorGroupId: string, errorId: string, ownerName: string, appName: string, callback: ServiceCallback<models.ErrorLocation>): void;
    errorLocationMethod(errorGroupId: string, errorId: string, ownerName: string, appName: string, options: { customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<models.ErrorLocation>): void;


    /**
     * Download details for a specific error.
     *
     * @param {string} errorGroupId The id of the error group
     *
     * @param {string} errorId The id of the error
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @param {object} [options] Optional Parameters.
     *
     * @param {string} [options.format] the format of the crash log. Possible
     * values include: 'json', 'txt'
     *
     * @param {object} [options.customHeaders] Headers that will be added to the
     * request
     *
     * @returns {Promise} A promise is returned
     *
     * @resolve {HttpOperationResponse<Object>} - The deserialized result object.
     *
     * @reject {Error|ServiceError} - The error object.
     */
    errorDownloadWithHttpOperationResponse(errorGroupId: string, errorId: string, ownerName: string, appName: string, options?: { format? : string, customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<stream.Readable>>;

    /**
     * Download details for a specific error.
     *
     * @param {string} errorGroupId The id of the error group
     *
     * @param {string} errorId The id of the error
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @param {object} [options] Optional Parameters.
     *
     * @param {string} [options.format] the format of the crash log. Possible
     * values include: 'json', 'txt'
     *
     * @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 {Object} - 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.
     *
     *                      {Object} [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.
     */
    errorDownload(errorGroupId: string, errorId: string, ownerName: string, appName: string, options?: { format? : string, customHeaders? : { [headerName: string]: string; } }): Promise<stream.Readable>;
    errorDownload(errorGroupId: string, errorId: string, ownerName: string, appName: string, callback: ServiceCallback<stream.Readable>): void;
    errorDownload(errorGroupId: string, errorId: string, ownerName: string, appName: string, options: { format? : string, customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<stream.Readable>): void;


    /**
     * Error details.
     *
     * @param {string} errorGroupId The id of the error group
     *
     * @param {string} errorId The id of the error
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @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<HandledErrorDetails>} - The deserialized result object.
     *
     * @reject {Error|ServiceError} - The error object.
     */
    getErrorDetailsWithHttpOperationResponse(errorGroupId: string, errorId: string, ownerName: string, appName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<models.HandledErrorDetails>>;

    /**
     * Error details.
     *
     * @param {string} errorGroupId The id of the error group
     *
     * @param {string} errorId The id of the error
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @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 {HandledErrorDetails} - 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.
     *
     *                      {HandledErrorDetails} [result]   - The deserialized result object if an error did not occur.
     *                      See {@link HandledErrorDetails} 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.
     */
    getErrorDetails(errorGroupId: string, errorId: string, ownerName: string, appName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<models.HandledErrorDetails>;
    getErrorDetails(errorGroupId: string, errorId: string, ownerName: string, appName: string, callback: ServiceCallback<models.HandledErrorDetails>): void;
    getErrorDetails(errorGroupId: string, errorId: string, ownerName: string, appName: string, options: { customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<models.HandledErrorDetails>): void;


    /**
     * Delete a specific error and related attachments and blobs for an app.
     * Searchable data will not be deleted immediately and may take up to 30 days.
     *
     * @param {string} errorGroupId The id of the error group
     *
     * @param {string} errorId The id of the error
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @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<ErrorDeleteCounter>} - The deserialized result object.
     *
     * @reject {Error|ServiceError} - The error object.
     */
    deleteErrorWithHttpOperationResponse(errorGroupId: string, errorId: string, ownerName: string, appName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<models.ErrorDeleteCounter>>;

    /**
     * Delete a specific error and related attachments and blobs for an app.
     * Searchable data will not be deleted immediately and may take up to 30 days.
     *
     * @param {string} errorGroupId The id of the error group
     *
     * @param {string} errorId The id of the error
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @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 {ErrorDeleteCounter} - 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.
     *
     *                      {ErrorDeleteCounter} [result]   - The deserialized result object if an error did not occur.
     *                      See {@link ErrorDeleteCounter} 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.
     */
    deleteError(errorGroupId: string, errorId: string, ownerName: string, appName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<models.ErrorDeleteCounter>;
    deleteError(errorGroupId: string, errorId: string, ownerName: string, appName: string, callback: ServiceCallback<models.ErrorDeleteCounter>): void;
    deleteError(errorGroupId: string, errorId: string, ownerName: string, appName: string, options: { customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<models.ErrorDeleteCounter>): void;


    /**
     * Latest error details.
     *
     * @param {string} errorGroupId The id of the error group
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @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<HandledErrorDetails>} - The deserialized result object.
     *
     * @reject {Error|ServiceError} - The error object.
     */
    latestErrorDetailsWithHttpOperationResponse(errorGroupId: string, ownerName: string, appName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<models.HandledErrorDetails>>;

    /**
     * Latest error details.
     *
     * @param {string} errorGroupId The id of the error group
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @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 {HandledErrorDetails} - 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.
     *
     *                      {HandledErrorDetails} [result]   - The deserialized result object if an error did not occur.
     *                      See {@link HandledErrorDetails} 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.
     */
    latestErrorDetails(errorGroupId: string, ownerName: string, appName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<models.HandledErrorDetails>;
    latestErrorDetails(errorGroupId: string, ownerName: string, appName: string, callback: ServiceCallback<models.HandledErrorDetails>): void;
    latestErrorDetails(errorGroupId: string, ownerName: string, appName: string, options: { customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<models.HandledErrorDetails>): void;


    /**
     * Get all errors for group
     *
     * @param {string} errorGroupId The id of the error group
     *
     * @param {date} start Start date time in data in ISO 8601 date time format
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @param {object} [options] Optional Parameters.
     *
     * @param {date} [options.end] Last date time in data in ISO 8601 date time
     * format
     *
     * @param {string} [options.model]
     *
     * @param {string} [options.os]
     *
     * @param {object} [options.customHeaders] Headers that will be added to the
     * request
     *
     * @returns {Promise} A promise is returned
     *
     * @resolve {HttpOperationResponse<HandledErrors>} - The deserialized result object.
     *
     * @reject {Error|ServiceError} - The error object.
     */
    listForGroupWithHttpOperationResponse(errorGroupId: string, start: Date|string, ownerName: string, appName: string, options?: { end? : Date, model? : string, os? : string, customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<models.HandledErrors>>;

    /**
     * Get all errors for group
     *
     * @param {string} errorGroupId The id of the error group
     *
     * @param {date} start Start date time in data in ISO 8601 date time format
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @param {object} [options] Optional Parameters.
     *
     * @param {date} [options.end] Last date time in data in ISO 8601 date time
     * format
     *
     * @param {string} [options.model]
     *
     * @param {string} [options.os]
     *
     * @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 {HandledErrors} - 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.
     *
     *                      {HandledErrors} [result]   - The deserialized result object if an error did not occur.
     *                      See {@link HandledErrors} 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.
     */
    listForGroup(errorGroupId: string, start: Date|string, ownerName: string, appName: string, options?: { end? : Date, model? : string, os? : string, customHeaders? : { [headerName: string]: string; } }): Promise<models.HandledErrors>;
    listForGroup(errorGroupId: string, start: Date|string, ownerName: string, appName: string, callback: ServiceCallback<models.HandledErrors>): void;
    listForGroup(errorGroupId: string, start: Date|string, ownerName: string, appName: string, options: { end? : Date, model? : string, os? : string, customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<models.HandledErrors>): void;


    /**
     * Percentage of error-free devices by day in the time range. Api will return
     * -1 if crash devices is greater than active devices
     *
     * @param {string} errorGroupId The id of the error group
     *
     * @param {date} start Start date time in data in ISO 8601 date time format
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @param {object} [options] Optional Parameters.
     *
     * @param {date} [options.end] Last date time in data in ISO 8601 date time
     * format
     *
     * @param {object} [options.customHeaders] Headers that will be added to the
     * request
     *
     * @returns {Promise} A promise is returned
     *
     * @resolve {HttpOperationResponse<ErrorFreeDevicePercentages>} - The deserialized result object.
     *
     * @reject {Error|ServiceError} - The error object.
     */
    groupErrorFreeDevicePercentagesWithHttpOperationResponse(errorGroupId: string, start: Date|string, ownerName: string, appName: string, options?: { end? : Date, customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<models.ErrorFreeDevicePercentages>>;

    /**
     * Percentage of error-free devices by day in the time range. Api will return
     * -1 if crash devices is greater than active devices
     *
     * @param {string} errorGroupId The id of the error group
     *
     * @param {date} start Start date time in data in ISO 8601 date time format
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @param {object} [options] Optional Parameters.
     *
     * @param {date} [options.end] Last date time in data in ISO 8601 date time
     * format
     *
     * @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 {ErrorFreeDevicePercentages} - 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.
     *
     *                      {ErrorFreeDevicePercentages} [result]   - The deserialized result object if an error did not occur.
     *                      See {@link ErrorFreeDevicePercentages} 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.
     */
    groupErrorFreeDevicePercentages(errorGroupId: string, start: Date|string, ownerName: string, appName: string, options?: { end? : Date, customHeaders? : { [headerName: string]: string; } }): Promise<models.ErrorFreeDevicePercentages>;
    groupErrorFreeDevicePercentages(errorGroupId: string, start: Date|string, ownerName: string, appName: string, callback: ServiceCallback<models.ErrorFreeDevicePercentages>): void;
    groupErrorFreeDevicePercentages(errorGroupId: string, start: Date|string, ownerName: string, appName: string, options: { end? : Date, customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<models.ErrorFreeDevicePercentages>): void;


    /**
     * Count of errors by day in the time range of the selected error group with
     * selected version
     *
     * @param {string} errorGroupId The id of the error group
     *
     * @param {date} start Start date time in data in ISO 8601 date time format
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @param {object} [options] Optional Parameters.
     *
     * @param {string} [options.version]
     *
     * @param {date} [options.end] Last date time in data in ISO 8601 date time
     * format
     *
     * @param {object} [options.customHeaders] Headers that will be added to the
     * request
     *
     * @returns {Promise} A promise is returned
     *
     * @resolve {HttpOperationResponse<ErrorCounts>} - The deserialized result object.
     *
     * @reject {Error|ServiceError} - The error object.
     */
    groupCountsPerDayWithHttpOperationResponse(errorGroupId: string, start: Date|string, ownerName: string, appName: string, options?: { version? : string, end? : Date, customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<models.ErrorCounts>>;

    /**
     * Count of errors by day in the time range of the selected error group with
     * selected version
     *
     * @param {string} errorGroupId The id of the error group
     *
     * @param {date} start Start date time in data in ISO 8601 date time format
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @param {object} [options] Optional Parameters.
     *
     * @param {string} [options.version]
     *
     * @param {date} [options.end] Last date time in data in ISO 8601 date time
     * format
     *
     * @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 {ErrorCounts} - 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.
     *
     *                      {ErrorCounts} [result]   - The deserialized result object if an error did not occur.
     *                      See {@link ErrorCounts} 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.
     */
    groupCountsPerDay(errorGroupId: string, start: Date|string, ownerName: string, appName: string, options?: { version? : string, end? : Date, customHeaders? : { [headerName: string]: string; } }): Promise<models.ErrorCounts>;
    groupCountsPerDay(errorGroupId: string, start: Date|string, ownerName: string, appName: string, callback: ServiceCallback<models.ErrorCounts>): void;
    groupCountsPerDay(errorGroupId: string, start: Date|string, ownerName: string, appName: string, options: { version? : string, end? : Date, customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<models.ErrorCounts>): void;


    /**
     * Error group details
     *
     * @param {string} errorGroupId The id of the error group
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @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<ErrorGroup>} - The deserialized result object.
     *
     * @reject {Error|ServiceError} - The error object.
     */
    groupDetailsWithHttpOperationResponse(errorGroupId: string, ownerName: string, appName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<models.ErrorGroup>>;

    /**
     * Error group details
     *
     * @param {string} errorGroupId The id of the error group
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @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 {ErrorGroup} - 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.
     *
     *                      {ErrorGroup} [result]   - The deserialized result object if an error did not occur.
     *                      See {@link ErrorGroup} 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.
     */
    groupDetails(errorGroupId: string, ownerName: string, appName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<models.ErrorGroup>;
    groupDetails(errorGroupId: string, ownerName: string, appName: string, callback: ServiceCallback<models.ErrorGroup>): void;
    groupDetails(errorGroupId: string, ownerName: string, appName: string, options: { customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<models.ErrorGroup>): void;


    /**
     * Update error group state
     *
     * @param {string} errorGroupId The id of the error group
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @param {string} state Possible values include: 'open', 'closed', 'ignored'
     *
     * @param {object} [options] Optional Parameters.
     *
     * @param {string} [options.annotation]
     *
     * @param {object} [options.customHeaders] Headers that will be added to the
     * request
     *
     * @returns {Promise} A promise is returned
     *
     * @resolve {HttpOperationResponse<ErrorGroup>} - The deserialized result object.
     *
     * @reject {Error|ServiceError} - The error object.
     */
    updateStateWithHttpOperationResponse(errorGroupId: string, ownerName: string, appName: string, state: string, options?: { annotation? : string, customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<models.ErrorGroup>>;

    /**
     * Update error group state
     *
     * @param {string} errorGroupId The id of the error group
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @param {string} state Possible values include: 'open', 'closed', 'ignored'
     *
     * @param {object} [options] Optional Parameters.
     *
     * @param {string} [options.annotation]
     *
     * @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 {ErrorGroup} - 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.
     *
     *                      {ErrorGroup} [result]   - The deserialized result object if an error did not occur.
     *                      See {@link ErrorGroup} 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.
     */
    updateState(errorGroupId: string, ownerName: string, appName: string, state: string, options?: { annotation? : string, customHeaders? : { [headerName: string]: string; } }): Promise<models.ErrorGroup>;
    updateState(errorGroupId: string, ownerName: string, appName: string, state: string, callback: ServiceCallback<models.ErrorGroup>): void;
    updateState(errorGroupId: string, ownerName: string, appName: string, state: string, options: { annotation? : string, customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<models.ErrorGroup>): void;


    /**
     * Error groups list based on search parameters
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @param {object} [options] Optional Parameters.
     *
     * @param {string} [options.filter] A filter as specified in OData notation
     *
     * @param {string} [options.q] A query string
     *
     * @param {string} [options.order] It controls the order of sorting. Possible
     * values include: 'desc', 'asc'
     *
     * @param {string} [options.sort] It controls the sort based on specified
     * field. Possible values include: 'matchingReportsCount',
     * 'exceptionClassName', 'exceptionMessage', 'exceptionMethod',
     * 'lastOccurrence'
     *
     * @param {number} [options.top] The maximum number of results to return
     *
     * @param {number} [options.skip] The offset (starting at 0) of the first
     * result to return. This parameter along with limit is used to perform
     * pagination.
     *
     * @param {object} [options.customHeaders] Headers that will be added to the
     * request
     *
     * @returns {Promise} A promise is returned
     *
     * @resolve {HttpOperationResponse<ErrorGroupsSearchResult>} - The deserialized result object.
     *
     * @reject {Error|ServiceError} - The error object.
     */
    errorGroupsSearchWithHttpOperationResponse(ownerName: string, appName: string, options?: { filter? : string, q? : string, order? : string, sort? : string, top? : number, skip? : number, customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<models.ErrorGroupsSearchResult>>;

    /**
     * Error groups list based on search parameters
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @param {object} [options] Optional Parameters.
     *
     * @param {string} [options.filter] A filter as specified in OData notation
     *
     * @param {string} [options.q] A query string
     *
     * @param {string} [options.order] It controls the order of sorting. Possible
     * values include: 'desc', 'asc'
     *
     * @param {string} [options.sort] It controls the sort based on specified
     * field. Possible values include: 'matchingReportsCount',
     * 'exceptionClassName', 'exceptionMessage', 'exceptionMethod',
     * 'lastOccurrence'
     *
     * @param {number} [options.top] The maximum number of results to return
     *
     * @param {number} [options.skip] The offset (starting at 0) of the first
     * result to return. This parameter along with limit is used to perform
     * pagination.
     *
     * @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 {ErrorGroupsSearchResult} - 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.
     *
     *                      {ErrorGroupsSearchResult} [result]   - The deserialized result object if an error did not occur.
     *                      See {@link ErrorGroupsSearchResult} 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.
     */
    errorGroupsSearch(ownerName: string, appName: string, options?: { filter? : string, q? : string, order? : string, sort? : string, top? : number, skip? : number, customHeaders? : { [headerName: string]: string; } }): Promise<models.ErrorGroupsSearchResult>;
    errorGroupsSearch(ownerName: string, appName: string, callback: ServiceCallback<models.ErrorGroupsSearchResult>): void;
    errorGroupsSearch(ownerName: string, appName: string, options: { filter? : string, q? : string, order? : string, sort? : string, top? : number, skip? : number, customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<models.ErrorGroupsSearchResult>): void;


    /**
     * List of error groups
     *
     * @param {date} start Start date time in data in ISO 8601 date time format
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @param {object} [options] Optional Parameters.
     *
     * @param {string} [options.version]
     *
     * @param {string} [options.groupState]
     *
     * @param {date} [options.end] Last date time in data in ISO 8601 date time
     * format
     *
     * @param {string} [options.orderby] controls the sorting order and sorting
     * based on which column
     *
     * @param {number} [options.top] The maximum number of results to return. (0
     * will fetch all results till the max number.)
     *
     * @param {string} [options.errorType] Type of error (handled vs unhandled),
     * including All. Possible values include: 'all', 'unhandledError',
     * 'handledError'
     *
     * @param {object} [options.customHeaders] Headers that will be added to the
     * request
     *
     * @returns {Promise} A promise is returned
     *
     * @resolve {HttpOperationResponse<ErrorGroups>} - The deserialized result object.
     *
     * @reject {Error|ServiceError} - The error object.
     */
    groupListWithHttpOperationResponse(start: Date|string, ownerName: string, appName: string, options?: { version? : string, groupState? : string, end? : Date, orderby? : string, top? : number, errorType? : string, customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<models.ErrorGroups>>;

    /**
     * List of error groups
     *
     * @param {date} start Start date time in data in ISO 8601 date time format
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @param {object} [options] Optional Parameters.
     *
     * @param {string} [options.version]
     *
     * @param {string} [options.groupState]
     *
     * @param {date} [options.end] Last date time in data in ISO 8601 date time
     * format
     *
     * @param {string} [options.orderby] controls the sorting order and sorting
     * based on which column
     *
     * @param {number} [options.top] The maximum number of results to return. (0
     * will fetch all results till the max number.)
     *
     * @param {string} [options.errorType] Type of error (handled vs unhandled),
     * including All. Possible values include: 'all', 'unhandledError',
     * 'handledError'
     *
     * @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 {ErrorGroups} - 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.
     *
     *                      {ErrorGroups} [result]   - The deserialized result object if an error did not occur.
     *                      See {@link ErrorGroups} 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.
     */
    groupList(start: Date|string, ownerName: string, appName: string, options?: { version? : string, groupState? : string, end? : Date, orderby? : string, top? : number, errorType? : string, customHeaders? : { [headerName: string]: string; } }): Promise<models.ErrorGroups>;
    groupList(start: Date|string, ownerName: string, appName: string, callback: ServiceCallback<models.ErrorGroups>): void;
    groupList(start: Date|string, ownerName: string, appName: string, options: { version? : string, groupState? : string, end? : Date, orderby? : string, top? : number, errorType? : string, customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<models.ErrorGroups>): void;


    /**
     * Count of crashes or errors by day in the time range based the selected
     * versions. If SingleErrorTypeParameter is not provided, defaults to
     * handlederror.
     *
     * @param {date} start Start date time in data in ISO 8601 date time format
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @param {object} [options] Optional Parameters.
     *
     * @param {string} [options.version]
     *
     * @param {date} [options.end] Last date time in data in ISO 8601 date time
     * format
     *
     * @param {string} [options.errorType] Type of error (handled vs unhandled),
     * excluding All. Possible values include: 'unhandledError', 'handledError'
     *
     * @param {object} [options.customHeaders] Headers that will be added to the
     * request
     *
     * @returns {Promise} A promise is returned
     *
     * @resolve {HttpOperationResponse<ErrorCounts>} - The deserialized result object.
     *
     * @reject {Error|ServiceError} - The error object.
     */
    countsPerDayWithHttpOperationResponse(start: Date|string, ownerName: string, appName: string, options?: { version? : string, end? : Date, errorType? : string, customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<models.ErrorCounts>>;

    /**
     * Count of crashes or errors by day in the time range based the selected
     * versions. If SingleErrorTypeParameter is not provided, defaults to
     * handlederror.
     *
     * @param {date} start Start date time in data in ISO 8601 date time format
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @param {object} [options] Optional Parameters.
     *
     * @param {string} [options.version]
     *
     * @param {date} [options.end] Last date time in data in ISO 8601 date time
     * format
     *
     * @param {string} [options.errorType] Type of error (handled vs unhandled),
     * excluding All. Possible values include: 'unhandledError', 'handledError'
     *
     * @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 {ErrorCounts} - 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.
     *
     *                      {ErrorCounts} [result]   - The deserialized result object if an error did not occur.
     *                      See {@link ErrorCounts} 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.
     */
    countsPerDay(start: Date|string, ownerName: string, appName: string, options?: { version? : string, end? : Date, errorType? : string, customHeaders? : { [headerName: string]: string; } }): Promise<models.ErrorCounts>;
    countsPerDay(start: Date|string, ownerName: string, appName: string, callback: ServiceCallback<models.ErrorCounts>): void;
    countsPerDay(start: Date|string, ownerName: string, appName: string, options: { version? : string, end? : Date, errorType? : string, customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<models.ErrorCounts>): void;


    /**
     * Get all available versions in the time range.
     *
     * @param {date} start Start date time in data in ISO 8601 date time format
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @param {object} [options] Optional Parameters.
     *
     * @param {date} [options.end] Last date time in data in ISO 8601 date time
     * format
     *
     * @param {number} [options.top] The maximum number of results to return. (0
     * will fetch all results till the max number.)
     *
     * @param {number} [options.skip] The offset (starting at 0) of the first
     * result to return. This parameter along with limit is used to perform
     * pagination.
     *
     * @param {string} [options.filter] A filter as specified in
     * https://github.com/Microsoft/api-guidelines/blob/master/Guidelines.md#97-filtering.
     *
     * @param {string} [options.inlinecount] Controls whether or not to include a
     * count of all the items across all pages. Possible values include:
     * 'allpages', 'none'
     *
     * @param {string} [options.errorType] Type of error (handled vs unhandled),
     * including All. Possible values include: 'all', 'unhandledError',
     * 'handledError'
     *
     * @param {object} [options.customHeaders] Headers that will be added to the
     * request
     *
     * @returns {Promise} A promise is returned
     *
     * @resolve {HttpOperationResponse<AvailableVersionsDiagnostics>} - The deserialized result object.
     *
     * @reject {Error|ServiceError} - The error object.
     */
    availableVersionsMethodWithHttpOperationResponse(start: Date|string, ownerName: string, appName: string, options?: { end? : Date, top? : number, skip? : number, filter? : string, inlinecount? : string, errorType? : string, customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<models.AvailableVersionsDiagnostics>>;

    /**
     * Get all available versions in the time range.
     *
     * @param {date} start Start date time in data in ISO 8601 date time format
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @param {object} [options] Optional Parameters.
     *
     * @param {date} [options.end] Last date time in data in ISO 8601 date time
     * format
     *
     * @param {number} [options.top] The maximum number of results to return. (0
     * will fetch all results till the max number.)
     *
     * @param {number} [options.skip] The offset (starting at 0) of the first
     * result to return. This parameter along with limit is used to perform
     * pagination.
     *
     * @param {string} [options.filter] A filter as specified in
     * https://github.com/Microsoft/api-guidelines/blob/master/Guidelines.md#97-filtering.
     *
     * @param {string} [options.inlinecount] Controls whether or not to include a
     * count of all the items across all pages. Possible values include:
     * 'allpages', 'none'
     *
     * @param {string} [options.errorType] Type of error (handled vs unhandled),
     * including All. Possible values include: 'all', 'unhandledError',
     * 'handledError'
     *
     * @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 {AvailableVersionsDiagnostics} - 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.
     *
     *                      {AvailableVersionsDiagnostics} [result]   - The deserialized result object if an error did not occur.
     *                      See {@link AvailableVersionsDiagnostics} 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.
     */
    availableVersionsMethod(start: Date|string, ownerName: string, appName: string, options?: { end? : Date, top? : number, skip? : number, filter? : string, inlinecount? : string, errorType? : string, customHeaders? : { [headerName: string]: string; } }): Promise<models.AvailableVersionsDiagnostics>;
    availableVersionsMethod(start: Date|string, ownerName: string, appName: string, callback: ServiceCallback<models.AvailableVersionsDiagnostics>): void;
    availableVersionsMethod(start: Date|string, ownerName: string, appName: string, options: { end? : Date, top? : number, skip? : number, filter? : string, inlinecount? : string, errorType? : string, customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<models.AvailableVersionsDiagnostics>): void;
}

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


    /**
     * Return the Real time Status publishing of release from store.
     *
     * @param {string} storeName The name of the store
     *
     * @param {number} releaseId The id of the release
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @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<ReleaseRealTimeStatusResponse>} - The deserialized result object.
     *
     * @reject {Error|ServiceError} - The error object.
     */
    getRealTimeStatusByReleaseIdWithHttpOperationResponse(storeName: string, releaseId: number, ownerName: string, appName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<models.ReleaseRealTimeStatusResponse>>;

    /**
     * Return the Real time Status publishing of release from store.
     *
     * @param {string} storeName The name of the store
     *
     * @param {number} releaseId The id of the release
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @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 {ReleaseRealTimeStatusResponse} - 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.
     *
     *                      {ReleaseRealTimeStatusResponse} [result]   - The deserialized result object if an error did not occur.
     *                      See {@link ReleaseRealTimeStatusResponse} 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.
     */
    getRealTimeStatusByReleaseId(storeName: string, releaseId: number, ownerName: string, appName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<models.ReleaseRealTimeStatusResponse>;
    getRealTimeStatusByReleaseId(storeName: string, releaseId: number, ownerName: string, appName: string, callback: ServiceCallback<models.ReleaseRealTimeStatusResponse>): void;
    getRealTimeStatusByReleaseId(storeName: string, releaseId: number, ownerName: string, appName: string, options: { customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<models.ReleaseRealTimeStatusResponse>): void;


    /**
     * Return the Error Details of release which failed in publishing.
     *
     * @param {string} storeName The name of the store
     *
     * @param {number} releaseId The id of the release
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @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<ReleasePublishErrorResponse>} - The deserialized result object.
     *
     * @reject {Error|ServiceError} - The error object.
     */
    getPublishErrorWithHttpOperationResponse(storeName: string, releaseId: number, ownerName: string, appName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<models.ReleasePublishErrorResponse>>;

    /**
     * Return the Error Details of release which failed in publishing.
     *
     * @param {string} storeName The name of the store
     *
     * @param {number} releaseId The id of the release
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @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 {ReleasePublishErrorResponse} - 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.
     *
     *                      {ReleasePublishErrorResponse} [result]   - The deserialized result object if an error did not occur.
     *                      See {@link ReleasePublishErrorResponse} 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.
     */
    getPublishError(storeName: string, releaseId: number, ownerName: string, appName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<models.ReleasePublishErrorResponse>;
    getPublishError(storeName: string, releaseId: number, ownerName: string, appName: string, callback: ServiceCallback<models.ReleasePublishErrorResponse>): void;
    getPublishError(storeName: string, releaseId: number, ownerName: string, appName: string, options: { customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<models.ReleasePublishErrorResponse>): void;


    /**
     * Return releases published in a store for releaseId and storeId
     *
     * @param {string} storeName The name of the store
     *
     * @param {string} releaseId The name of the store
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @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.
     */
    getWithHttpOperationResponse(storeName: string, releaseId: string, ownerName: string, appName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<models.StoresReleaseDetails[]>>;

    /**
     * Return releases published in a store for releaseId and storeId
     *
     * @param {string} storeName The name of the store
     *
     * @param {string} releaseId The name of the store
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @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.
     */
    get(storeName: string, releaseId: string, ownerName: string, appName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<models.StoresReleaseDetails[]>;
    get(storeName: string, releaseId: string, ownerName: string, appName: string, callback: ServiceCallback<models.StoresReleaseDetails[]>): void;
    get(storeName: string, releaseId: string, ownerName: string, appName: string, options: { customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<models.StoresReleaseDetails[]>): void;


    /**
     * delete the release with release Id
     *
     * @param {string} storeName The name of the store
     *
     * @param {string} releaseId The id of the release
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @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<null>} - The deserialized result object.
     *
     * @reject {Error|ServiceError} - The error object.
     */
    deleteMethodWithHttpOperationResponse(storeName: string, releaseId: string, ownerName: string, appName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<void>>;

    /**
     * delete the release with release Id
     *
     * @param {string} storeName The name of the store
     *
     * @param {string} releaseId The id of the release
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @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 {null} - 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.
     *
     *                      {null} [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.
     */
    deleteMethod(storeName: string, releaseId: string, ownerName: string, appName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<void>;
    deleteMethod(storeName: string, releaseId: string, ownerName: string, appName: string, callback: ServiceCallback<void>): void;
    deleteMethod(storeName: string, releaseId: string, ownerName: string, appName: string, options: { customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<void>): void;


    /**
     * Return all releases published  in a store
     *
     * @param {string} storeName The name of the store
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @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(storeName: string, ownerName: string, appName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<models.StoresBasicReleaseDetails[]>>;

    /**
     * Return all releases published  in a store
     *
     * @param {string} storeName The name of the store
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @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(storeName: string, ownerName: string, appName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<models.StoresBasicReleaseDetails[]>;
    list(storeName: string, ownerName: string, appName: string, callback: ServiceCallback<models.StoresBasicReleaseDetails[]>): void;
    list(storeName: string, ownerName: string, appName: string, options: { customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<models.StoresBasicReleaseDetails[]>): void;


    /**
     * Returns the latest release published in a store.
     *
     * @param {string} storeName The name of the store
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @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.
     */
    getLatestWithHttpOperationResponse(storeName: string, ownerName: string, appName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<models.StoresReleaseDetails[]>>;

    /**
     * Returns the latest release published in a store.
     *
     * @param {string} storeName The name of the store
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @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.
     */
    getLatest(storeName: string, ownerName: string, appName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<models.StoresReleaseDetails[]>;
    getLatest(storeName: string, ownerName: string, appName: string, callback: ServiceCallback<models.StoresReleaseDetails[]>): void;
    getLatest(storeName: string, ownerName: string, appName: string, options: { customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<models.StoresReleaseDetails[]>): void;
}

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


    /**
     * Returns publish logs for a particular release published to a particular
     * store
     *
     * @param {string} storeName The name of the store
     *
     * @param {string} releaseId The ID of the realease
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @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<null>} - The deserialized result object.
     *
     * @reject {Error|ServiceError} - The error object.
     */
    getWithHttpOperationResponse(storeName: string, releaseId: string, ownerName: string, appName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<void>>;

    /**
     * Returns publish logs for a particular release published to a particular
     * store
     *
     * @param {string} storeName The name of the store
     *
     * @param {string} releaseId The ID of the realease
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @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 {null} - 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.
     *
     *                      {null} [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.
     */
    get(storeName: string, releaseId: string, ownerName: string, appName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<void>;
    get(storeName: string, releaseId: string, ownerName: string, appName: string, callback: ServiceCallback<void>): void;
    get(storeName: string, releaseId: string, ownerName: string, appName: string, options: { customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<void>): void;
}

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


    /**
     * Return the store details for specified store name.
     *
     * @param {string} storeName The name of the store
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @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<ExternalStoreResponse>} - The deserialized result object.
     *
     * @reject {Error|ServiceError} - The error object.
     */
    getWithHttpOperationResponse(storeName: string, ownerName: string, appName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<models.ExternalStoreResponse>>;

    /**
     * Return the store details for specified store name.
     *
     * @param {string} storeName The name of the store
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @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 {ExternalStoreResponse} - 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.
     *
     *                      {ExternalStoreResponse} [result]   - The deserialized result object if an error did not occur.
     *                      See {@link ExternalStoreResponse} 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(storeName: string, ownerName: string, appName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<models.ExternalStoreResponse>;
    get(storeName: string, ownerName: string, appName: string, callback: ServiceCallback<models.ExternalStoreResponse>): void;
    get(storeName: string, ownerName: string, appName: string, options: { customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<models.ExternalStoreResponse>): void;


    /**
     * Update the store.
     *
     * @param {string} storeName The name of the store
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @param {string} serviceConnectionId Service connection id to updated.
     *
     * @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<null>} - The deserialized result object.
     *
     * @reject {Error|ServiceError} - The error object.
     */
    patchWithHttpOperationResponse(storeName: string, ownerName: string, appName: string, serviceConnectionId: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<void>>;

    /**
     * Update the store.
     *
     * @param {string} storeName The name of the store
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @param {string} serviceConnectionId Service connection id to updated.
     *
     * @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 {null} - 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.
     *
     *                      {null} [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.
     */
    patch(storeName: string, ownerName: string, appName: string, serviceConnectionId: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<void>;
    patch(storeName: string, ownerName: string, appName: string, serviceConnectionId: string, callback: ServiceCallback<void>): void;
    patch(storeName: string, ownerName: string, appName: string, serviceConnectionId: string, options: { customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<void>): void;


    /**
     * delete the store based on specific store name.
     *
     * @param {string} storeName The name of the store
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @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<null>} - The deserialized result object.
     *
     * @reject {Error|ServiceError} - The error object.
     */
    deleteMethodWithHttpOperationResponse(storeName: string, ownerName: string, appName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<void>>;

    /**
     * delete the store based on specific store name.
     *
     * @param {string} storeName The name of the store
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @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 {null} - 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.
     *
     *                      {null} [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.
     */
    deleteMethod(storeName: string, ownerName: string, appName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<void>;
    deleteMethod(storeName: string, ownerName: string, appName: string, callback: ServiceCallback<void>): void;
    deleteMethod(storeName: string, ownerName: string, appName: string, options: { customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<void>): void;


    /**
     * Create a new external store for the specified application.
     *
     * @param {object} body The store request
     *
     * @param {string} [body.type] store Type. Possible values include:
     * 'googleplay', 'intune', 'apple'
     *
     * @param {string} [body.name] name of the store. In case of googleplay, and
     * Apple store this is fixed to Production.
     *
     * @param {string} [body.track] track of the store. Can be production, alpha &
     * beta for googleplay. Can be production, testflight-internal &
     * testflight-external for Apple Store. Possible values include: 'production',
     * 'alpha', 'beta', 'testflight-internal', 'testflight-external'
     *
     * @param {object} [body.intuneDetails]
     *
     * @param {object} [body.intuneDetails.secretJson]
     *
     * @param {string} [body.intuneDetails.secretJson.idToken] the id token of user
     *
     * @param {string} [body.intuneDetails.secretJson.refreshToken] the refresh
     * token for user
     *
     * @param {string} [body.intuneDetails.secretJson.refreshTokenExpiry] the
     * expiry of refresh token
     *
     * @param {object} [body.intuneDetails.targetAudience]
     *
     * @param {string} [body.intuneDetails.targetAudience.name] display name for
     * the target audience/group
     *
     * @param {object} [body.intuneDetails.appCategory]
     *
     * @param {string} [body.intuneDetails.appCategory.name] display name for the
     * app category
     *
     * @param {string} [body.intuneDetails.tenantId] tenant id of the intune store
     *
     * @param {string} [body.serviceConnectionId] Id for the shared service
     * connection. In case of Apple AppStore, this connection will be used to
     * create and connect to the Apple AppStore in Mobile Center.
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @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<ExternalStoreResponse>} - The deserialized result object.
     *
     * @reject {Error|ServiceError} - The error object.
     */
    createWithHttpOperationResponse(body: models.ExternalStoreRequest, ownerName: string, appName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<models.ExternalStoreResponse>>;

    /**
     * Create a new external store for the specified application.
     *
     * @param {object} body The store request
     *
     * @param {string} [body.type] store Type. Possible values include:
     * 'googleplay', 'intune', 'apple'
     *
     * @param {string} [body.name] name of the store. In case of googleplay, and
     * Apple store this is fixed to Production.
     *
     * @param {string} [body.track] track of the store. Can be production, alpha &
     * beta for googleplay. Can be production, testflight-internal &
     * testflight-external for Apple Store. Possible values include: 'production',
     * 'alpha', 'beta', 'testflight-internal', 'testflight-external'
     *
     * @param {object} [body.intuneDetails]
     *
     * @param {object} [body.intuneDetails.secretJson]
     *
     * @param {string} [body.intuneDetails.secretJson.idToken] the id token of user
     *
     * @param {string} [body.intuneDetails.secretJson.refreshToken] the refresh
     * token for user
     *
     * @param {string} [body.intuneDetails.secretJson.refreshTokenExpiry] the
     * expiry of refresh token
     *
     * @param {object} [body.intuneDetails.targetAudience]
     *
     * @param {string} [body.intuneDetails.targetAudience.name] display name for
     * the target audience/group
     *
     * @param {object} [body.intuneDetails.appCategory]
     *
     * @param {string} [body.intuneDetails.appCategory.name] display name for the
     * app category
     *
     * @param {string} [body.intuneDetails.tenantId] tenant id of the intune store
     *
     * @param {string} [body.serviceConnectionId] Id for the shared service
     * connection. In case of Apple AppStore, this connection will be used to
     * create and connect to the Apple AppStore in Mobile Center.
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @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 {ExternalStoreResponse} - 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.
     *
     *                      {ExternalStoreResponse} [result]   - The deserialized result object if an error did not occur.
     *                      See {@link ExternalStoreResponse} 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(body: models.ExternalStoreRequest, ownerName: string, appName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<models.ExternalStoreResponse>;
    create(body: models.ExternalStoreRequest, ownerName: string, appName: string, callback: ServiceCallback<models.ExternalStoreResponse>): void;
    create(body: models.ExternalStoreRequest, ownerName: string, appName: string, options: { customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<models.ExternalStoreResponse>): void;


    /**
     * Get all the store details from Storage store table for a particular
     * application.
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @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(ownerName: string, appName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<models.ExternalStoreResponse[]>>;

    /**
     * Get all the store details from Storage store table for a particular
     * application.
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @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(ownerName: string, appName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<models.ExternalStoreResponse[]>;
    list(ownerName: string, appName: string, callback: ServiceCallback<models.ExternalStoreResponse[]>): void;
    list(ownerName: string, appName: string, options: { customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<models.ExternalStoreResponse[]>): void;
}

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


    /**
     * @summary Gets application level statistics for all missing symbol groups
     *
     * Gets application level statistics for all missing symbol groups
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @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<V2MissingSymbolCrashGroupsInfoResponse>} - The deserialized result object.
     *
     * @reject {Error|ServiceError} - The error object.
     */
    infoWithHttpOperationResponse(ownerName: string, appName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<models.V2MissingSymbolCrashGroupsInfoResponse>>;

    /**
     * @summary Gets application level statistics for all missing symbol groups
     *
     * Gets application level statistics for all missing symbol groups
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @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 {V2MissingSymbolCrashGroupsInfoResponse} - 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.
     *
     *                      {V2MissingSymbolCrashGroupsInfoResponse} [result]   - The deserialized result object if an error did not occur.
     *                      See {@link V2MissingSymbolCrashGroupsInfoResponse} 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(ownerName: string, appName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<models.V2MissingSymbolCrashGroupsInfoResponse>;
    info(ownerName: string, appName: string, callback: ServiceCallback<models.V2MissingSymbolCrashGroupsInfoResponse>): void;
    info(ownerName: string, appName: string, options: { customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<models.V2MissingSymbolCrashGroupsInfoResponse>): void;


    /**
     * @summary Gets missing symbol crash group by its id
     *
     * Gets missing symbol crash group by its id
     *
     * @param {string} symbolGroupId missing symbol crash group id
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @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<V2MissingSymbolCrashGroupsResponse>} - The deserialized result object.
     *
     * @reject {Error|ServiceError} - The error object.
     */
    getWithHttpOperationResponse(symbolGroupId: string, ownerName: string, appName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<models.V2MissingSymbolCrashGroupsResponse>>;

    /**
     * @summary Gets missing symbol crash group by its id
     *
     * Gets missing symbol crash group by its id
     *
     * @param {string} symbolGroupId missing symbol crash group id
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @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 {V2MissingSymbolCrashGroupsResponse} - 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.
     *
     *                      {V2MissingSymbolCrashGroupsResponse} [result]   - The deserialized result object if an error did not occur.
     *                      See {@link V2MissingSymbolCrashGroupsResponse} 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(symbolGroupId: string, ownerName: string, appName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<models.V2MissingSymbolCrashGroupsResponse>;
    get(symbolGroupId: string, ownerName: string, appName: string, callback: ServiceCallback<models.V2MissingSymbolCrashGroupsResponse>): void;
    get(symbolGroupId: string, ownerName: string, appName: string, options: { customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<models.V2MissingSymbolCrashGroupsResponse>): void;


    /**
     * @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 {number} top top N elements
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @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<V2MissingSymbolCrashGroupsResponse>} - The deserialized result object.
     *
     * @reject {Error|ServiceError} - The error object.
     */
    listWithHttpOperationResponse(top: number, ownerName: string, appName: string, options?: { filter? : string, customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<models.V2MissingSymbolCrashGroupsResponse>>;

    /**
     * @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 {number} top top N elements
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @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 {V2MissingSymbolCrashGroupsResponse} - 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.
     *
     *                      {V2MissingSymbolCrashGroupsResponse} [result]   - The deserialized result object if an error did not occur.
     *                      See {@link V2MissingSymbolCrashGroupsResponse} 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(top: number, ownerName: string, appName: string, options?: { filter? : string, customHeaders? : { [headerName: string]: string; } }): Promise<models.V2MissingSymbolCrashGroupsResponse>;
    list(top: number, ownerName: string, appName: string, callback: ServiceCallback<models.V2MissingSymbolCrashGroupsResponse>): void;
    list(top: number, ownerName: string, appName: string, options: { filter? : string, customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<models.V2MissingSymbolCrashGroupsResponse>): void;
}

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


    /**
     * **Warning, this operation is not reversible.**
     *
     * A successful call to this API will permanently stop ingesting any logs
     * received via SDK by app_id, and cannot be restored. We advise caution when
     * using this API, it is designed to permanently disable an app_id.
     *
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @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.
     */
    blockLogsWithHttpOperationResponse(ownerName: string, appName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<string>>;

    /**
     * **Warning, this operation is not reversible.**
     *
     * A successful call to this API will permanently stop ingesting any logs
     * received via SDK by app_id, and cannot be restored. We advise caution when
     * using this API, it is designed to permanently disable an app_id.
     *
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @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.
     */
    blockLogs(ownerName: string, appName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<string>;
    blockLogs(ownerName: string, appName: string, callback: ServiceCallback<string>): void;
    blockLogs(ownerName: string, appName: string, options: { customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<string>): void;
}

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


    /**
     * Rollback the latest or a specific release for an app deployment
     *
     * @param {string} deploymentName deployment name
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @param {object} [options] Optional Parameters.
     *
     * @param {string} [options.label]
     *
     * @param {object} [options.customHeaders] Headers that will be added to the
     * request
     *
     * @returns {Promise} A promise is returned
     *
     * @resolve {HttpOperationResponse<CodePushRelease>} - The deserialized result object.
     *
     * @reject {Error|ServiceError} - The error object.
     */
    rollbackWithHttpOperationResponse(deploymentName: string, ownerName: string, appName: string, options?: { label? : string, customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<models.CodePushRelease>>;

    /**
     * Rollback the latest or a specific release for an app deployment
     *
     * @param {string} deploymentName deployment name
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @param {object} [options] Optional Parameters.
     *
     * @param {string} [options.label]
     *
     * @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 {CodePushRelease} - 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.
     *
     *                      {CodePushRelease} [result]   - The deserialized result object if an error did not occur.
     *                      See {@link CodePushRelease} 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.
     */
    rollback(deploymentName: string, ownerName: string, appName: string, options?: { label? : string, customHeaders? : { [headerName: string]: string; } }): Promise<models.CodePushRelease>;
    rollback(deploymentName: string, ownerName: string, appName: string, callback: ServiceCallback<models.CodePushRelease>): void;
    rollback(deploymentName: string, ownerName: string, appName: string, options: { label? : string, customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<models.CodePushRelease>): void;
}

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


    /**
     * Modifies a CodePush release metadata under the given Deployment
     *
     * @param {string} deploymentName deployment name
     *
     * @param {string} releaseLabel release label
     *
     * @param {object} release Release modification. All fields are optional and
     * only provided fields will get updated.
     *
     * @param {string} [release.targetBinaryRange]
     *
     * @param {string} [release.description]
     *
     * @param {boolean} [release.isDisabled]
     *
     * @param {boolean} [release.isMandatory]
     *
     * @param {number} [release.rollout]
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @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<CodePushRelease>} - The deserialized result object.
     *
     * @reject {Error|ServiceError} - The error object.
     */
    updateWithHttpOperationResponse(deploymentName: string, releaseLabel: string, release: models.CodePushReleaseModification, ownerName: string, appName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<models.CodePushRelease>>;

    /**
     * Modifies a CodePush release metadata under the given Deployment
     *
     * @param {string} deploymentName deployment name
     *
     * @param {string} releaseLabel release label
     *
     * @param {object} release Release modification. All fields are optional and
     * only provided fields will get updated.
     *
     * @param {string} [release.targetBinaryRange]
     *
     * @param {string} [release.description]
     *
     * @param {boolean} [release.isDisabled]
     *
     * @param {boolean} [release.isMandatory]
     *
     * @param {number} [release.rollout]
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @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 {CodePushRelease} - 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.
     *
     *                      {CodePushRelease} [result]   - The deserialized result object if an error did not occur.
     *                      See {@link CodePushRelease} 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(deploymentName: string, releaseLabel: string, release: models.CodePushReleaseModification, ownerName: string, appName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<models.CodePushRelease>;
    update(deploymentName: string, releaseLabel: string, release: models.CodePushReleaseModification, ownerName: string, appName: string, callback: ServiceCallback<models.CodePushRelease>): void;
    update(deploymentName: string, releaseLabel: string, release: models.CodePushReleaseModification, ownerName: string, appName: string, options: { customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<models.CodePushRelease>): void;
}

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


    /**
     * Clears a Deployment of releases
     *
     * @param {string} deploymentName deployment name
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @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<null>} - The deserialized result object.
     *
     * @reject {Error|ServiceError} - The error object.
     */
    deleteMethodWithHttpOperationResponse(deploymentName: string, ownerName: string, appName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<void>>;

    /**
     * Clears a Deployment of releases
     *
     * @param {string} deploymentName deployment name
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @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 {null} - 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.
     *
     *                      {null} [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.
     */
    deleteMethod(deploymentName: string, ownerName: string, appName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<void>;
    deleteMethod(deploymentName: string, ownerName: string, appName: string, callback: ServiceCallback<void>): void;
    deleteMethod(deploymentName: string, ownerName: string, appName: string, options: { customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<void>): void;


    /**
     * Gets the history of releases on a Deployment
     *
     * @param {string} deploymentName deployment name
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @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.
     */
    getWithHttpOperationResponse(deploymentName: string, ownerName: string, appName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<models.CodePushRelease[]>>;

    /**
     * Gets the history of releases on a Deployment
     *
     * @param {string} deploymentName deployment name
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @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.
     */
    get(deploymentName: string, ownerName: string, appName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<models.CodePushRelease[]>;
    get(deploymentName: string, ownerName: string, appName: string, callback: ServiceCallback<models.CodePushRelease[]>): void;
    get(deploymentName: string, ownerName: string, appName: string, options: { customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<models.CodePushRelease[]>): void;


    /**
     * Create a new CodePush release for the specified deployment
     *
     * @param {string} deploymentName deployment name
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @param {string} targetBinaryVersion the binary version of the application
     *
     * @param {object} [options] Optional Parameters.
     *
     * @param {object} [options.packageProperty] The upload zip file
     *
     * @param {string} [options.deploymentName1] This specifies which deployment
     * you want to release the update to. Default is Staging.
     *
     * @param {string} [options.description] This provides an optional "change log"
     * for the deployment.
     *
     * @param {boolean} [options.disabled] This specifies whether an update should
     * be downloadable by end users or not.
     *
     * @param {boolean} [options.mandatory] This specifies whether the update
     * should be considered mandatory or not (e.g. it includes a critical security
     * fix).
     *
     * @param {boolean} [options.noDuplicateReleaseError] This specifies that if
     * the update is identical to the latest release on the deployment, the CLI
     * should generate a warning instead of an error.
     *
     * @param {number} [options.rollout] This specifies the percentage of users (as
     * an integer between 1 and 100) that should be eligible to receive this
     * update.
     *
     * @param {object} [options.customHeaders] Headers that will be added to the
     * request
     *
     * @returns {Promise} A promise is returned
     *
     * @resolve {HttpOperationResponse<CodePushRelease>} - The deserialized result object.
     *
     * @reject {Error|ServiceError} - The error object.
     */
    createWithHttpOperationResponse(deploymentName: string, ownerName: string, appName: string, targetBinaryVersion: string, options?: { packageProperty? : stream.Readable, deploymentName1? : string, description? : string, disabled? : boolean, mandatory? : boolean, noDuplicateReleaseError? : boolean, rollout? : number, customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<models.CodePushRelease>>;

    /**
     * Create a new CodePush release for the specified deployment
     *
     * @param {string} deploymentName deployment name
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @param {string} targetBinaryVersion the binary version of the application
     *
     * @param {object} [options] Optional Parameters.
     *
     * @param {object} [options.packageProperty] The upload zip file
     *
     * @param {string} [options.deploymentName1] This specifies which deployment
     * you want to release the update to. Default is Staging.
     *
     * @param {string} [options.description] This provides an optional "change log"
     * for the deployment.
     *
     * @param {boolean} [options.disabled] This specifies whether an update should
     * be downloadable by end users or not.
     *
     * @param {boolean} [options.mandatory] This specifies whether the update
     * should be considered mandatory or not (e.g. it includes a critical security
     * fix).
     *
     * @param {boolean} [options.noDuplicateReleaseError] This specifies that if
     * the update is identical to the latest release on the deployment, the CLI
     * should generate a warning instead of an error.
     *
     * @param {number} [options.rollout] This specifies the percentage of users (as
     * an integer between 1 and 100) that should be eligible to receive this
     * update.
     *
     * @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 {CodePushRelease} - 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.
     *
     *                      {CodePushRelease} [result]   - The deserialized result object if an error did not occur.
     *                      See {@link CodePushRelease} 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(deploymentName: string, ownerName: string, appName: string, targetBinaryVersion: string, options?: { packageProperty? : stream.Readable, deploymentName1? : string, description? : string, disabled? : boolean, mandatory? : boolean, noDuplicateReleaseError? : boolean, rollout? : number, customHeaders? : { [headerName: string]: string; } }): Promise<models.CodePushRelease>;
    create(deploymentName: string, ownerName: string, appName: string, targetBinaryVersion: string, callback: ServiceCallback<models.CodePushRelease>): void;
    create(deploymentName: string, ownerName: string, appName: string, targetBinaryVersion: string, options: { packageProperty? : stream.Readable, deploymentName1? : string, description? : string, disabled? : boolean, mandatory? : boolean, noDuplicateReleaseError? : boolean, rollout? : number, customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<models.CodePushRelease>): void;
}

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


    /**
     * Promote one release (default latest one) from one deployment to another
     *
     * @param {string} deploymentName deployment name
     *
     * @param {string} promoteDeploymentName deployment name
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @param {object} [options] Optional Parameters.
     *
     * @param {object} [options.release] Release to be promoted, only needs to
     * provide optional fields, description, label, disabled, mandatory, rollout,
     * targetBinaryVersion
     *
     * @param {string} [options.release.label]
     *
     * @param {string} [options.release.targetBinaryRange]
     *
     * @param {string} [options.release.description]
     *
     * @param {boolean} [options.release.isDisabled]
     *
     * @param {boolean} [options.release.isMandatory]
     *
     * @param {number} [options.release.rollout]
     *
     * @param {object} [options.customHeaders] Headers that will be added to the
     * request
     *
     * @returns {Promise} A promise is returned
     *
     * @resolve {HttpOperationResponse<CodePushRelease>} - The deserialized result object.
     *
     * @reject {Error|ServiceError} - The error object.
     */
    promoteWithHttpOperationResponse(deploymentName: string, promoteDeploymentName: string, ownerName: string, appName: string, options?: { release? : models.CodePushReleasePromote, customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<models.CodePushRelease>>;

    /**
     * Promote one release (default latest one) from one deployment to another
     *
     * @param {string} deploymentName deployment name
     *
     * @param {string} promoteDeploymentName deployment name
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @param {object} [options] Optional Parameters.
     *
     * @param {object} [options.release] Release to be promoted, only needs to
     * provide optional fields, description, label, disabled, mandatory, rollout,
     * targetBinaryVersion
     *
     * @param {string} [options.release.label]
     *
     * @param {string} [options.release.targetBinaryRange]
     *
     * @param {string} [options.release.description]
     *
     * @param {boolean} [options.release.isDisabled]
     *
     * @param {boolean} [options.release.isMandatory]
     *
     * @param {number} [options.release.rollout]
     *
     * @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 {CodePushRelease} - 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.
     *
     *                      {CodePushRelease} [result]   - The deserialized result object if an error did not occur.
     *                      See {@link CodePushRelease} 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.
     */
    promote(deploymentName: string, promoteDeploymentName: string, ownerName: string, appName: string, options?: { release? : models.CodePushReleasePromote, customHeaders? : { [headerName: string]: string; } }): Promise<models.CodePushRelease>;
    promote(deploymentName: string, promoteDeploymentName: string, ownerName: string, appName: string, callback: ServiceCallback<models.CodePushRelease>): void;
    promote(deploymentName: string, promoteDeploymentName: string, ownerName: string, appName: string, options: { release? : models.CodePushReleasePromote, customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<models.CodePushRelease>): void;


    /**
     * Deletes a CodePush Deployment for the given app
     *
     * @param {string} deploymentName deployment name
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @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<null>} - The deserialized result object.
     *
     * @reject {Error|ServiceError} - The error object.
     */
    deleteMethodWithHttpOperationResponse(deploymentName: string, ownerName: string, appName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<void>>;

    /**
     * Deletes a CodePush Deployment for the given app
     *
     * @param {string} deploymentName deployment name
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @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 {null} - 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.
     *
     *                      {null} [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.
     */
    deleteMethod(deploymentName: string, ownerName: string, appName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<void>;
    deleteMethod(deploymentName: string, ownerName: string, appName: string, callback: ServiceCallback<void>): void;
    deleteMethod(deploymentName: string, ownerName: string, appName: string, options: { customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<void>): void;


    /**
     * Gets a CodePush Deployment for the given app
     *
     * @param {string} deploymentName deployment name
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @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<Deployment>} - The deserialized result object.
     *
     * @reject {Error|ServiceError} - The error object.
     */
    getWithHttpOperationResponse(deploymentName: string, ownerName: string, appName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<models.Deployment>>;

    /**
     * Gets a CodePush Deployment for the given app
     *
     * @param {string} deploymentName deployment name
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @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 {Deployment} - 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.
     *
     *                      {Deployment} [result]   - The deserialized result object if an error did not occur.
     *                      See {@link Deployment} 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(deploymentName: string, ownerName: string, appName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<models.Deployment>;
    get(deploymentName: string, ownerName: string, appName: string, callback: ServiceCallback<models.Deployment>): void;
    get(deploymentName: string, ownerName: string, appName: string, options: { customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<models.Deployment>): void;


    /**
     * Modifies a CodePush Deployment for the given app
     *
     * @param {string} deploymentName deployment name
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @param {string} name
     *
     * @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<null>} - The deserialized result object.
     *
     * @reject {Error|ServiceError} - The error object.
     */
    updateWithHttpOperationResponse(deploymentName: string, ownerName: string, appName: string, name: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<void>>;

    /**
     * Modifies a CodePush Deployment for the given app
     *
     * @param {string} deploymentName deployment name
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @param {string} name
     *
     * @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 {null} - 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.
     *
     *                      {null} [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.
     */
    update(deploymentName: string, ownerName: string, appName: string, name: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<void>;
    update(deploymentName: string, ownerName: string, appName: string, name: string, callback: ServiceCallback<void>): void;
    update(deploymentName: string, ownerName: string, appName: string, name: string, options: { customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<void>): void;


    /**
     * Gets a list of CodePush deployments for the given app
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @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(ownerName: string, appName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<models.Deployment[]>>;

    /**
     * Gets a list of CodePush deployments for the given app
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @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(ownerName: string, appName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<models.Deployment[]>;
    list(ownerName: string, appName: string, callback: ServiceCallback<models.Deployment[]>): void;
    list(ownerName: string, appName: string, options: { customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<models.Deployment[]>): void;


    /**
     * Creates a CodePush Deployment for the given app
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @param {string} name
     *
     * @param {object} [options] Optional Parameters.
     *
     * @param {string} [options.key]
     *
     * @param {object} [options.latestRelease]
     *
     * @param {string} [options.latestRelease.label]
     *
     * @param {string} [options.latestRelease.packageHash]
     *
     * @param {string} [options.latestRelease.blobUrl]
     *
     * @param {object} [options.latestRelease.diffPackageMap]
     *
     * @param {string} [options.latestRelease.originalDeployment] Set on 'Promote'
     *
     * @param {string} [options.latestRelease.originalLabel] Set on 'Promote' and
     * 'Rollback'
     *
     * @param {string} [options.latestRelease.releasedBy]
     *
     * @param {string} [options.latestRelease.releaseMethod] The release method is
     * unknown if unspecified. Possible values include: 'Upload', 'Promote',
     * 'Rollback'
     *
     * @param {number} [options.latestRelease.size]
     *
     * @param {number} [options.latestRelease.uploadTime]
     *
     * @param {string} [options.latestRelease.targetBinaryRange]
     *
     * @param {string} [options.latestRelease.description]
     *
     * @param {boolean} [options.latestRelease.isDisabled]
     *
     * @param {boolean} [options.latestRelease.isMandatory]
     *
     * @param {number} [options.latestRelease.rollout]
     *
     * @param {object} [options.customHeaders] Headers that will be added to the
     * request
     *
     * @returns {Promise} A promise is returned
     *
     * @resolve {HttpOperationResponse<Deployment>} - The deserialized result object.
     *
     * @reject {Error|ServiceError} - The error object.
     */
    createWithHttpOperationResponse(ownerName: string, appName: string, name: string, options?: { key? : string, latestRelease? : models.CodePushRelease, customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<models.Deployment>>;

    /**
     * Creates a CodePush Deployment for the given app
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @param {string} name
     *
     * @param {object} [options] Optional Parameters.
     *
     * @param {string} [options.key]
     *
     * @param {object} [options.latestRelease]
     *
     * @param {string} [options.latestRelease.label]
     *
     * @param {string} [options.latestRelease.packageHash]
     *
     * @param {string} [options.latestRelease.blobUrl]
     *
     * @param {object} [options.latestRelease.diffPackageMap]
     *
     * @param {string} [options.latestRelease.originalDeployment] Set on 'Promote'
     *
     * @param {string} [options.latestRelease.originalLabel] Set on 'Promote' and
     * 'Rollback'
     *
     * @param {string} [options.latestRelease.releasedBy]
     *
     * @param {string} [options.latestRelease.releaseMethod] The release method is
     * unknown if unspecified. Possible values include: 'Upload', 'Promote',
     * 'Rollback'
     *
     * @param {number} [options.latestRelease.size]
     *
     * @param {number} [options.latestRelease.uploadTime]
     *
     * @param {string} [options.latestRelease.targetBinaryRange]
     *
     * @param {string} [options.latestRelease.description]
     *
     * @param {boolean} [options.latestRelease.isDisabled]
     *
     * @param {boolean} [options.latestRelease.isMandatory]
     *
     * @param {number} [options.latestRelease.rollout]
     *
     * @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 {Deployment} - 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.
     *
     *                      {Deployment} [result]   - The deserialized result object if an error did not occur.
     *                      See {@link Deployment} 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(ownerName: string, appName: string, name: string, options?: { key? : string, latestRelease? : models.CodePushRelease, customHeaders? : { [headerName: string]: string; } }): Promise<models.Deployment>;
    create(ownerName: string, appName: string, name: string, callback: ServiceCallback<models.Deployment>): void;
    create(ownerName: string, appName: string, name: string, options: { key? : string, latestRelease? : models.CodePushRelease, customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<models.Deployment>): void;
}

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


    /**
     * Gets all releases metrics for specified Deployment
     *
     * @param {string} deploymentName deployment name
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @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.
     */
    getWithHttpOperationResponse(deploymentName: string, ownerName: string, appName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<models.CodePushReleaseMetric[]>>;

    /**
     * Gets all releases metrics for specified Deployment
     *
     * @param {string} deploymentName deployment name
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @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.
     */
    get(deploymentName: string, ownerName: string, appName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<models.CodePushReleaseMetric[]>;
    get(deploymentName: string, ownerName: string, appName: string, callback: ServiceCallback<models.CodePushReleaseMetric[]>): void;
    get(deploymentName: string, ownerName: string, appName: string, options: { customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<models.CodePushReleaseMetric[]>): void;
}

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


    /**
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @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<Object>} - The deserialized result object.
     *
     * @reject {Error|ServiceError} - The error object.
     */
    getResourceProvisioningWithHttpOperationResponse(ownerName: string, appName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<any>>;

    /**
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @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 {Object} - 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.
     *
     *                      {Object} [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.
     */
    getResourceProvisioning(ownerName: string, appName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<any>;
    getResourceProvisioning(ownerName: string, appName: string, callback: ServiceCallback<any>): void;
    getResourceProvisioning(ownerName: string, appName: string, options: { customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<any>): void;


    /**
     * @summary Creates Cosmos DB or attaches an existing one
     *
     * @param {string} acAuthorizationARM
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @param {object} [options] Optional Parameters.
     *
     * @param {object} [options.provisionDatabaseParameters]
     *
     * @param {string} [options.provisionDatabaseParameters.subscriptionId]
     *
     * @param {string}
     * [options.provisionDatabaseParameters.databaseConnectionString]
     *
     * @param {string} [options.provisionDatabaseParameters.resourceRegion]
     * Possible values include: 'East Asia', 'Southeast Asia', 'Australia Central',
     * 'Australia Central 2', 'Australia East', 'Australia Southeast', 'Brazil
     * South', 'Canada Central', 'Canada East', 'Central India', 'South India',
     * 'West India', 'North Europe', 'West Europe', 'France Central', 'France
     * South', 'Germany Central', 'Germany Northeast', 'Japan East', 'Japan West',
     * 'Korea Central', 'Korea South', 'South Africa North', 'South Africa West',
     * 'UK South', 'UK West', 'Central US', 'East US', 'East US 2', 'US Gov
     * Arizona', 'US Gov Texas', 'North Central US', 'South Central US', 'West US',
     * 'West US 2', 'West Central US'
     *
     * @param {string} [options.provisionDatabaseParameters.database]
     *
     * @param {string} [options.provisionDatabaseParameters.collection]
     *
     * @param {number} [options.provisionDatabaseParameters.requestUnits]
     *
     * @param {string} [options.provisionDatabaseParameters.accountName]
     *
     * @param {object} [options.customHeaders] Headers that will be added to the
     * request
     *
     * @returns {Promise} A promise is returned
     *
     * @resolve {HttpOperationResponse<Object>} - The deserialized result object.
     *
     * @reject {Error|ServiceError} - The error object.
     */
    postResourceProvisioningWithHttpOperationResponse(acAuthorizationARM: string, ownerName: string, appName: string, options?: { provisionDatabaseParameters? : models.DataProvisioningParameters, customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<any>>;

    /**
     * @summary Creates Cosmos DB or attaches an existing one
     *
     * @param {string} acAuthorizationARM
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @param {object} [options] Optional Parameters.
     *
     * @param {object} [options.provisionDatabaseParameters]
     *
     * @param {string} [options.provisionDatabaseParameters.subscriptionId]
     *
     * @param {string}
     * [options.provisionDatabaseParameters.databaseConnectionString]
     *
     * @param {string} [options.provisionDatabaseParameters.resourceRegion]
     * Possible values include: 'East Asia', 'Southeast Asia', 'Australia Central',
     * 'Australia Central 2', 'Australia East', 'Australia Southeast', 'Brazil
     * South', 'Canada Central', 'Canada East', 'Central India', 'South India',
     * 'West India', 'North Europe', 'West Europe', 'France Central', 'France
     * South', 'Germany Central', 'Germany Northeast', 'Japan East', 'Japan West',
     * 'Korea Central', 'Korea South', 'South Africa North', 'South Africa West',
     * 'UK South', 'UK West', 'Central US', 'East US', 'East US 2', 'US Gov
     * Arizona', 'US Gov Texas', 'North Central US', 'South Central US', 'West US',
     * 'West US 2', 'West Central US'
     *
     * @param {string} [options.provisionDatabaseParameters.database]
     *
     * @param {string} [options.provisionDatabaseParameters.collection]
     *
     * @param {number} [options.provisionDatabaseParameters.requestUnits]
     *
     * @param {string} [options.provisionDatabaseParameters.accountName]
     *
     * @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 {Object} - 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.
     *
     *                      {Object} [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.
     */
    postResourceProvisioning(acAuthorizationARM: string, ownerName: string, appName: string, options?: { provisionDatabaseParameters? : models.DataProvisioningParameters, customHeaders? : { [headerName: string]: string; } }): Promise<any>;
    postResourceProvisioning(acAuthorizationARM: string, ownerName: string, appName: string, callback: ServiceCallback<any>): void;
    postResourceProvisioning(acAuthorizationARM: string, ownerName: string, appName: string, options: { provisionDatabaseParameters? : models.DataProvisioningParameters, customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<any>): void;


    /**
     * @summary Checks that the Azure Cosmos DB account name already exists. A
     * valid account name may contain only lowercase letters, numbers, and the '-'
     * character, and must be between 3 and 31 characters.
     *
     * @param {string} acAuthorizationARM
     *
     * @param {string} accountName
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @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<Object>} - The deserialized result object.
     *
     * @reject {Error|ServiceError} - The error object.
     */
    checkNameExistsWithHttpOperationResponse(acAuthorizationARM: string, accountName: string, ownerName: string, appName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<stream.Readable>>;

    /**
     * @summary Checks that the Azure Cosmos DB account name already exists. A
     * valid account name may contain only lowercase letters, numbers, and the '-'
     * character, and must be between 3 and 31 characters.
     *
     * @param {string} acAuthorizationARM
     *
     * @param {string} accountName
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @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 {Object} - 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.
     *
     *                      {Object} [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.
     */
    checkNameExists(acAuthorizationARM: string, accountName: string, ownerName: string, appName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<stream.Readable>;
    checkNameExists(acAuthorizationARM: string, accountName: string, ownerName: string, appName: string, callback: ServiceCallback<stream.Readable>): void;
    checkNameExists(acAuthorizationARM: string, accountName: string, ownerName: string, appName: string, options: { customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<stream.Readable>): void;
}

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


    /**
     * @summary Available for UWP apps only.
     *
     * Gets a stacktrace for a specific crash. Available for UWP apps only.
     *
     * @param {string} crashGroupId id of a specific group
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @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(crashGroupId: string, ownerName: string, appName: string, options?: { groupingOnly? : boolean, customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<models.Stacktrace>>;

    /**
     * @summary Available for UWP apps only.
     *
     * Gets a stacktrace for a specific crash. Available for UWP apps only.
     *
     * @param {string} crashGroupId id of a specific group
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @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(crashGroupId: string, ownerName: string, appName: string, options?: { groupingOnly? : boolean, customHeaders? : { [headerName: string]: string; } }): Promise<models.Stacktrace>;
    getStacktrace(crashGroupId: string, ownerName: string, appName: string, callback: ServiceCallback<models.Stacktrace>): void;
    getStacktrace(crashGroupId: string, ownerName: string, appName: string, options: { groupingOnly? : boolean, customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<models.Stacktrace>): void;


    /**
     * @summary Available for UWP apps only.
     *
     * Gets a specific group. Available for UWP apps only.
     *
     * @param {string} crashGroupId id of a specific group
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @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<CrashGroup>} - The deserialized result object.
     *
     * @reject {Error|ServiceError} - The error object.
     */
    getWithHttpOperationResponse(crashGroupId: string, ownerName: string, appName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<models.CrashGroup>>;

    /**
     * @summary Available for UWP apps only.
     *
     * Gets a specific group. Available for UWP apps only.
     *
     * @param {string} crashGroupId id of a specific group
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @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 {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(crashGroupId: string, ownerName: string, appName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<models.CrashGroup>;
    get(crashGroupId: string, ownerName: string, appName: string, callback: ServiceCallback<models.CrashGroup>): void;
    get(crashGroupId: string, ownerName: string, appName: string, options: { customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<models.CrashGroup>): void;


    /**
     * @summary Available for UWP apps only.
     *
     * Updates a group. Available for UWP apps only.
     *
     * @param {string} crashGroupId id of a specific group
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @param {object} [options] Optional Parameters.
     *
     * @param {object} [options.status]
     *
     * @param {string} [options.annotation]
     *
     * @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(crashGroupId: string, ownerName: string, appName: string, options?: { status? : any, annotation? : string, customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<models.CrashGroup>>;

    /**
     * @summary Available for UWP apps only.
     *
     * Updates a group. Available for UWP apps only.
     *
     * @param {string} crashGroupId id of a specific group
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @param {object} [options] Optional Parameters.
     *
     * @param {object} [options.status]
     *
     * @param {string} [options.annotation]
     *
     * @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(crashGroupId: string, ownerName: string, appName: string, options?: { status? : any, annotation? : string, customHeaders? : { [headerName: string]: string; } }): Promise<models.CrashGroup>;
    update(crashGroupId: string, ownerName: string, appName: string, callback: ServiceCallback<models.CrashGroup>): void;
    update(crashGroupId: string, ownerName: string, appName: string, options: { status? : any, annotation? : string, customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<models.CrashGroup>): void;


    /**
     * @summary Available for UWP apps only.
     *
     * Gets a list of crash groups and whether the list contains all available
     * groups. Available for UWP apps only.
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @param {object} [options] Optional Parameters.
     *
     * @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 {string} [options.appVersion] version
     *
     * @param {string} [options.groupType] Possible values include: 'GroupType1',
     * 'GroupType2'
     *
     * @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.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.continuationToken] Cassandra request continuation
     * token. The token is used for pagination.
     *
     * @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(ownerName: string, appName: string, options?: { lastOccurrenceFrom? : Date, lastOccurrenceTo? : Date, appVersion? : string, groupType? : string, groupStatus? : string, groupTextSearch? : string, orderby? : string, continuationToken? : string, customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<models.CrashGroupsContainer>>;

    /**
     * @summary Available for UWP apps only.
     *
     * Gets a list of crash groups and whether the list contains all available
     * groups. Available for UWP apps only.
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @param {object} [options] Optional Parameters.
     *
     * @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 {string} [options.appVersion] version
     *
     * @param {string} [options.groupType] Possible values include: 'GroupType1',
     * 'GroupType2'
     *
     * @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.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.continuationToken] Cassandra request continuation
     * token. The token is used for pagination.
     *
     * @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(ownerName: string, appName: string, options?: { lastOccurrenceFrom? : Date, lastOccurrenceTo? : Date, appVersion? : string, groupType? : string, groupStatus? : string, groupTextSearch? : string, orderby? : string, continuationToken? : string, customHeaders? : { [headerName: string]: string; } }): Promise<models.CrashGroupsContainer>;
    list(ownerName: string, appName: string, callback: ServiceCallback<models.CrashGroupsContainer>): void;
    list(ownerName: string, appName: string, options: { lastOccurrenceFrom? : Date, lastOccurrenceTo? : Date, appVersion? : string, groupType? : string, groupStatus? : string, groupTextSearch? : string, orderby? : string, continuationToken? : string, customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<models.CrashGroupsContainer>): void;
}

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


    /**
     * Returns commit information for a batch of shas
     *
     * @param {array} hashes A collection of commit SHAs comma-delimited
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @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.
     */
    listByShaListWithHttpOperationResponse(hashes: string[], ownerName: string, appName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<models.CommitDetails[]>>;

    /**
     * Returns commit information for a batch of shas
     *
     * @param {array} hashes A collection of commit SHAs comma-delimited
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @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.
     */
    listByShaList(hashes: string[], ownerName: string, appName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<models.CommitDetails[]>;
    listByShaList(hashes: string[], ownerName: string, appName: string, callback: ServiceCallback<models.CommitDetails[]>): void;
    listByShaList(hashes: string[], ownerName: string, appName: string, options: { customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<models.CommitDetails[]>): void;
}

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


    /**
     * Get project issue related to a crash group
     *
     * @param {string} crashGroupId CrashGroup Id
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @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<BugTrackerIssueResult>} - The deserialized result object.
     *
     * @reject {Error|ServiceError} - The error object.
     */
    getRepoIssueFromCrashWithHttpOperationResponse(crashGroupId: string, ownerName: string, appName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<models.BugTrackerIssueResult>>;

    /**
     * Get project issue related to a crash group
     *
     * @param {string} crashGroupId CrashGroup Id
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @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 {BugTrackerIssueResult} - 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.
     *
     *                      {BugTrackerIssueResult} [result]   - The deserialized result object if an error did not occur.
     *                      See {@link BugTrackerIssueResult} 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.
     */
    getRepoIssueFromCrash(crashGroupId: string, ownerName: string, appName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<models.BugTrackerIssueResult>;
    getRepoIssueFromCrash(crashGroupId: string, ownerName: string, appName: string, callback: ServiceCallback<models.BugTrackerIssueResult>): void;
    getRepoIssueFromCrash(crashGroupId: string, ownerName: string, appName: string, options: { customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<models.BugTrackerIssueResult>): void;


    /**
     * Get bug tracker settings for a particular app
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @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<AlertingBugtracker>} - The deserialized result object.
     *
     * @reject {Error|ServiceError} - The error object.
     */
    getSettingsWithHttpOperationResponse(ownerName: string, appName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<models.AlertingBugtracker>>;

    /**
     * Get bug tracker settings for a particular app
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @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 {AlertingBugtracker} - 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.
     *
     *                      {AlertingBugtracker} [result]   - The deserialized result object if an error did not occur.
     *                      See {@link AlertingBugtracker} 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.
     */
    getSettings(ownerName: string, appName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<models.AlertingBugtracker>;
    getSettings(ownerName: string, appName: string, callback: ServiceCallback<models.AlertingBugtracker>): void;
    getSettings(ownerName: string, appName: string, options: { customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<models.AlertingBugtracker>): void;
}

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


    /**
     * Gets the branch configuration
     *
     * @param {string} branch The branch name
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @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<BranchConfiguration>} - The deserialized result object.
     *
     * @reject {Error|ServiceError} - The error object.
     */
    getWithHttpOperationResponse(branch: string, ownerName: string, appName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<models.BranchConfiguration>>;

    /**
     * Gets the branch configuration
     *
     * @param {string} branch The branch name
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @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 {BranchConfiguration} - 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.
     *
     *                      {BranchConfiguration} [result]   - The deserialized result object if an error did not occur.
     *                      See {@link BranchConfiguration} 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(branch: string, ownerName: string, appName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<models.BranchConfiguration>;
    get(branch: string, ownerName: string, appName: string, callback: ServiceCallback<models.BranchConfiguration>): void;
    get(branch: string, ownerName: string, appName: string, options: { customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<models.BranchConfiguration>): void;


    /**
     * Configures the branch for build
     *
     * @param {string} branch The branch name
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @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<BranchConfiguration>} - The deserialized result object.
     *
     * @reject {Error|ServiceError} - The error object.
     */
    createWithHttpOperationResponse(branch: string, ownerName: string, appName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<models.BranchConfiguration>>;

    /**
     * Configures the branch for build
     *
     * @param {string} branch The branch name
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @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 {BranchConfiguration} - 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.
     *
     *                      {BranchConfiguration} [result]   - The deserialized result object if an error did not occur.
     *                      See {@link BranchConfiguration} 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(branch: string, ownerName: string, appName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<models.BranchConfiguration>;
    create(branch: string, ownerName: string, appName: string, callback: ServiceCallback<models.BranchConfiguration>): void;
    create(branch: string, ownerName: string, appName: string, options: { customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<models.BranchConfiguration>): void;


    /**
     * Reconfigures the branch for build
     *
     * @param {string} branch The branch name
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @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<BranchConfiguration>} - The deserialized result object.
     *
     * @reject {Error|ServiceError} - The error object.
     */
    updateWithHttpOperationResponse(branch: string, ownerName: string, appName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<models.BranchConfiguration>>;

    /**
     * Reconfigures the branch for build
     *
     * @param {string} branch The branch name
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @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 {BranchConfiguration} - 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.
     *
     *                      {BranchConfiguration} [result]   - The deserialized result object if an error did not occur.
     *                      See {@link BranchConfiguration} 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(branch: string, ownerName: string, appName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<models.BranchConfiguration>;
    update(branch: string, ownerName: string, appName: string, callback: ServiceCallback<models.BranchConfiguration>): void;
    update(branch: string, ownerName: string, appName: string, options: { customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<models.BranchConfiguration>): void;


    /**
     * Deletes the branch build configuration
     *
     * @param {string} branch The branch name
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @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<SuccessResponse>} - The deserialized result object.
     *
     * @reject {Error|ServiceError} - The error object.
     */
    deleteMethodWithHttpOperationResponse(branch: string, ownerName: string, appName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<models.SuccessResponse>>;

    /**
     * Deletes the branch build configuration
     *
     * @param {string} branch The branch name
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @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 {SuccessResponse} - 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.
     *
     *                      {SuccessResponse} [result]   - The deserialized result object if an error did not occur.
     *                      See {@link SuccessResponse} 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(branch: string, ownerName: string, appName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<models.SuccessResponse>;
    deleteMethod(branch: string, ownerName: string, appName: string, callback: ServiceCallback<models.SuccessResponse>): void;
    deleteMethod(branch: string, ownerName: string, appName: string, options: { customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<models.SuccessResponse>): void;
}

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


    /**
     * @summary Returns users of a tenant.
     * Returns all users if no searchTerm param is specified.
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @param {object} [options] Optional Parameters.
     *
     * @param {string} [options.acAuthorizationMicrosoftGraph] MSGraph Auth Token
     *
     * @param {string} [options.searchTerm] User search term
     *
     * @param {object} [options.customHeaders] Headers that will be added to the
     * request
     *
     * @returns {Promise} A promise is returned
     *
     * @resolve {HttpOperationResponse<Object>} - The deserialized result object.
     *
     * @reject {Error|ServiceError} - The error object.
     */
    getUsersWithHttpOperationResponse(ownerName: string, appName: string, options?: { acAuthorizationMicrosoftGraph? : string, searchTerm? : string, customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<any>>;

    /**
     * @summary Returns users of a tenant.
     * Returns all users if no searchTerm param is specified.
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @param {object} [options] Optional Parameters.
     *
     * @param {string} [options.acAuthorizationMicrosoftGraph] MSGraph Auth Token
     *
     * @param {string} [options.searchTerm] User search term
     *
     * @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 {Object} - 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.
     *
     *                      {Object} [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.
     */
    getUsers(ownerName: string, appName: string, options?: { acAuthorizationMicrosoftGraph? : string, searchTerm? : string, customHeaders? : { [headerName: string]: string; } }): Promise<any>;
    getUsers(ownerName: string, appName: string, callback: ServiceCallback<any>): void;
    getUsers(ownerName: string, appName: string, options: { acAuthorizationMicrosoftGraph? : string, searchTerm? : string, customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<any>): void;
}

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


    /**
     * Fetch all apple test flight groups
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @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.
     */
    testFlightGroupsWithHttpOperationResponse(ownerName: string, appName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<models.AppleTestFlightGroupsResponse[]>>;

    /**
     * Fetch all apple test flight groups
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @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.
     */
    testFlightGroups(ownerName: string, appName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<models.AppleTestFlightGroupsResponse[]>;
    testFlightGroups(ownerName: string, appName: string, callback: ServiceCallback<models.AppleTestFlightGroupsResponse[]>): void;
    testFlightGroups(ownerName: string, appName: string, options: { customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<models.AppleTestFlightGroupsResponse[]>): void;


    /**
     * Get mapping of apple app to an existing app in apple store.
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @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<AppleMappingResponse>} - The deserialized result object.
     *
     * @reject {Error|ServiceError} - The error object.
     */
    getWithHttpOperationResponse(ownerName: string, appName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<models.AppleMappingResponse>>;

    /**
     * Get mapping of apple app to an existing app in apple store.
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @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 {AppleMappingResponse} - 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.
     *
     *                      {AppleMappingResponse} [result]   - The deserialized result object if an error did not occur.
     *                      See {@link AppleMappingResponse} 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(ownerName: string, appName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<models.AppleMappingResponse>;
    get(ownerName: string, appName: string, callback: ServiceCallback<models.AppleMappingResponse>): void;
    get(ownerName: string, appName: string, options: { customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<models.AppleMappingResponse>): void;


    /**
     * Delete mapping of apple app to an existing app in apple store.
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @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<null>} - The deserialized result object.
     *
     * @reject {Error|ServiceError} - The error object.
     */
    deleteMethodWithHttpOperationResponse(ownerName: string, appName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<void>>;

    /**
     * Delete mapping of apple app to an existing app in apple store.
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @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 {null} - 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.
     *
     *                      {null} [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.
     */
    deleteMethod(ownerName: string, appName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<void>;
    deleteMethod(ownerName: string, appName: string, callback: ServiceCallback<void>): void;
    deleteMethod(ownerName: string, appName: string, options: { customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<void>): void;


    /**
     * Create a mapping for an existing app in apple store for the specified
     * application.
     *
     * @param {object} body The apple app mapping object
     *
     * @param {string} body.serviceConnectionId Id for the shared service
     * connection. In case of Apple AppStore, this connection will be used to
     * create and connect to the Apple AppStore in Mobile Center.
     *
     * @param {string} [body.appleId] ID of the apple application in apple store,
     * takes precedence over bundle_identifier when both are provided
     *
     * @param {string} [body.bundleIdentifier] Bundle Identifier of the apple
     * package
     *
     * @param {string} body.teamIdentifier ID of the Team associated with the app
     * in apple store
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @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<AppleMappingResponse>} - The deserialized result object.
     *
     * @reject {Error|ServiceError} - The error object.
     */
    createWithHttpOperationResponse(body: models.AppleMappingRequest, ownerName: string, appName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<models.AppleMappingResponse>>;

    /**
     * Create a mapping for an existing app in apple store for the specified
     * application.
     *
     * @param {object} body The apple app mapping object
     *
     * @param {string} body.serviceConnectionId Id for the shared service
     * connection. In case of Apple AppStore, this connection will be used to
     * create and connect to the Apple AppStore in Mobile Center.
     *
     * @param {string} [body.appleId] ID of the apple application in apple store,
     * takes precedence over bundle_identifier when both are provided
     *
     * @param {string} [body.bundleIdentifier] Bundle Identifier of the apple
     * package
     *
     * @param {string} body.teamIdentifier ID of the Team associated with the app
     * in apple store
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @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 {AppleMappingResponse} - 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.
     *
     *                      {AppleMappingResponse} [result]   - The deserialized result object if an error did not occur.
     *                      See {@link AppleMappingResponse} 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(body: models.AppleMappingRequest, ownerName: string, appName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<models.AppleMappingResponse>;
    create(body: models.AppleMappingRequest, ownerName: string, appName: string, callback: ServiceCallback<models.AppleMappingResponse>): void;
    create(body: models.AppleMappingRequest, ownerName: string, appName: string, options: { customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<models.AppleMappingResponse>): void;
}

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


    /**
     * Count of active versions in the time range ordered by version.
     *
     * @param {date} start Start date time in data in ISO 8601 date time format
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @param {object} [options] Optional Parameters.
     *
     * @param {date} [options.end] Last date time in data in ISO 8601 date time
     * format
     *
     * @param {number} [options.top] The maximum number of results to return. (0
     * will fetch all results)
     *
     * @param {array} [options.versions]
     *
     * @param {object} [options.customHeaders] Headers that will be added to the
     * request
     *
     * @returns {Promise} A promise is returned
     *
     * @resolve {HttpOperationResponse<Versions>} - The deserialized result object.
     *
     * @reject {Error|ServiceError} - The error object.
     */
    versionsMethodWithHttpOperationResponse(start: Date|string, ownerName: string, appName: string, options?: { end? : Date, top? : number, versions? : string[], customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<models.Versions>>;

    /**
     * Count of active versions in the time range ordered by version.
     *
     * @param {date} start Start date time in data in ISO 8601 date time format
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @param {object} [options] Optional Parameters.
     *
     * @param {date} [options.end] Last date time in data in ISO 8601 date time
     * format
     *
     * @param {number} [options.top] The maximum number of results to return. (0
     * will fetch all results)
     *
     * @param {array} [options.versions]
     *
     * @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 {Versions} - 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.
     *
     *                      {Versions} [result]   - The deserialized result object if an error did not occur.
     *                      See {@link Versions} 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.
     */
    versionsMethod(start: Date|string, ownerName: string, appName: string, options?: { end? : Date, top? : number, versions? : string[], customHeaders? : { [headerName: string]: string; } }): Promise<models.Versions>;
    versionsMethod(start: Date|string, ownerName: string, appName: string, callback: ServiceCallback<models.Versions>): void;
    versionsMethod(start: Date|string, ownerName: string, appName: string, options: { end? : Date, top? : number, versions? : string[], customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<models.Versions>): void;


    /**
     * Count of sessions per device in the time range
     *
     * @param {date} start Start date time in data in ISO 8601 date time format
     *
     * @param {string} interval Size of interval in ISO 8601 duration format.
     * (PnYnMnDTnHnMnS|PnW|P<date>T<time>). The valid durations are 1 day (P1D), 1
     * week (P1W), and 30 days (P30D).
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @param {object} [options] Optional Parameters.
     *
     * @param {date} [options.end] Last date time in data in ISO 8601 date time
     * format
     *
     * @param {array} [options.versions]
     *
     * @param {object} [options.customHeaders] Headers that will be added to the
     * request
     *
     * @returns {Promise} A promise is returned
     *
     * @resolve {HttpOperationResponse<SessionsPerDevice>} - The deserialized result object.
     *
     * @reject {Error|ServiceError} - The error object.
     */
    perDeviceCountsWithHttpOperationResponse(start: Date|string, interval: string, ownerName: string, appName: string, options?: { end? : Date, versions? : string[], customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<models.SessionsPerDevice>>;

    /**
     * Count of sessions per device in the time range
     *
     * @param {date} start Start date time in data in ISO 8601 date time format
     *
     * @param {string} interval Size of interval in ISO 8601 duration format.
     * (PnYnMnDTnHnMnS|PnW|P<date>T<time>). The valid durations are 1 day (P1D), 1
     * week (P1W), and 30 days (P30D).
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @param {object} [options] Optional Parameters.
     *
     * @param {date} [options.end] Last date time in data in ISO 8601 date time
     * format
     *
     * @param {array} [options.versions]
     *
     * @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 {SessionsPerDevice} - 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.
     *
     *                      {SessionsPerDevice} [result]   - The deserialized result object if an error did not occur.
     *                      See {@link SessionsPerDevice} 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.
     */
    perDeviceCounts(start: Date|string, interval: string, ownerName: string, appName: string, options?: { end? : Date, versions? : string[], customHeaders? : { [headerName: string]: string; } }): Promise<models.SessionsPerDevice>;
    perDeviceCounts(start: Date|string, interval: string, ownerName: string, appName: string, callback: ServiceCallback<models.SessionsPerDevice>): void;
    perDeviceCounts(start: Date|string, interval: string, ownerName: string, appName: string, options: { end? : Date, versions? : string[], customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<models.SessionsPerDevice>): void;


    /**
     * Gets session duration .
     *
     * @param {date} start Start date time in data in ISO 8601 date time format
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @param {object} [options] Optional Parameters.
     *
     * @param {date} [options.end] Last date time in data in ISO 8601 date time
     * format
     *
     * @param {array} [options.versions]
     *
     * @param {object} [options.customHeaders] Headers that will be added to the
     * request
     *
     * @returns {Promise} A promise is returned
     *
     * @resolve {HttpOperationResponse<SessionDurationsDistribution>} - The deserialized result object.
     *
     * @reject {Error|ServiceError} - The error object.
     */
    sessionDurationsDistributionMethodWithHttpOperationResponse(start: Date|string, ownerName: string, appName: string, options?: { end? : Date, versions? : string[], customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<models.SessionDurationsDistribution>>;

    /**
     * Gets session duration .
     *
     * @param {date} start Start date time in data in ISO 8601 date time format
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @param {object} [options] Optional Parameters.
     *
     * @param {date} [options.end] Last date time in data in ISO 8601 date time
     * format
     *
     * @param {array} [options.versions]
     *
     * @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 {SessionDurationsDistribution} - 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.
     *
     *                      {SessionDurationsDistribution} [result]   - The deserialized result object if an error did not occur.
     *                      See {@link SessionDurationsDistribution} 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.
     */
    sessionDurationsDistributionMethod(start: Date|string, ownerName: string, appName: string, options?: { end? : Date, versions? : string[], customHeaders? : { [headerName: string]: string; } }): Promise<models.SessionDurationsDistribution>;
    sessionDurationsDistributionMethod(start: Date|string, ownerName: string, appName: string, callback: ServiceCallback<models.SessionDurationsDistribution>): void;
    sessionDurationsDistributionMethod(start: Date|string, ownerName: string, appName: string, options: { end? : Date, versions? : string[], customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<models.SessionDurationsDistribution>): void;


    /**
     * Count of sessions in the time range.
     *
     * @param {date} start Start date time in data in ISO 8601 date time format
     *
     * @param {string} interval Size of interval in ISO 8601 duration format.
     * (PnYnMnDTnHnMnS|PnW|P<date>T<time>). The valid durations are 1 day (P1D), 1
     * week (P1W), and 30 days (P30D).
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @param {object} [options] Optional Parameters.
     *
     * @param {date} [options.end] Last date time in data in ISO 8601 date time
     * format
     *
     * @param {array} [options.versions]
     *
     * @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.
     */
    sessionCountsWithHttpOperationResponse(start: Date|string, interval: string, ownerName: string, appName: string, options?: { end? : Date, versions? : string[], customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<models.DateTimeCounts[]>>;

    /**
     * Count of sessions in the time range.
     *
     * @param {date} start Start date time in data in ISO 8601 date time format
     *
     * @param {string} interval Size of interval in ISO 8601 duration format.
     * (PnYnMnDTnHnMnS|PnW|P<date>T<time>). The valid durations are 1 day (P1D), 1
     * week (P1W), and 30 days (P30D).
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @param {object} [options] Optional Parameters.
     *
     * @param {date} [options.end] Last date time in data in ISO 8601 date time
     * format
     *
     * @param {array} [options.versions]
     *
     * @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.
     */
    sessionCounts(start: Date|string, interval: string, ownerName: string, appName: string, options?: { end? : Date, versions? : string[], customHeaders? : { [headerName: string]: string; } }): Promise<models.DateTimeCounts[]>;
    sessionCounts(start: Date|string, interval: string, ownerName: string, appName: string, callback: ServiceCallback<models.DateTimeCounts[]>): void;
    sessionCounts(start: Date|string, interval: string, ownerName: string, appName: string, options: { end? : Date, versions? : string[], customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<models.DateTimeCounts[]>): void;


    /**
     * Places in the time range
     *
     * @param {date} start Start date time in data in ISO 8601 date time format
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @param {object} [options] Optional Parameters.
     *
     * @param {date} [options.end] Last date time in data in ISO 8601 date time
     * format
     *
     * @param {number} [options.top] The maximum number of results to return. (0
     * will fetch all results)
     *
     * @param {array} [options.versions]
     *
     * @param {object} [options.customHeaders] Headers that will be added to the
     * request
     *
     * @returns {Promise} A promise is returned
     *
     * @resolve {HttpOperationResponse<Places>} - The deserialized result object.
     *
     * @reject {Error|ServiceError} - The error object.
     */
    placeCountsWithHttpOperationResponse(start: Date|string, ownerName: string, appName: string, options?: { end? : Date, top? : number, versions? : string[], customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<models.Places>>;

    /**
     * Places in the time range
     *
     * @param {date} start Start date time in data in ISO 8601 date time format
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @param {object} [options] Optional Parameters.
     *
     * @param {date} [options.end] Last date time in data in ISO 8601 date time
     * format
     *
     * @param {number} [options.top] The maximum number of results to return. (0
     * will fetch all results)
     *
     * @param {array} [options.versions]
     *
     * @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 {Places} - 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.
     *
     *                      {Places} [result]   - The deserialized result object if an error did not occur.
     *                      See {@link Places} 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.
     */
    placeCounts(start: Date|string, ownerName: string, appName: string, options?: { end? : Date, top? : number, versions? : string[], customHeaders? : { [headerName: string]: string; } }): Promise<models.Places>;
    placeCounts(start: Date|string, ownerName: string, appName: string, callback: ServiceCallback<models.Places>): void;
    placeCounts(start: Date|string, ownerName: string, appName: string, options: { end? : Date, top? : number, versions? : string[], customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<models.Places>): void;


    /**
     * OSes in the time range
     *
     * @param {date} start Start date time in data in ISO 8601 date time format
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @param {object} [options] Optional Parameters.
     *
     * @param {date} [options.end] Last date time in data in ISO 8601 date time
     * format
     *
     * @param {number} [options.top] The maximum number of results to return. (0
     * will fetch all results)
     *
     * @param {array} [options.versions]
     *
     * @param {object} [options.customHeaders] Headers that will be added to the
     * request
     *
     * @returns {Promise} A promise is returned
     *
     * @resolve {HttpOperationResponse<OSes>} - The deserialized result object.
     *
     * @reject {Error|ServiceError} - The error object.
     */
    operatingSystemCountsWithHttpOperationResponse(start: Date|string, ownerName: string, appName: string, options?: { end? : Date, top? : number, versions? : string[], customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<models.OSes>>;

    /**
     * OSes in the time range
     *
     * @param {date} start Start date time in data in ISO 8601 date time format
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @param {object} [options] Optional Parameters.
     *
     * @param {date} [options.end] Last date time in data in ISO 8601 date time
     * format
     *
     * @param {number} [options.top] The maximum number of results to return. (0
     * will fetch all results)
     *
     * @param {array} [options.versions]
     *
     * @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 {OSes} - 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.
     *
     *                      {OSes} [result]   - The deserialized result object if an error did not occur.
     *                      See {@link OSes} 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.
     */
    operatingSystemCounts(start: Date|string, ownerName: string, appName: string, options?: { end? : Date, top? : number, versions? : string[], customHeaders? : { [headerName: string]: string; } }): Promise<models.OSes>;
    operatingSystemCounts(start: Date|string, ownerName: string, appName: string, callback: ServiceCallback<models.OSes>): void;
    operatingSystemCounts(start: Date|string, ownerName: string, appName: string, options: { end? : Date, top? : number, versions? : string[], customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<models.OSes>): void;


    /**
     * models in the time range
     *
     * @param {date} start Start date time in data in ISO 8601 date time format
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @param {object} [options] Optional Parameters.
     *
     * @param {date} [options.end] Last date time in data in ISO 8601 date time
     * format
     *
     * @param {number} [options.top] The maximum number of results to return. (0
     * will fetch all results)
     *
     * @param {array} [options.versions]
     *
     * @param {object} [options.customHeaders] Headers that will be added to the
     * request
     *
     * @returns {Promise} A promise is returned
     *
     * @resolve {HttpOperationResponse<AnalyticsModels>} - The deserialized result object.
     *
     * @reject {Error|ServiceError} - The error object.
     */
    modelCountsWithHttpOperationResponse(start: Date|string, ownerName: string, appName: string, options?: { end? : Date, top? : number, versions? : string[], customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<models.AnalyticsModels>>;

    /**
     * models in the time range
     *
     * @param {date} start Start date time in data in ISO 8601 date time format
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @param {object} [options] Optional Parameters.
     *
     * @param {date} [options.end] Last date time in data in ISO 8601 date time
     * format
     *
     * @param {number} [options.top] The maximum number of results to return. (0
     * will fetch all results)
     *
     * @param {array} [options.versions]
     *
     * @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 {AnalyticsModels} - 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.
     *
     *                      {AnalyticsModels} [result]   - The deserialized result object if an error did not occur.
     *                      See {@link AnalyticsModels} 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.
     */
    modelCounts(start: Date|string, ownerName: string, appName: string, options?: { end? : Date, top? : number, versions? : string[], customHeaders? : { [headerName: string]: string; } }): Promise<models.AnalyticsModels>;
    modelCounts(start: Date|string, ownerName: string, appName: string, callback: ServiceCallback<models.AnalyticsModels>): void;
    modelCounts(start: Date|string, ownerName: string, appName: string, options: { end? : Date, top? : number, versions? : string[], customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<models.AnalyticsModels>): void;


    /**
     * Logs received between the specified start time and the current time. The API
     * will return a maximum of 100 logs per call.
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @param {object} [options] Optional Parameters.
     *
     * @param {date} [options.start] Start date time in data in ISO 8601 date time
     * format. It must be within the current day in the UTC timezone. The default
     * value is the start time of the current day in UTC timezone.
     *
     * @param {object} [options.customHeaders] Headers that will be added to the
     * request
     *
     * @returns {Promise} A promise is returned
     *
     * @resolve {HttpOperationResponse<LogFlowLogContainer>} - The deserialized result object.
     *
     * @reject {Error|ServiceError} - The error object.
     */
    logFlowWithHttpOperationResponse(ownerName: string, appName: string, options?: { start? : Date, customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<models.LogFlowLogContainer>>;

    /**
     * Logs received between the specified start time and the current time. The API
     * will return a maximum of 100 logs per call.
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @param {object} [options] Optional Parameters.
     *
     * @param {date} [options.start] Start date time in data in ISO 8601 date time
     * format. It must be within the current day in the UTC timezone. The default
     * value is the start time of the current day in UTC timezone.
     *
     * @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 {LogFlowLogContainer} - 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.
     *
     *                      {LogFlowLogContainer} [result]   - The deserialized result object if an error did not occur.
     *                      See {@link LogFlowLogContainer} 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.
     */
    logFlow(ownerName: string, appName: string, options?: { start? : Date, customHeaders? : { [headerName: string]: string; } }): Promise<models.LogFlowLogContainer>;
    logFlow(ownerName: string, appName: string, callback: ServiceCallback<models.LogFlowLogContainer>): void;
    logFlow(ownerName: string, appName: string, options: { start? : Date, customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<models.LogFlowLogContainer>): void;


    /**
     * languages in the time range
     *
     * @param {date} start Start date time in data in ISO 8601 date time format
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @param {object} [options] Optional Parameters.
     *
     * @param {date} [options.end] Last date time in data in ISO 8601 date time
     * format
     *
     * @param {number} [options.top] The maximum number of results to return. (0
     * will fetch all results)
     *
     * @param {array} [options.versions]
     *
     * @param {object} [options.customHeaders] Headers that will be added to the
     * request
     *
     * @returns {Promise} A promise is returned
     *
     * @resolve {HttpOperationResponse<Languages>} - The deserialized result object.
     *
     * @reject {Error|ServiceError} - The error object.
     */
    languageCountsWithHttpOperationResponse(start: Date|string, ownerName: string, appName: string, options?: { end? : Date, top? : number, versions? : string[], customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<models.Languages>>;

    /**
     * languages in the time range
     *
     * @param {date} start Start date time in data in ISO 8601 date time format
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @param {object} [options] Optional Parameters.
     *
     * @param {date} [options.end] Last date time in data in ISO 8601 date time
     * format
     *
     * @param {number} [options.top] The maximum number of results to return. (0
     * will fetch all results)
     *
     * @param {array} [options.versions]
     *
     * @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 {Languages} - 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.
     *
     *                      {Languages} [result]   - The deserialized result object if an error did not occur.
     *                      See {@link Languages} 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.
     */
    languageCounts(start: Date|string, ownerName: string, appName: string, options?: { end? : Date, top? : number, versions? : string[], customHeaders? : { [headerName: string]: string; } }): Promise<models.Languages>;
    languageCounts(start: Date|string, ownerName: string, appName: string, callback: ServiceCallback<models.Languages>): void;
    languageCounts(start: Date|string, ownerName: string, appName: string, options: { end? : Date, top? : number, versions? : string[], customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<models.Languages>): void;


    /**
     * Logs received between the specified start time and the current time. The API
     * will return a maximum of 100 logs per call.
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @param {object} [options] Optional Parameters.
     *
     * @param {date} [options.start] Start date time in data in ISO 8601 date time
     * format. It must be within the current day in the UTC timezone. The default
     * value is the start time of the current day in UTC timezone.
     *
     * @param {object} [options.customHeaders] Headers that will be added to the
     * request
     *
     * @returns {Promise} A promise is returned
     *
     * @resolve {HttpOperationResponse<LogFlowGenericLogContainer>} - The deserialized result object.
     *
     * @reject {Error|ServiceError} - The error object.
     */
    genericLogFlowWithHttpOperationResponse(ownerName: string, appName: string, options?: { start? : Date, customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<models.LogFlowGenericLogContainer>>;

    /**
     * Logs received between the specified start time and the current time. The API
     * will return a maximum of 100 logs per call.
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @param {object} [options] Optional Parameters.
     *
     * @param {date} [options.start] Start date time in data in ISO 8601 date time
     * format. It must be within the current day in the UTC timezone. The default
     * value is the start time of the current day in UTC timezone.
     *
     * @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 {LogFlowGenericLogContainer} - 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.
     *
     *                      {LogFlowGenericLogContainer} [result]   - The deserialized result object if an error did not occur.
     *                      See {@link LogFlowGenericLogContainer} 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.
     */
    genericLogFlow(ownerName: string, appName: string, options?: { start? : Date, customHeaders? : { [headerName: string]: string; } }): Promise<models.LogFlowGenericLogContainer>;
    genericLogFlow(ownerName: string, appName: string, callback: ServiceCallback<models.LogFlowGenericLogContainer>): void;
    genericLogFlow(ownerName: string, appName: string, options: { start? : Date, customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<models.LogFlowGenericLogContainer>): void;


    /**
     * Event properties value counts during the time range in descending order.
     * Limited up to 5 values.
     *
     * @param {string} eventName The id of the event
     *
     * @param {string} eventPropertyName The id of the event property
     *
     * @param {date} start Start date time in data in ISO 8601 date time format
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @param {object} [options] Optional Parameters.
     *
     * @param {date} [options.end] Last date time in data in ISO 8601 date time
     * format
     *
     * @param {array} [options.versions]
     *
     * @param {number} [options.top] The number of property values to return
     *
     * @param {object} [options.customHeaders] Headers that will be added to the
     * request
     *
     * @returns {Promise} A promise is returned
     *
     * @resolve {HttpOperationResponse<EventPropertyValues>} - The deserialized result object.
     *
     * @reject {Error|ServiceError} - The error object.
     */
    eventPropertyCountsWithHttpOperationResponse(eventName: string, eventPropertyName: string, start: Date|string, ownerName: string, appName: string, options?: { end? : Date, versions? : string[], top? : number, customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<models.EventPropertyValues>>;

    /**
     * Event properties value counts during the time range in descending order.
     * Limited up to 5 values.
     *
     * @param {string} eventName The id of the event
     *
     * @param {string} eventPropertyName The id of the event property
     *
     * @param {date} start Start date time in data in ISO 8601 date time format
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @param {object} [options] Optional Parameters.
     *
     * @param {date} [options.end] Last date time in data in ISO 8601 date time
     * format
     *
     * @param {array} [options.versions]
     *
     * @param {number} [options.top] The number of property values 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 {EventPropertyValues} - 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.
     *
     *                      {EventPropertyValues} [result]   - The deserialized result object if an error did not occur.
     *                      See {@link EventPropertyValues} 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.
     */
    eventPropertyCounts(eventName: string, eventPropertyName: string, start: Date|string, ownerName: string, appName: string, options?: { end? : Date, versions? : string[], top? : number, customHeaders? : { [headerName: string]: string; } }): Promise<models.EventPropertyValues>;
    eventPropertyCounts(eventName: string, eventPropertyName: string, start: Date|string, ownerName: string, appName: string, callback: ServiceCallback<models.EventPropertyValues>): void;
    eventPropertyCounts(eventName: string, eventPropertyName: string, start: Date|string, ownerName: string, appName: string, options: { end? : Date, versions? : string[], top? : number, customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<models.EventPropertyValues>): void;


    /**
     * Event properties.  Up to the first 5 received properties.
     *
     * @param {string} eventName The id of the event
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @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<EventProperties>} - The deserialized result object.
     *
     * @reject {Error|ServiceError} - The error object.
     */
    eventPropertiesMethodWithHttpOperationResponse(eventName: string, ownerName: string, appName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<models.EventProperties>>;

    /**
     * Event properties.  Up to the first 5 received properties.
     *
     * @param {string} eventName The id of the event
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @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 {EventProperties} - 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.
     *
     *                      {EventProperties} [result]   - The deserialized result object if an error did not occur.
     *                      See {@link EventProperties} 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.
     */
    eventPropertiesMethod(eventName: string, ownerName: string, appName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<models.EventProperties>;
    eventPropertiesMethod(eventName: string, ownerName: string, appName: string, callback: ServiceCallback<models.EventProperties>): void;
    eventPropertiesMethod(eventName: string, ownerName: string, appName: string, options: { customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<models.EventProperties>): void;


    /**
     * Count of events by interval in the time range.
     *
     * @param {string} eventName The id of the event
     *
     * @param {date} start Start date time in data in ISO 8601 date time format
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @param {object} [options] Optional Parameters.
     *
     * @param {date} [options.end] Last date time in data in ISO 8601 date time
     * format
     *
     * @param {array} [options.versions]
     *
     * @param {object} [options.customHeaders] Headers that will be added to the
     * request
     *
     * @returns {Promise} A promise is returned
     *
     * @resolve {HttpOperationResponse<EventCount>} - The deserialized result object.
     *
     * @reject {Error|ServiceError} - The error object.
     */
    eventCountMethodWithHttpOperationResponse(eventName: string, start: Date|string, ownerName: string, appName: string, options?: { end? : Date, versions? : string[], customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<models.EventCount>>;

    /**
     * Count of events by interval in the time range.
     *
     * @param {string} eventName The id of the event
     *
     * @param {date} start Start date time in data in ISO 8601 date time format
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @param {object} [options] Optional Parameters.
     *
     * @param {date} [options.end] Last date time in data in ISO 8601 date time
     * format
     *
     * @param {array} [options.versions]
     *
     * @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 {EventCount} - 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.
     *
     *                      {EventCount} [result]   - The deserialized result object if an error did not occur.
     *                      See {@link EventCount} 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.
     */
    eventCountMethod(eventName: string, start: Date|string, ownerName: string, appName: string, options?: { end? : Date, versions? : string[], customHeaders? : { [headerName: string]: string; } }): Promise<models.EventCount>;
    eventCountMethod(eventName: string, start: Date|string, ownerName: string, appName: string, callback: ServiceCallback<models.EventCount>): void;
    eventCountMethod(eventName: string, start: Date|string, ownerName: string, appName: string, options: { end? : Date, versions? : string[], customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<models.EventCount>): void;


    /**
     * Count of devices for an event by interval in the time range.
     *
     * @param {string} eventName The id of the event
     *
     * @param {date} start Start date time in data in ISO 8601 date time format
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @param {object} [options] Optional Parameters.
     *
     * @param {date} [options.end] Last date time in data in ISO 8601 date time
     * format
     *
     * @param {array} [options.versions]
     *
     * @param {object} [options.customHeaders] Headers that will be added to the
     * request
     *
     * @returns {Promise} A promise is returned
     *
     * @resolve {HttpOperationResponse<EventDeviceCount>} - The deserialized result object.
     *
     * @reject {Error|ServiceError} - The error object.
     */
    eventDeviceCountMethodWithHttpOperationResponse(eventName: string, start: Date|string, ownerName: string, appName: string, options?: { end? : Date, versions? : string[], customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<models.EventDeviceCount>>;

    /**
     * Count of devices for an event by interval in the time range.
     *
     * @param {string} eventName The id of the event
     *
     * @param {date} start Start date time in data in ISO 8601 date time format
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @param {object} [options] Optional Parameters.
     *
     * @param {date} [options.end] Last date time in data in ISO 8601 date time
     * format
     *
     * @param {array} [options.versions]
     *
     * @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 {EventDeviceCount} - 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.
     *
     *                      {EventDeviceCount} [result]   - The deserialized result object if an error did not occur.
     *                      See {@link EventDeviceCount} 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.
     */
    eventDeviceCountMethod(eventName: string, start: Date|string, ownerName: string, appName: string, options?: { end? : Date, versions? : string[], customHeaders? : { [headerName: string]: string; } }): Promise<models.EventDeviceCount>;
    eventDeviceCountMethod(eventName: string, start: Date|string, ownerName: string, appName: string, callback: ServiceCallback<models.EventDeviceCount>): void;
    eventDeviceCountMethod(eventName: string, start: Date|string, ownerName: string, appName: string, options: { end? : Date, versions? : string[], customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<models.EventDeviceCount>): void;


    /**
     * Count of events per session by interval in the time range.
     *
     * @param {string} eventName The id of the event
     *
     * @param {date} start Start date time in data in ISO 8601 date time format
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @param {object} [options] Optional Parameters.
     *
     * @param {date} [options.end] Last date time in data in ISO 8601 date time
     * format
     *
     * @param {array} [options.versions]
     *
     * @param {object} [options.customHeaders] Headers that will be added to the
     * request
     *
     * @returns {Promise} A promise is returned
     *
     * @resolve {HttpOperationResponse<EventCountPerSession>} - The deserialized result object.
     *
     * @reject {Error|ServiceError} - The error object.
     */
    eventPerSessionCountWithHttpOperationResponse(eventName: string, start: Date|string, ownerName: string, appName: string, options?: { end? : Date, versions? : string[], customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<models.EventCountPerSession>>;

    /**
     * Count of events per session by interval in the time range.
     *
     * @param {string} eventName The id of the event
     *
     * @param {date} start Start date time in data in ISO 8601 date time format
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @param {object} [options] Optional Parameters.
     *
     * @param {date} [options.end] Last date time in data in ISO 8601 date time
     * format
     *
     * @param {array} [options.versions]
     *
     * @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 {EventCountPerSession} - 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.
     *
     *                      {EventCountPerSession} [result]   - The deserialized result object if an error did not occur.
     *                      See {@link EventCountPerSession} 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.
     */
    eventPerSessionCount(eventName: string, start: Date|string, ownerName: string, appName: string, options?: { end? : Date, versions? : string[], customHeaders? : { [headerName: string]: string; } }): Promise<models.EventCountPerSession>;
    eventPerSessionCount(eventName: string, start: Date|string, ownerName: string, appName: string, callback: ServiceCallback<models.EventCountPerSession>): void;
    eventPerSessionCount(eventName: string, start: Date|string, ownerName: string, appName: string, options: { end? : Date, versions? : string[], customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<models.EventCountPerSession>): void;


    /**
     * Count of events per device by interval in the time range.
     *
     * @param {string} eventName The id of the event
     *
     * @param {date} start Start date time in data in ISO 8601 date time format
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @param {object} [options] Optional Parameters.
     *
     * @param {date} [options.end] Last date time in data in ISO 8601 date time
     * format
     *
     * @param {array} [options.versions]
     *
     * @param {object} [options.customHeaders] Headers that will be added to the
     * request
     *
     * @returns {Promise} A promise is returned
     *
     * @resolve {HttpOperationResponse<EventCountPerDevice>} - The deserialized result object.
     *
     * @reject {Error|ServiceError} - The error object.
     */
    eventPerDeviceCountWithHttpOperationResponse(eventName: string, start: Date|string, ownerName: string, appName: string, options?: { end? : Date, versions? : string[], customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<models.EventCountPerDevice>>;

    /**
     * Count of events per device by interval in the time range.
     *
     * @param {string} eventName The id of the event
     *
     * @param {date} start Start date time in data in ISO 8601 date time format
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @param {object} [options] Optional Parameters.
     *
     * @param {date} [options.end] Last date time in data in ISO 8601 date time
     * format
     *
     * @param {array} [options.versions]
     *
     * @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 {EventCountPerDevice} - 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.
     *
     *                      {EventCountPerDevice} [result]   - The deserialized result object if an error did not occur.
     *                      See {@link EventCountPerDevice} 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.
     */
    eventPerDeviceCount(eventName: string, start: Date|string, ownerName: string, appName: string, options?: { end? : Date, versions? : string[], customHeaders? : { [headerName: string]: string; } }): Promise<models.EventCountPerDevice>;
    eventPerDeviceCount(eventName: string, start: Date|string, ownerName: string, appName: string, callback: ServiceCallback<models.EventCountPerDevice>): void;
    eventPerDeviceCount(eventName: string, start: Date|string, ownerName: string, appName: string, options: { end? : Date, versions? : string[], customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<models.EventCountPerDevice>): void;


    /**
     * Delete the set of Events with the specified event names
     *
     * @param {string} eventName The id of the event
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @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<null>} - The deserialized result object.
     *
     * @reject {Error|ServiceError} - The error object.
     */
    eventsDeleteWithHttpOperationResponse(eventName: string, ownerName: string, appName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<void>>;

    /**
     * Delete the set of Events with the specified event names
     *
     * @param {string} eventName The id of the event
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @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 {null} - 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.
     *
     *                      {null} [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.
     */
    eventsDelete(eventName: string, ownerName: string, appName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<void>;
    eventsDelete(eventName: string, ownerName: string, appName: string, callback: ServiceCallback<void>): void;
    eventsDelete(eventName: string, ownerName: string, appName: string, options: { customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<void>): void;


    /**
     * Count of active events in the time range ordered by event.
     *
     * @param {date} start Start date time in data in ISO 8601 date time format
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @param {object} [options] Optional Parameters.
     *
     * @param {date} [options.end] Last date time in data in ISO 8601 date time
     * format
     *
     * @param {array} [options.versions]
     *
     * @param {array} [options.eventName] to select the specific events
     *
     * @param {number} [options.top] The maximum number of results to return. (0
     * will fetch all results)
     *
     * @param {number} [options.skip] The offset (starting at 0) of the first
     * result to return. This parameter along with limit is used to perform
     * pagination.
     *
     * @param {string} [options.inlinecount] Controls whether or not to include a
     * count of all the items across all pages. Possible values include:
     * 'allpages', 'none'
     *
     * @param {string} [options.orderby] controls the sorting order and sorting
     * based on which column
     *
     * @param {object} [options.customHeaders] Headers that will be added to the
     * request
     *
     * @returns {Promise} A promise is returned
     *
     * @resolve {HttpOperationResponse<Events>} - The deserialized result object.
     *
     * @reject {Error|ServiceError} - The error object.
     */
    eventsMethodWithHttpOperationResponse(start: Date|string, ownerName: string, appName: string, options?: { end? : Date, versions? : string[], eventName? : string[], top? : number, skip? : number, inlinecount? : string, orderby? : string, customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<models.Events>>;

    /**
     * Count of active events in the time range ordered by event.
     *
     * @param {date} start Start date time in data in ISO 8601 date time format
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @param {object} [options] Optional Parameters.
     *
     * @param {date} [options.end] Last date time in data in ISO 8601 date time
     * format
     *
     * @param {array} [options.versions]
     *
     * @param {array} [options.eventName] to select the specific events
     *
     * @param {number} [options.top] The maximum number of results to return. (0
     * will fetch all results)
     *
     * @param {number} [options.skip] The offset (starting at 0) of the first
     * result to return. This parameter along with limit is used to perform
     * pagination.
     *
     * @param {string} [options.inlinecount] Controls whether or not to include a
     * count of all the items across all pages. Possible values include:
     * 'allpages', 'none'
     *
     * @param {string} [options.orderby] controls the sorting order and sorting
     * based on which column
     *
     * @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 {Events} - 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.
     *
     *                      {Events} [result]   - The deserialized result object if an error did not occur.
     *                      See {@link Events} 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.
     */
    eventsMethod(start: Date|string, ownerName: string, appName: string, options?: { end? : Date, versions? : string[], eventName? : string[], top? : number, skip? : number, inlinecount? : string, orderby? : string, customHeaders? : { [headerName: string]: string; } }): Promise<models.Events>;
    eventsMethod(start: Date|string, ownerName: string, appName: string, callback: ServiceCallback<models.Events>): void;
    eventsMethod(start: Date|string, ownerName: string, appName: string, options: { end? : Date, versions? : string[], eventName? : string[], top? : number, skip? : number, inlinecount? : string, orderby? : string, customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<models.Events>): void;


    /**
     * Delete the set of Events with the specified event names
     *
     * @param {string} eventName The id of the event
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @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<null>} - The deserialized result object.
     *
     * @reject {Error|ServiceError} - The error object.
     */
    eventsDeleteLogsWithHttpOperationResponse(eventName: string, ownerName: string, appName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<void>>;

    /**
     * Delete the set of Events with the specified event names
     *
     * @param {string} eventName The id of the event
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @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 {null} - 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.
     *
     *                      {null} [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.
     */
    eventsDeleteLogs(eventName: string, ownerName: string, appName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<void>;
    eventsDeleteLogs(eventName: string, ownerName: string, appName: string, callback: ServiceCallback<void>): void;
    eventsDeleteLogs(eventName: string, ownerName: string, appName: string, options: { customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<void>): void;


    /**
     * Count of total downloads for the provided distribution releases.
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @param {array} releases
     *
     * @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<ReleaseCounts>} - The deserialized result object.
     *
     * @reject {Error|ServiceError} - The error object.
     */
    distributionReleaseCountsWithHttpOperationResponse(ownerName: string, appName: string, releases: models.ReleaseWithDistributionGroup[], options?: { customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<models.ReleaseCounts>>;

    /**
     * Count of total downloads for the provided distribution releases.
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @param {array} releases
     *
     * @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 {ReleaseCounts} - 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.
     *
     *                      {ReleaseCounts} [result]   - The deserialized result object if an error did not occur.
     *                      See {@link ReleaseCounts} 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.
     */
    distributionReleaseCounts(ownerName: string, appName: string, releases: models.ReleaseWithDistributionGroup[], options?: { customHeaders? : { [headerName: string]: string; } }): Promise<models.ReleaseCounts>;
    distributionReleaseCounts(ownerName: string, appName: string, releases: models.ReleaseWithDistributionGroup[], callback: ServiceCallback<models.ReleaseCounts>): void;
    distributionReleaseCounts(ownerName: string, appName: string, releases: models.ReleaseWithDistributionGroup[], options: { customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<models.ReleaseCounts>): void;


    /**
     * Percentage of crash-free device by day in the time range based on the
     * selected versions. Api will return -1 if crash devices is greater than
     * active devices.
     *
     * @param {date} start Start date time in data in ISO 8601 date time format
     *
     * @param {string} version
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @param {object} [options] Optional Parameters.
     *
     * @param {date} [options.end] Last date time in data in ISO 8601 date time
     * format
     *
     * @param {object} [options.customHeaders] Headers that will be added to the
     * request
     *
     * @returns {Promise} A promise is returned
     *
     * @resolve {HttpOperationResponse<CrashFreeDevicePercentages>} - The deserialized result object.
     *
     * @reject {Error|ServiceError} - The error object.
     */
    crashFreeDevicePercentagesMethodWithHttpOperationResponse(start: Date|string, version: string, ownerName: string, appName: string, options?: { end? : Date, customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<models.CrashFreeDevicePercentages>>;

    /**
     * Percentage of crash-free device by day in the time range based on the
     * selected versions. Api will return -1 if crash devices is greater than
     * active devices.
     *
     * @param {date} start Start date time in data in ISO 8601 date time format
     *
     * @param {string} version
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @param {object} [options] Optional Parameters.
     *
     * @param {date} [options.end] Last date time in data in ISO 8601 date time
     * format
     *
     * @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 {CrashFreeDevicePercentages} - 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.
     *
     *                      {CrashFreeDevicePercentages} [result]   - The deserialized result object if an error did not occur.
     *                      See {@link CrashFreeDevicePercentages} 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.
     */
    crashFreeDevicePercentagesMethod(start: Date|string, version: string, ownerName: string, appName: string, options?: { end? : Date, customHeaders? : { [headerName: string]: string; } }): Promise<models.CrashFreeDevicePercentages>;
    crashFreeDevicePercentagesMethod(start: Date|string, version: string, ownerName: string, appName: string, callback: ServiceCallback<models.CrashFreeDevicePercentages>): void;
    crashFreeDevicePercentagesMethod(start: Date|string, version: string, ownerName: string, appName: string, options: { end? : Date, customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<models.CrashFreeDevicePercentages>): void;


    /**
     * @summary Available for UWP apps only.
     *
     * Overall crashes and affected users count of the selected crash group with
     * selected version. Available for UWP apps only.
     *
     * @param {string} crashGroupId The id of the crash group
     *
     * @param {string} version
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @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<CrashOverall>} - The deserialized result object.
     *
     * @reject {Error|ServiceError} - The error object.
     */
    crashGroupTotalsWithHttpOperationResponse(crashGroupId: string, version: string, ownerName: string, appName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<models.CrashOverall>>;

    /**
     * @summary Available for UWP apps only.
     *
     * Overall crashes and affected users count of the selected crash group with
     * selected version. Available for UWP apps only.
     *
     * @param {string} crashGroupId The id of the crash group
     *
     * @param {string} version
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @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 {CrashOverall} - 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.
     *
     *                      {CrashOverall} [result]   - The deserialized result object if an error did not occur.
     *                      See {@link CrashOverall} 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.
     */
    crashGroupTotals(crashGroupId: string, version: string, ownerName: string, appName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<models.CrashOverall>;
    crashGroupTotals(crashGroupId: string, version: string, ownerName: string, appName: string, callback: ServiceCallback<models.CrashOverall>): void;
    crashGroupTotals(crashGroupId: string, version: string, ownerName: string, appName: string, options: { customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<models.CrashOverall>): void;


    /**
     * @summary Available for UWP apps only.
     *
     * top OSes of the selected crash group with selected version. Available for
     * UWP apps only.
     *
     * @param {string} crashGroupId The id of the crash group
     *
     * @param {string} version
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @param {object} [options] Optional Parameters.
     *
     * @param {number} [options.top] The maximum number of results to return. (0
     * will fetch all results)
     *
     * @param {object} [options.customHeaders] Headers that will be added to the
     * request
     *
     * @returns {Promise} A promise is returned
     *
     * @resolve {HttpOperationResponse<CrashGroupOperatingSystems>} - The deserialized result object.
     *
     * @reject {Error|ServiceError} - The error object.
     */
    crashGroupOperatingSystemCountsWithHttpOperationResponse(crashGroupId: string, version: string, ownerName: string, appName: string, options?: { top? : number, customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<models.CrashGroupOperatingSystems>>;

    /**
     * @summary Available for UWP apps only.
     *
     * top OSes of the selected crash group with selected version. Available for
     * UWP apps only.
     *
     * @param {string} crashGroupId The id of the crash group
     *
     * @param {string} version
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @param {object} [options] Optional Parameters.
     *
     * @param {number} [options.top] The maximum number of results to return. (0
     * will fetch all 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 {CrashGroupOperatingSystems} - 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.
     *
     *                      {CrashGroupOperatingSystems} [result]   - The deserialized result object if an error did not occur.
     *                      See {@link CrashGroupOperatingSystems} 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.
     */
    crashGroupOperatingSystemCounts(crashGroupId: string, version: string, ownerName: string, appName: string, options?: { top? : number, customHeaders? : { [headerName: string]: string; } }): Promise<models.CrashGroupOperatingSystems>;
    crashGroupOperatingSystemCounts(crashGroupId: string, version: string, ownerName: string, appName: string, callback: ServiceCallback<models.CrashGroupOperatingSystems>): void;
    crashGroupOperatingSystemCounts(crashGroupId: string, version: string, ownerName: string, appName: string, options: { top? : number, customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<models.CrashGroupOperatingSystems>): void;


    /**
     * @summary Available for UWP apps only.
     *
     * top models of the selected crash group with selected version. Available for
     * UWP apps only.
     *
     * @param {string} crashGroupId The id of the crash group
     *
     * @param {string} version
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @param {object} [options] Optional Parameters.
     *
     * @param {number} [options.top] The maximum number of results to return. (0
     * will fetch all results)
     *
     * @param {object} [options.customHeaders] Headers that will be added to the
     * request
     *
     * @returns {Promise} A promise is returned
     *
     * @resolve {HttpOperationResponse<CrashGroupModels>} - The deserialized result object.
     *
     * @reject {Error|ServiceError} - The error object.
     */
    crashGroupModelCountsWithHttpOperationResponse(crashGroupId: string, version: string, ownerName: string, appName: string, options?: { top? : number, customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<models.CrashGroupModels>>;

    /**
     * @summary Available for UWP apps only.
     *
     * top models of the selected crash group with selected version. Available for
     * UWP apps only.
     *
     * @param {string} crashGroupId The id of the crash group
     *
     * @param {string} version
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @param {object} [options] Optional Parameters.
     *
     * @param {number} [options.top] The maximum number of results to return. (0
     * will fetch all 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 {CrashGroupModels} - 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.
     *
     *                      {CrashGroupModels} [result]   - The deserialized result object if an error did not occur.
     *                      See {@link CrashGroupModels} 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.
     */
    crashGroupModelCounts(crashGroupId: string, version: string, ownerName: string, appName: string, options?: { top? : number, customHeaders? : { [headerName: string]: string; } }): Promise<models.CrashGroupModels>;
    crashGroupModelCounts(crashGroupId: string, version: string, ownerName: string, appName: string, callback: ServiceCallback<models.CrashGroupModels>): void;
    crashGroupModelCounts(crashGroupId: string, version: string, ownerName: string, appName: string, options: { top? : number, customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<models.CrashGroupModels>): void;


    /**
     * @summary Available for UWP apps only.
     *
     * Count of crashes by day in the time range of the selected crash group with
     * selected version. Available for UWP apps only.
     *
     * @param {string} crashGroupId The id of the crash group
     *
     * @param {string} version
     *
     * @param {date} start Start date time in data in ISO 8601 date time format
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @param {object} [options] Optional Parameters.
     *
     * @param {date} [options.end] Last date time in data in ISO 8601 date time
     * format
     *
     * @param {object} [options.customHeaders] Headers that will be added to the
     * request
     *
     * @returns {Promise} A promise is returned
     *
     * @resolve {HttpOperationResponse<CrashCounts>} - The deserialized result object.
     *
     * @reject {Error|ServiceError} - The error object.
     */
    crashGroupCountsWithHttpOperationResponse(crashGroupId: string, version: string, start: Date|string, ownerName: string, appName: string, options?: { end? : Date, customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<models.CrashCounts>>;

    /**
     * @summary Available for UWP apps only.
     *
     * Count of crashes by day in the time range of the selected crash group with
     * selected version. Available for UWP apps only.
     *
     * @param {string} crashGroupId The id of the crash group
     *
     * @param {string} version
     *
     * @param {date} start Start date time in data in ISO 8601 date time format
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @param {object} [options] Optional Parameters.
     *
     * @param {date} [options.end] Last date time in data in ISO 8601 date time
     * format
     *
     * @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 {CrashCounts} - 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.
     *
     *                      {CrashCounts} [result]   - The deserialized result object if an error did not occur.
     *                      See {@link CrashCounts} 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.
     */
    crashGroupCounts(crashGroupId: string, version: string, start: Date|string, ownerName: string, appName: string, options?: { end? : Date, customHeaders? : { [headerName: string]: string; } }): Promise<models.CrashCounts>;
    crashGroupCounts(crashGroupId: string, version: string, start: Date|string, ownerName: string, appName: string, callback: ServiceCallback<models.CrashCounts>): void;
    crashGroupCounts(crashGroupId: string, version: string, start: Date|string, ownerName: string, appName: string, options: { end? : Date, customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<models.CrashCounts>): void;


    /**
     * Overall crashes and affected users count of the selected crash groups with
     * selected versions
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @param {array} crashGroups
     *
     * @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.
     */
    crashGroupsTotalsWithHttpOperationResponse(ownerName: string, appName: string, crashGroups: models.CrashGroupAndVersion[], options?: { customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<models.CrashesOverallItem[]>>;

    /**
     * Overall crashes and affected users count of the selected crash groups with
     * selected versions
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @param {array} crashGroups
     *
     * @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.
     */
    crashGroupsTotals(ownerName: string, appName: string, crashGroups: models.CrashGroupAndVersion[], options?: { customHeaders? : { [headerName: string]: string; } }): Promise<models.CrashesOverallItem[]>;
    crashGroupsTotals(ownerName: string, appName: string, crashGroups: models.CrashGroupAndVersion[], callback: ServiceCallback<models.CrashesOverallItem[]>): void;
    crashGroupsTotals(ownerName: string, appName: string, crashGroups: models.CrashGroupAndVersion[], options: { customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<models.CrashesOverallItem[]>): void;


    /**
     * @summary Available for UWP apps only.
     *
     * Count of crashes by day in the time range based the selected versions.
     * Available for UWP apps only.
     *
     * @param {date} start Start date time in data in ISO 8601 date time format
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @param {object} [options] Optional Parameters.
     *
     * @param {date} [options.end] Last date time in data in ISO 8601 date time
     * format
     *
     * @param {array} [options.versions]
     *
     * @param {object} [options.customHeaders] Headers that will be added to the
     * request
     *
     * @returns {Promise} A promise is returned
     *
     * @resolve {HttpOperationResponse<CrashCounts>} - The deserialized result object.
     *
     * @reject {Error|ServiceError} - The error object.
     */
    crashCountsMethodWithHttpOperationResponse(start: Date|string, ownerName: string, appName: string, options?: { end? : Date, versions? : string[], customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<models.CrashCounts>>;

    /**
     * @summary Available for UWP apps only.
     *
     * Count of crashes by day in the time range based the selected versions.
     * Available for UWP apps only.
     *
     * @param {date} start Start date time in data in ISO 8601 date time format
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @param {object} [options] Optional Parameters.
     *
     * @param {date} [options.end] Last date time in data in ISO 8601 date time
     * format
     *
     * @param {array} [options.versions]
     *
     * @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 {CrashCounts} - 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.
     *
     *                      {CrashCounts} [result]   - The deserialized result object if an error did not occur.
     *                      See {@link CrashCounts} 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.
     */
    crashCountsMethod(start: Date|string, ownerName: string, appName: string, options?: { end? : Date, versions? : string[], customHeaders? : { [headerName: string]: string; } }): Promise<models.CrashCounts>;
    crashCountsMethod(start: Date|string, ownerName: string, appName: string, callback: ServiceCallback<models.CrashCounts>): void;
    crashCountsMethod(start: Date|string, ownerName: string, appName: string, options: { end? : Date, versions? : string[], customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<models.CrashCounts>): void;


    /**
     * Returns whether audience definition exists.
     *
     * @param {string} audienceName The name of the audience
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @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<null>} - The deserialized result object.
     *
     * @reject {Error|ServiceError} - The error object.
     */
    audienceNameExistsWithHttpOperationResponse(audienceName: string, ownerName: string, appName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<void>>;

    /**
     * Returns whether audience definition exists.
     *
     * @param {string} audienceName The name of the audience
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @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 {null} - 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.
     *
     *                      {null} [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.
     */
    audienceNameExists(audienceName: string, ownerName: string, appName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<void>;
    audienceNameExists(audienceName: string, ownerName: string, appName: string, callback: ServiceCallback<void>): void;
    audienceNameExists(audienceName: string, ownerName: string, appName: string, options: { customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<void>): void;


    /**
     * Deletes audience definition.
     *
     * @param {string} audienceName The name of the audience
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @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<null>} - The deserialized result object.
     *
     * @reject {Error|ServiceError} - The error object.
     */
    deleteAudienceWithHttpOperationResponse(audienceName: string, ownerName: string, appName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<void>>;

    /**
     * Deletes audience definition.
     *
     * @param {string} audienceName The name of the audience
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @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 {null} - 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.
     *
     *                      {null} [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.
     */
    deleteAudience(audienceName: string, ownerName: string, appName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<void>;
    deleteAudience(audienceName: string, ownerName: string, appName: string, callback: ServiceCallback<void>): void;
    deleteAudience(audienceName: string, ownerName: string, appName: string, options: { customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<void>): void;


    /**
     * Gets audience definition.
     *
     * @param {string} audienceName The name of the audience
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @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<Audience>} - The deserialized result object.
     *
     * @reject {Error|ServiceError} - The error object.
     */
    getAudienceWithHttpOperationResponse(audienceName: string, ownerName: string, appName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<models.Audience>>;

    /**
     * Gets audience definition.
     *
     * @param {string} audienceName The name of the audience
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @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 {Audience} - 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.
     *
     *                      {Audience} [result]   - The deserialized result object if an error did not occur.
     *                      See {@link Audience} 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.
     */
    getAudience(audienceName: string, ownerName: string, appName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<models.Audience>;
    getAudience(audienceName: string, ownerName: string, appName: string, callback: ServiceCallback<models.Audience>): void;
    getAudience(audienceName: string, ownerName: string, appName: string, options: { customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<models.Audience>): void;


    /**
     * Creates or updates audience definition.
     *
     * @param {string} audienceName The name of the audience
     *
     * @param {object} audience Audience definition
     *
     * @param {string} [audience.description] Audience description.
     *
     * @param {string} audience.definition Audience definition in OData format.
     *
     * @param {boolean} [audience.enabled]
     *
     * @param {object} [audience.customProperties] Custom properties used in the
     * definition.
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @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<Audience>} - The deserialized result object.
     *
     * @reject {Error|ServiceError} - The error object.
     */
    createOrUpdateAudienceWithHttpOperationResponse(audienceName: string, audience: models.AudienceDefinition, ownerName: string, appName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<models.Audience>>;

    /**
     * Creates or updates audience definition.
     *
     * @param {string} audienceName The name of the audience
     *
     * @param {object} audience Audience definition
     *
     * @param {string} [audience.description] Audience description.
     *
     * @param {string} audience.definition Audience definition in OData format.
     *
     * @param {boolean} [audience.enabled]
     *
     * @param {object} [audience.customProperties] Custom properties used in the
     * definition.
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @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 {Audience} - 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.
     *
     *                      {Audience} [result]   - The deserialized result object if an error did not occur.
     *                      See {@link Audience} 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.
     */
    createOrUpdateAudience(audienceName: string, audience: models.AudienceDefinition, ownerName: string, appName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<models.Audience>;
    createOrUpdateAudience(audienceName: string, audience: models.AudienceDefinition, ownerName: string, appName: string, callback: ServiceCallback<models.Audience>): void;
    createOrUpdateAudience(audienceName: string, audience: models.AudienceDefinition, ownerName: string, appName: string, options: { customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<models.Audience>): void;


    /**
     * Get list of device property values.
     *
     * @param {string} propertyName Device property
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @param {object} [options] Optional Parameters.
     *
     * @param {string} [options.contains] Contains string
     *
     * @param {object} [options.customHeaders] Headers that will be added to the
     * request
     *
     * @returns {Promise} A promise is returned
     *
     * @resolve {HttpOperationResponse<AudienceDevicePropertyValuesListResult>} - The deserialized result object.
     *
     * @reject {Error|ServiceError} - The error object.
     */
    listDevicePropertyValuesWithHttpOperationResponse(propertyName: string, ownerName: string, appName: string, options?: { contains? : string, customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<models.AudienceDevicePropertyValuesListResult>>;

    /**
     * Get list of device property values.
     *
     * @param {string} propertyName Device property
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @param {object} [options] Optional Parameters.
     *
     * @param {string} [options.contains] Contains string
     *
     * @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 {AudienceDevicePropertyValuesListResult} - 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.
     *
     *                      {AudienceDevicePropertyValuesListResult} [result]   - The deserialized result object if an error did not occur.
     *                      See {@link AudienceDevicePropertyValuesListResult} 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.
     */
    listDevicePropertyValues(propertyName: string, ownerName: string, appName: string, options?: { contains? : string, customHeaders? : { [headerName: string]: string; } }): Promise<models.AudienceDevicePropertyValuesListResult>;
    listDevicePropertyValues(propertyName: string, ownerName: string, appName: string, callback: ServiceCallback<models.AudienceDevicePropertyValuesListResult>): void;
    listDevicePropertyValues(propertyName: string, ownerName: string, appName: string, options: { contains? : string, customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<models.AudienceDevicePropertyValuesListResult>): void;


    /**
     * Get list of device properties.
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @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<AudienceDevicePropertiesListResult>} - The deserialized result object.
     *
     * @reject {Error|ServiceError} - The error object.
     */
    listDevicePropertiesWithHttpOperationResponse(ownerName: string, appName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<models.AudienceDevicePropertiesListResult>>;

    /**
     * Get list of device properties.
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @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 {AudienceDevicePropertiesListResult} - 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.
     *
     *                      {AudienceDevicePropertiesListResult} [result]   - The deserialized result object if an error did not occur.
     *                      See {@link AudienceDevicePropertiesListResult} 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.
     */
    listDeviceProperties(ownerName: string, appName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<models.AudienceDevicePropertiesListResult>;
    listDeviceProperties(ownerName: string, appName: string, callback: ServiceCallback<models.AudienceDevicePropertiesListResult>): void;
    listDeviceProperties(ownerName: string, appName: string, options: { customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<models.AudienceDevicePropertiesListResult>): void;


    /**
     * Get list of custom properties.
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @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<AudienceDevicePropertiesListResult>} - The deserialized result object.
     *
     * @reject {Error|ServiceError} - The error object.
     */
    listCustomPropertiesWithHttpOperationResponse(ownerName: string, appName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<models.AudienceDevicePropertiesListResult>>;

    /**
     * Get list of custom properties.
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @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 {AudienceDevicePropertiesListResult} - 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.
     *
     *                      {AudienceDevicePropertiesListResult} [result]   - The deserialized result object if an error did not occur.
     *                      See {@link AudienceDevicePropertiesListResult} 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.
     */
    listCustomProperties(ownerName: string, appName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<models.AudienceDevicePropertiesListResult>;
    listCustomProperties(ownerName: string, appName: string, callback: ServiceCallback<models.AudienceDevicePropertiesListResult>): void;
    listCustomProperties(ownerName: string, appName: string, options: { customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<models.AudienceDevicePropertiesListResult>): void;


    /**
     * Tests audience definition.
     *
     * @param {object} audience Audience definition
     *
     * @param {string} [audience.description] Audience description.
     *
     * @param {string} audience.definition Audience definition in OData format.
     *
     * @param {boolean} [audience.enabled]
     *
     * @param {object} [audience.customProperties] Custom properties used in the
     * definition.
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @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<AudienceTestResult>} - The deserialized result object.
     *
     * @reject {Error|ServiceError} - The error object.
     */
    testAudienceWithHttpOperationResponse(audience: models.AudienceDefinition, ownerName: string, appName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<models.AudienceTestResult>>;

    /**
     * Tests audience definition.
     *
     * @param {object} audience Audience definition
     *
     * @param {string} [audience.description] Audience description.
     *
     * @param {string} audience.definition Audience definition in OData format.
     *
     * @param {boolean} [audience.enabled]
     *
     * @param {object} [audience.customProperties] Custom properties used in the
     * definition.
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @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 {AudienceTestResult} - 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.
     *
     *                      {AudienceTestResult} [result]   - The deserialized result object if an error did not occur.
     *                      See {@link AudienceTestResult} 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.
     */
    testAudience(audience: models.AudienceDefinition, ownerName: string, appName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<models.AudienceTestResult>;
    testAudience(audience: models.AudienceDefinition, ownerName: string, appName: string, callback: ServiceCallback<models.AudienceTestResult>): void;
    testAudience(audience: models.AudienceDefinition, ownerName: string, appName: string, options: { customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<models.AudienceTestResult>): void;


    /**
     * Get list of audiences.
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @param {object} [options] Optional Parameters.
     *
     * @param {boolean} [options.includeDisabled] Include disabled audience
     * definitions
     *
     * @param {object} [options.customHeaders] Headers that will be added to the
     * request
     *
     * @returns {Promise} A promise is returned
     *
     * @resolve {HttpOperationResponse<AudienceListResult>} - The deserialized result object.
     *
     * @reject {Error|ServiceError} - The error object.
     */
    listAudiencesWithHttpOperationResponse(ownerName: string, appName: string, options?: { includeDisabled? : boolean, customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<models.AudienceListResult>>;

    /**
     * Get list of audiences.
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @param {object} [options] Optional Parameters.
     *
     * @param {boolean} [options.includeDisabled] Include disabled audience
     * definitions
     *
     * @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 {AudienceListResult} - 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.
     *
     *                      {AudienceListResult} [result]   - The deserialized result object if an error did not occur.
     *                      See {@link AudienceListResult} 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.
     */
    listAudiences(ownerName: string, appName: string, options?: { includeDisabled? : boolean, customHeaders? : { [headerName: string]: string; } }): Promise<models.AudienceListResult>;
    listAudiences(ownerName: string, appName: string, callback: ServiceCallback<models.AudienceListResult>): void;
    listAudiences(ownerName: string, appName: string, options: { includeDisabled? : boolean, customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<models.AudienceListResult>): void;


    /**
     * Count of active devices by interval in the time range.
     *
     * @param {date} start Start date time in data in ISO 8601 date time format
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @param {object} [options] Optional Parameters.
     *
     * @param {date} [options.end] Last date time in data in ISO 8601 date time
     * format
     *
     * @param {array} [options.versions]
     *
     * @param {object} [options.customHeaders] Headers that will be added to the
     * request
     *
     * @returns {Promise} A promise is returned
     *
     * @resolve {HttpOperationResponse<ActiveDeviceCounts>} - The deserialized result object.
     *
     * @reject {Error|ServiceError} - The error object.
     */
    deviceCountsWithHttpOperationResponse(start: Date|string, ownerName: string, appName: string, options?: { end? : Date, versions? : string[], customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<models.ActiveDeviceCounts>>;

    /**
     * Count of active devices by interval in the time range.
     *
     * @param {date} start Start date time in data in ISO 8601 date time format
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} appName The name of the application
     *
     * @param {object} [options] Optional Parameters.
     *
     * @param {date} [options.end] Last date time in data in ISO 8601 date time
     * format
     *
     * @param {array} [options.versions]
     *
     * @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 {ActiveDeviceCounts} - 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.
     *
     *                      {ActiveDeviceCounts} [result]   - The deserialized result object if an error did not occur.
     *                      See {@link ActiveDeviceCounts} 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.
     */
    deviceCounts(start: Date|string, ownerName: string, appName: string, options?: { end? : Date, versions? : string[], customHeaders? : { [headerName: string]: string; } }): Promise<models.ActiveDeviceCounts>;
    deviceCounts(start: Date|string, ownerName: string, appName: string, callback: ServiceCallback<models.ActiveDeviceCounts>): void;
    deviceCounts(start: Date|string, ownerName: string, appName: string, options: { end? : Date, versions? : string[], customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<models.ActiveDeviceCounts>): void;
}

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


    /**
     * Delete the api_token object with the specific id
     *
     * @param {string} apiTokenId The unique ID (UUID) of the api token
     *
     * @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<ErrorResponse>} - The deserialized result object.
     *
     * @reject {Error|ServiceError} - The error object.
     */
    deleteMethodWithHttpOperationResponse(apiTokenId: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<models.ErrorResponse>>;

    /**
     * Delete the api_token object with the specific id
     *
     * @param {string} apiTokenId The unique ID (UUID) of the api token
     *
     * @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 {ErrorResponse} - 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.
     *
     *                      {ErrorResponse} [result]   - The deserialized result object if an error did not occur.
     *                      See {@link ErrorResponse} 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(apiTokenId: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<models.ErrorResponse>;
    deleteMethod(apiTokenId: string, callback: ServiceCallback<models.ErrorResponse>): void;
    deleteMethod(apiTokenId: string, options: { customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<models.ErrorResponse>): void;


    /**
     * Returns api tokens for the authenticated user
     *
     * @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<Object>} - The deserialized result object.
     *
     * @reject {Error|ServiceError} - The error object.
     */
    listWithHttpOperationResponse(options?: { customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<any>>;

    /**
     * Returns api tokens for the authenticated user
     *
     * @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 {Object} - 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.
     *
     *                      {Object} [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(options?: { customHeaders? : { [headerName: string]: string; } }): Promise<any>;
    list(callback: ServiceCallback<any>): void;
    list(options: { customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<any>): void;


    /**
     * Creates a new API token
     *
     * @param {object} [options] Optional Parameters.
     *
     * @param {string} [options.description] The description of the token
     *
     * @param {array} [options.scope] The scope for this token.
     *
     * @param {object} [options.customHeaders] Headers that will be added to the
     * request
     *
     * @returns {Promise} A promise is returned
     *
     * @resolve {HttpOperationResponse<Object>} - The deserialized result object.
     *
     * @reject {Error|ServiceError} - The error object.
     */
    newMethodWithHttpOperationResponse(options?: { description? : string, scope? : string[], customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<any>>;

    /**
     * Creates a new API token
     *
     * @param {object} [options] Optional Parameters.
     *
     * @param {string} [options.description] The description of the token
     *
     * @param {array} [options.scope] The scope for this token.
     *
     * @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 {Object} - 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.
     *
     *                      {Object} [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.
     */
    newMethod(options?: { description? : string, scope? : string[], customHeaders? : { [headerName: string]: string; } }): Promise<any>;
    newMethod(callback: ServiceCallback<any>): void;
    newMethod(options: { description? : string, scope? : string[], customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<any>): void;
}
