import basem = require('./ClientApiBases'); import VsoBaseInterfaces = require('./interfaces/common/VsoBaseInterfaces'); import NotificationInterfaces = require("./interfaces/NotificationInterfaces"); import VSSInterfaces = require("./interfaces/common/VSSInterfaces"); export interface INotificationApi extends basem.ClientApiBase { performBatchNotificationOperations(operation: NotificationInterfaces.BatchNotificationOperation): Promise; listLogs(source: string, entryId?: string, startTime?: Date, endTime?: Date): Promise; getSubscriptionDiagnostics(subscriptionId: string): Promise; updateSubscriptionDiagnostics(updateParameters: NotificationInterfaces.UpdateSubscripitonDiagnosticsParameters, subscriptionId: string): Promise; publishEvent(notificationEvent: VSSInterfaces.VssNotificationEvent): Promise; transformEvent(transformRequest: NotificationInterfaces.EventTransformRequest): Promise; queryEventTypes(inputValuesQuery: NotificationInterfaces.FieldValuesQuery, eventType: string): Promise; getEventType(eventType: string): Promise; listEventTypes(publisherId?: string): Promise; getNotificationReasons(notificationId: number): Promise; listNotificationReasons(notificationIds?: number): Promise; getSettings(): Promise; updateSettings(updateParameters: NotificationInterfaces.NotificationAdminSettingsUpdateParameters): Promise; getSubscriber(subscriberId: string): Promise; updateSubscriber(updateParameters: NotificationInterfaces.NotificationSubscriberUpdateParameters, subscriberId: string): Promise; querySubscriptions(subscriptionQuery: NotificationInterfaces.SubscriptionQuery): Promise; createSubscription(createParameters: NotificationInterfaces.NotificationSubscriptionCreateParameters): Promise; deleteSubscription(subscriptionId: string): Promise; getSubscription(subscriptionId: string, queryFlags?: NotificationInterfaces.SubscriptionQueryFlags): Promise; listSubscriptions(targetId?: string, ids?: string[], queryFlags?: NotificationInterfaces.SubscriptionQueryFlags): Promise; updateSubscription(updateParameters: NotificationInterfaces.NotificationSubscriptionUpdateParameters, subscriptionId: string): Promise; getSubscriptionTemplates(): Promise; updateSubscriptionUserSettings(userSettings: NotificationInterfaces.SubscriptionUserSettings, subscriptionId: string, userId: string): Promise; } export declare class NotificationApi extends basem.ClientApiBase implements INotificationApi { constructor(baseUrl: string, handlers: VsoBaseInterfaces.IRequestHandler[], options?: VsoBaseInterfaces.IRequestOptions); /** * @param {NotificationInterfaces.BatchNotificationOperation} operation */ performBatchNotificationOperations(operation: NotificationInterfaces.BatchNotificationOperation): Promise; /** * List diagnostic logs this service. * * @param {string} source * @param {string} entryId * @param {Date} startTime * @param {Date} endTime */ listLogs(source: string, entryId?: string, startTime?: Date, endTime?: Date): Promise; /** * @param {string} subscriptionId */ getSubscriptionDiagnostics(subscriptionId: string): Promise; /** * @param {NotificationInterfaces.UpdateSubscripitonDiagnosticsParameters} updateParameters * @param {string} subscriptionId */ updateSubscriptionDiagnostics(updateParameters: NotificationInterfaces.UpdateSubscripitonDiagnosticsParameters, subscriptionId: string): Promise; /** * Publish an event. This request must be directed to the service "extmgmt". * * @param {VSSInterfaces.VssNotificationEvent} notificationEvent */ publishEvent(notificationEvent: VSSInterfaces.VssNotificationEvent): Promise; /** * Tranform a notification event. * * @param {NotificationInterfaces.EventTransformRequest} transformRequest - Object to be transformed. */ transformEvent(transformRequest: NotificationInterfaces.EventTransformRequest): Promise; /** * @param {NotificationInterfaces.FieldValuesQuery} inputValuesQuery * @param {string} eventType */ queryEventTypes(inputValuesQuery: NotificationInterfaces.FieldValuesQuery, eventType: string): Promise; /** * Get a specific event type. * * @param {string} eventType */ getEventType(eventType: string): Promise; /** * List available event types for this service. Optionally filter by only event types for the specified publisher. * * @param {string} publisherId - Limit to event types for this publisher */ listEventTypes(publisherId?: string): Promise; /** * @param {number} notificationId */ getNotificationReasons(notificationId: number): Promise; /** * @param {number} notificationIds */ listNotificationReasons(notificationIds?: number): Promise; /** */ getSettings(): Promise; /** * @param {NotificationInterfaces.NotificationAdminSettingsUpdateParameters} updateParameters */ updateSettings(updateParameters: NotificationInterfaces.NotificationAdminSettingsUpdateParameters): Promise; /** * @param {string} subscriberId */ getSubscriber(subscriberId: string): Promise; /** * @param {NotificationInterfaces.NotificationSubscriberUpdateParameters} updateParameters * @param {string} subscriberId */ updateSubscriber(updateParameters: NotificationInterfaces.NotificationSubscriberUpdateParameters, subscriberId: string): Promise; /** * Query for subscriptions. A subscription is returned if it matches one or more of the specified conditions. * * @param {NotificationInterfaces.SubscriptionQuery} subscriptionQuery */ querySubscriptions(subscriptionQuery: NotificationInterfaces.SubscriptionQuery): Promise; /** * Create a new subscription. * * @param {NotificationInterfaces.NotificationSubscriptionCreateParameters} createParameters */ createSubscription(createParameters: NotificationInterfaces.NotificationSubscriptionCreateParameters): Promise; /** * Delete a subscription. * * @param {string} subscriptionId */ deleteSubscription(subscriptionId: string): Promise; /** * Get a notification subscription by its ID. * * @param {string} subscriptionId * @param {NotificationInterfaces.SubscriptionQueryFlags} queryFlags */ getSubscription(subscriptionId: string, queryFlags?: NotificationInterfaces.SubscriptionQueryFlags): Promise; /** * @param {string} targetId * @param {string[]} ids * @param {NotificationInterfaces.SubscriptionQueryFlags} queryFlags */ listSubscriptions(targetId?: string, ids?: string[], queryFlags?: NotificationInterfaces.SubscriptionQueryFlags): Promise; /** * Update an existing subscription. Depending on the type of subscription and permissions, the caller can update the description, filter settings, channel (delivery) settings and more. * * @param {NotificationInterfaces.NotificationSubscriptionUpdateParameters} updateParameters * @param {string} subscriptionId */ updateSubscription(updateParameters: NotificationInterfaces.NotificationSubscriptionUpdateParameters, subscriptionId: string): Promise; /** * Get available subscription templates. * */ getSubscriptionTemplates(): Promise; /** * Update the specified user's settings for the specified subscription. This API is typically used to opt in or out of a shared subscription. User settings can only be applied to shared subscriptions, like team subscriptions or default subscriptions. * * @param {NotificationInterfaces.SubscriptionUserSettings} userSettings * @param {string} subscriptionId * @param {string} userId - ID of the user */ updateSubscriptionUserSettings(userSettings: NotificationInterfaces.SubscriptionUserSettings, subscriptionId: string, userId: string): Promise; }